Eliminate register_postload from various Konami/Namco/Taito video devices (nw)

This commit is contained in:
AJR 2018-09-20 13:21:37 -04:00
parent dbef8cada7
commit 47ed7d9b13
18 changed files with 77 additions and 43 deletions

View File

@ -252,7 +252,6 @@ void k052109_device::device_start()
save_item(NAME(m_charrombank));
save_item(NAME(m_charrombank_2));
save_item(NAME(m_has_extra_video_ram));
machine().save().register_postload(save_prepost_delegate(FUNC(k052109_device::tileflip_reset), this));
}
//-------------------------------------------------
@ -275,6 +274,15 @@ void k052109_device::device_reset()
}
}
//-------------------------------------------------
// device_post_load - device-specific postload
//-------------------------------------------------
void k052109_device::device_post_load()
{
tileflip_reset();
}
/*****************************************************************************
DEVICE HANDLERS
*****************************************************************************/

View File

@ -76,6 +76,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
private:
// internal state

View File

@ -145,8 +145,6 @@ void k053251_device::device_start()
save_item(NAME(m_ram));
save_item(NAME(m_tilemaps_set));
save_item(NAME(m_dirty_tmap));
machine().save().register_postload(save_prepost_delegate(FUNC(k053251_device::reset_indexes), this));
}
//-------------------------------------------------
@ -168,6 +166,15 @@ void k053251_device::device_reset()
reset_indexes();
}
//-------------------------------------------------
// device_post_load - device-specific postload
//-------------------------------------------------
void k053251_device::device_post_load()
{
reset_indexes();
}
/*****************************************************************************
DEVICE HANDLERS
*****************************************************************************/

View File

@ -38,6 +38,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
private:
// internal state

View File

@ -327,9 +327,6 @@ void k056832_device::finalize_init()
save_item(NAME(m_use_ext_linescroll));
save_item(NAME(m_uses_tile_banks));
save_item(NAME(m_cur_tile_bank));
machine().save().register_postload(save_prepost_delegate(FUNC(k056832_device::postload), this));
}
@ -1942,7 +1939,7 @@ int k056832_device::read_register( int regnum )
return(m_regs[regnum]);
}
void k056832_device::postload()
void k056832_device::device_post_load()
{
update_page_layout();
change_rambank();

View File

@ -118,6 +118,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_post_load() override;
private:
// internal state
@ -195,7 +196,6 @@ private:
void update_page_layout();
void change_rambank();
void change_rombank();
void postload();
int rom_read_b(int offset, int blksize, int blksize2, int zerosec);
template<class _BitmapClass>

View File

@ -117,8 +117,15 @@ void pc080sn_device::device_start()
save_pointer(NAME(m_ram), PC080SN_RAM_SIZE / 2);
save_item(NAME(m_ctrl));
machine().save().register_postload(save_prepost_delegate(FUNC(pc080sn_device::restore_scroll), this));
}
//-------------------------------------------------
// device_post_load - device-specific postload
//-------------------------------------------------
void pc080sn_device::device_post_load()
{
restore_scroll();
}
/*****************************************************************************

View File

@ -45,11 +45,12 @@ public:
void restore_scroll();
protected:
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_post_load() override;
private:
private:
// internal state
uint16_t m_ctrl[8];

View File

@ -178,7 +178,6 @@ void tc0080vco_device::device_start()
m_gfxdecode->set_gfx(m_txnum, std::make_unique<gfx_element>(&m_gfxdecode->palette(), charlayout, (uint8_t *)m_char_ram, 0, 1, 512));
save_pointer(NAME(m_ram), TC0080VCO_RAM_SIZE / 2);
machine().save().register_postload(save_prepost_delegate(FUNC(tc0080vco_device::postload), this));
}
@ -680,8 +679,11 @@ READ_LINE_MEMBER( tc0080vco_device::flipscreen_r )
return m_flipscreen;
}
//-------------------------------------------------
// device_post_load - device-specific postload
//-------------------------------------------------
void tc0080vco_device::postload()
void tc0080vco_device::device_post_load()
{
m_flipscreen = m_scroll_ram[0] & 0x0c00;

View File

@ -34,11 +34,11 @@ public:
uint16_t scrram_r(int offset);
DECLARE_WRITE16_MEMBER( scrollram_w );
READ_LINE_MEMBER( flipscreen_r );
void postload();
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_post_load() override;
private:
// internal state

View File

@ -287,7 +287,6 @@ void tc0100scn_device::device_start()
save_item(NAME(m_ctrl));
save_item(NAME(m_dblwidth));
save_item(NAME(m_gfxbank));
machine().save().register_postload(save_prepost_delegate(FUNC(tc0100scn_device::postload), this));
}
//-------------------------------------------------
@ -421,8 +420,11 @@ void tc0100scn_device::restore_scroll()
m_tilemap[2][1]->set_flip(flip);
}
//-------------------------------------------------
// device_post_load - device-specific postload
//-------------------------------------------------
void tc0100scn_device::postload()
void tc0100scn_device::device_post_load()
{
set_layer_ptrs();
restore_scroll();

View File

@ -65,12 +65,11 @@ public:
register. Use this function to draw tilemaps in the correct order. */
int bottomlayer();
void postload();
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
private:
// internal state

