summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/gb_lcd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/gb_lcd.cpp')
-rw-r--r--src/devices/video/gb_lcd.cpp52
1 files changed, 23 insertions, 29 deletions
diff --git a/src/devices/video/gb_lcd.cpp b/src/devices/video/gb_lcd.cpp
index 06cceeca7b0..99dfc80282d 100644
--- a/src/devices/video/gb_lcd.cpp
+++ b/src/devices/video/gb_lcd.cpp
@@ -429,15 +429,12 @@ void dmg_ppu_device::common_start()
save_item(NAME(m_next_state));
save_item(NAME(m_old_curline));
- for (int i = 0; i < ARRAY_LENGTH(m_layer); i++)
- {
- save_item(NAME(m_layer[i].enabled), i);
- save_item(NAME(m_layer[i].xindex), i);
- save_item(NAME(m_layer[i].xshift), i);
- save_item(NAME(m_layer[i].xstart), i);
- save_item(NAME(m_layer[i].xend), i);
- save_item(NAME(m_layer[i].bgline), i);
- }
+ save_item(STRUCT_MEMBER(m_layer, enabled));
+ save_item(STRUCT_MEMBER(m_layer, xindex));
+ save_item(STRUCT_MEMBER(m_layer, xshift));
+ save_item(STRUCT_MEMBER(m_layer, xstart));
+ save_item(STRUCT_MEMBER(m_layer, xend));
+ save_item(STRUCT_MEMBER(m_layer, bgline));
save_item(NAME(m_line.tile_cycle));
save_item(NAME(m_line.tile_count));
@@ -465,16 +462,13 @@ void dmg_ppu_device::common_start()
save_item(NAME(m_line.window_enable));
save_item(NAME(m_line.window_enable_index));
save_item(NAME(m_line.window_should_trigger));
- for (int i = 0; i < ARRAY_LENGTH(m_line.sprite); i++)
- {
- save_item(NAME(m_line.sprite[i].enabled), i);
- save_item(NAME(m_line.sprite[i].x), i);
- save_item(NAME(m_line.sprite[i].y), i);
- save_item(NAME(m_line.sprite[i].pattern), i);
- save_item(NAME(m_line.sprite[i].flags), i);
- save_item(NAME(m_line.sprite[i].tile_plane_0), i);
- save_item(NAME(m_line.sprite[i].tile_plane_1), i);
- }
+ save_item(STRUCT_MEMBER(m_line.sprite, enabled));
+ save_item(STRUCT_MEMBER(m_line.sprite, x));
+ save_item(STRUCT_MEMBER(m_line.sprite, y));
+ save_item(STRUCT_MEMBER(m_line.sprite, pattern));
+ save_item(STRUCT_MEMBER(m_line.sprite, flags));
+ save_item(STRUCT_MEMBER(m_line.sprite, tile_plane_0));
+ save_item(STRUCT_MEMBER(m_line.sprite, tile_plane_1));
save_item(NAME(m_frame_window_active));
}
@@ -1034,14 +1028,14 @@ void dmg_ppu_device::check_start_of_window()
}
// 4 makes most tests pass
- m_line.window_start_y[(m_line.window_start_y_index + 4) % ARRAY_LENGTH(m_line.window_start_y)] = WNDPOSY;
+ m_line.window_start_y[(m_line.window_start_y_index + 4) % std::size(m_line.window_start_y)] = WNDPOSY;
// 2-4 makes most tests pass
- m_line.window_start_x[(m_line.window_start_y_index + 4) % ARRAY_LENGTH(m_line.window_start_x)] = WNDPOSX;
- m_line.window_start_y_index = (m_line.window_start_y_index + 1) % ARRAY_LENGTH(m_line.window_start_y);
+ m_line.window_start_x[(m_line.window_start_y_index + 4) % std::size(m_line.window_start_x)] = WNDPOSX;
+ m_line.window_start_y_index = (m_line.window_start_y_index + 1) % std::size(m_line.window_start_y);
// 3 makes most tests pass
- m_line.window_enable[(m_line.window_enable_index + 3) % ARRAY_LENGTH(m_line.window_enable)] = LCDCONT;
- m_line.window_enable_index = (m_line.window_enable_index + 1) % ARRAY_LENGTH(m_line.window_enable);
+ m_line.window_enable[(m_line.window_enable_index + 3) % std::size(m_line.window_enable)] = LCDCONT;
+ m_line.window_enable_index = (m_line.window_enable_index + 1) % std::size(m_line.window_enable);
if (!m_line.starting && m_line.tile_cycle < 8)
{
@@ -1545,7 +1539,7 @@ void sgb_ppu_device::update_scanline(uint32_t cycles_to_go)
while (i > 0)
{
/* Figure out which palette we're using */
- assert(((m_end_x - i) >> 3) >= 0 && ((m_end_x - i) >> 3) < ARRAY_LENGTH(m_sgb_pal_map));
+ assert(((m_end_x - i) >> 3) >= 0 && ((m_end_x - i) >> 3) < std::size(m_sgb_pal_map));
sgb_palette = m_sgb_pal_map[(m_end_x - i) >> 3][m_current_line >> 3] << 2;
while ((m_layer[l].xshift < 8) && i)
@@ -2209,13 +2203,13 @@ void dmg_ppu_device::update_state()
break;
case GB_LCD_STATE_LYXX_M3: /* Switch to mode 3 */
- for (int i = 0; i < ARRAY_LENGTH(m_line.window_start_y); i++)
+ for (int i = 0; i < std::size(m_line.window_start_y); i++)
{
m_line.window_start_y[i] = WNDPOSY;
m_line.window_start_x[i] = WNDPOSX;
}
m_line.window_start_y_index = 0;
- for (int i = 0; i < ARRAY_LENGTH(m_line.window_enable); i++)
+ for (int i = 0; i < std::size(m_line.window_enable); i++)
{
m_line.window_enable[i] = LCDCONT;
}
@@ -2640,13 +2634,13 @@ void cgb_ppu_device::update_state()
break;
case GB_LCD_STATE_LYXX_M3: /* Switch to mode 3 */
- for (int i = 0; i < ARRAY_LENGTH(m_line.window_start_y); i++)
+ for (int i = 0; i < std::size(m_line.window_start_y); i++)
{
m_line.window_start_y[i] = WNDPOSY;
m_line.window_start_x[i] = WNDPOSX;
}
m_line.window_start_y_index = 0;
- for (int i = 0; i < ARRAY_LENGTH(m_line.window_enable); i++)
+ for (int i = 0; i < std::size(m_line.window_enable); i++)
{
m_line.window_enable[i] = LCDCONT;
}