mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Eliminate register_postload from various Konami/Namco/Taito video devices (nw)
This commit is contained in:
parent
dbef8cada7
commit
47ed7d9b13
@ -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
|
||||
*****************************************************************************/
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*****************************************************************************/
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
|
@ -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>
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*****************************************************************************/
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user