View File

@ -40,8 +40,6 @@ void tc0110pcr_device::device_start()
save_pointer(NAME(m_ram), TC0110PCR_RAM_SIZE);
save_item(NAME(m_type));
save_item(NAME(m_addr));
machine().save().register_postload(save_prepost_delegate(FUNC(tc0110pcr_device::restore_colors), this));
}
//-------------------------------------------------
@ -53,6 +51,15 @@ void tc0110pcr_device::device_reset()
m_type = 0; /* default, xBBBBBGGGGGRRRRR */
}
//-------------------------------------------------
// device_post_load - device-specific postload
//-------------------------------------------------
void tc0110pcr_device::device_post_load()
{
restore_colors();
}
/*****************************************************************************
DEVICE HANDLERS
*****************************************************************************/

View File

@ -31,6 +31,7 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
private:
std::unique_ptr<uint16_t[]> m_ram;

View File

@ -286,7 +286,6 @@ void tc0480scp_device::device_start()
save_item(NAME(m_bgscrolly));
save_item(NAME(m_pri_reg));
save_item(NAME(m_dblwidth));
machine().save().register_postload(save_prepost_delegate(FUNC(tc0480scp_device::postload), this));
}
//-------------------------------------------------
@ -965,7 +964,11 @@ READ8_MEMBER( tc0480scp_device::pri_reg_r )
return m_pri_reg;
}
void tc0480scp_device::postload()
//-------------------------------------------------
// device_post_load - device-specific postload
//-------------------------------------------------
void tc0480scp_device::device_post_load()
{
int reg;
int flip = m_ctrl[0xf] & 0x40;

View File

@ -57,12 +57,11 @@ public:
/* Undrfire needs to read this for a sprite/tile priority hack */
DECLARE_READ8_MEMBER( pri_reg_r );
void postload();
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
private:
// internal state

View File

@ -351,8 +351,8 @@ void ygv608_device::device_start()
m_base_y_shift = 0;
// flag rebuild of the tilemaps
m_screen_resize = 1;
m_tilemap_resize = 1;
m_screen_resize = true;
m_tilemap_resize = true;
m_namcond1_gfxbank = 0;
save_item(NAME(m_namcond1_gfxbank));
@ -439,7 +439,7 @@ void ygv608_device::device_timer(emu_timer &timer, device_timer_id id, int param
void ygv608_device::set_gfxbank(uint8_t gfxbank)
{
m_namcond1_gfxbank = gfxbank;
m_tilemap_resize = 1;
m_tilemap_resize = true;
}
inline int ygv608_device::get_col_division(int raw_col)
@ -873,10 +873,10 @@ TILE_GET_INFO_MEMBER( ygv608_device::get_tile_info_B_16 )
}
}
void ygv608_device::postload()
void ygv608_device::device_post_load()
{
m_screen_resize = 1;
m_tilemap_resize = 1;
m_screen_resize = true;
m_tilemap_resize = true;
}
void ygv608_device::register_state_save()
@ -891,8 +891,6 @@ void ygv608_device::register_state_save()
save_item(NAME(m_color_state_r));
save_item(NAME(m_color_state_w));
// TODO: register save for the newly added variables
machine().save().register_postload(save_prepost_delegate(FUNC(ygv608_device::postload), this));
}
@ -1084,7 +1082,7 @@ uint32_t ygv608_device::update_screen(screen_device &screen, bitmap_ind16 &bitma
m_work_bitmap.resize(screen.width(), screen.height());
// reset resize flag
m_screen_resize = 0;
m_screen_resize = false;
}
if( m_tilemap_resize )
@ -1135,7 +1133,7 @@ uint32_t ygv608_device::update_screen(screen_device &screen, bitmap_ind16 &bitma
m_work_bitmap.fill(0, finalclip );
// reset resize flag
m_tilemap_resize = 0;
m_tilemap_resize = false;
}
#ifdef _ENABLE_SCROLLY
@ -1821,7 +1819,7 @@ WRITE8_MEMBER( ygv608_device::screen_ctrl_7_w )
{
uint8_t new_md = (data >> 1) & 3;
if( new_md != m_md)
m_tilemap_resize = 1;
m_tilemap_resize = true;
m_dckm = BIT(data,7);
m_flip = BIT(data,6);
@ -1882,7 +1880,7 @@ READ8_MEMBER( ygv608_device::screen_ctrl_8_r )
WRITE8_MEMBER( ygv608_device::screen_ctrl_8_w )
{
if( (data & 1) != m_page_size)
m_tilemap_resize = 1;
m_tilemap_resize = true;
/**/m_h_display_size = (data >> 6) & 3;
/**/m_v_display_size = (data >> 4) & 3;
@ -1915,7 +1913,7 @@ WRITE8_MEMBER( ygv608_device::screen_ctrl_9_w )
uint8_t new_pts = (data >> 6) & 3;
if(new_pts != m_pattern_size)
m_tilemap_resize = 1;
m_tilemap_resize = true;
m_pattern_size = new_pts;
/**/m_h_div_size = (data >> 3) & 7;
@ -2101,7 +2099,7 @@ WRITE8_MEMBER( ygv608_device::base_address_w )
m_base_addr[plane][addr] = data & 0x07;
m_base_addr[plane][addr+1] = (data >> 4) & 0x7;
m_tilemap_resize = 1;
m_tilemap_resize = true;
}
// R#25W - R#27W - X coordinate of initial value
@ -2181,7 +2179,7 @@ WRITE8_MEMBER( ygv608_device::crtc_w )
m_crtc.htotal |= ((data & 0xc0) << 3);
if(new_display_width != m_crtc.display_width)
m_screen_resize = 1;
m_screen_resize = true;
m_crtc.display_width = new_display_width;
break;
@ -2216,7 +2214,7 @@ WRITE8_MEMBER( ygv608_device::crtc_w )
// TODO: VSLS, bit 6
if(new_display_height != m_crtc.display_height)
m_screen_resize = 1;
m_screen_resize = true;
m_crtc.display_height = new_display_height;
break;

View File

@ -102,6 +102,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_post_load() override;
virtual space_config_vector memory_space_config() const override;
@ -125,7 +126,7 @@ private:
TILE_GET_INFO_MEMBER(get_tile_info_B_8);
TILE_GET_INFO_MEMBER(get_tile_info_A_16);
TILE_GET_INFO_MEMBER(get_tile_info_B_16);
void postload();
void register_state_save();
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_layer_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *source_tilemap);
@ -174,8 +175,8 @@ private:
uint32_t m_base_addr[2][8];
uint32_t m_base_y_shift; // for extracting pattern y coord 'base'
uint8_t m_screen_resize; // screen requires resize
uint8_t m_tilemap_resize; // tilemap requires resize
bool m_screen_resize; // screen requires resize
bool m_tilemap_resize; // tilemap requires resize
/* These were statically allocated in the r/w routines */
int m_color_state_r;