summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Fabio Priuli <etabeta78@users.noreply.github.com>2013-05-19 20:51:36 +0000
committer Fabio Priuli <etabeta78@users.noreply.github.com>2013-05-19 20:51:36 +0000
commitd324299f741997e4fcd6b18c26c45e3d1b7b8034 (patch)
tree8c86802d2f8446c0604e8ca2e93984580476afae
parent53c85ca223ec6417c6ca98bc0339be8b39ecfd89 (diff)
(MESS) slightly consolidated save/restore in sms/gamegear, still not reliable. nw.
-rw-r--r--src/emu/video/315_5124.c24
-rw-r--r--src/emu/video/315_5124.h2
-rw-r--r--src/mess/machine/sms.c30
3 files changed, 56 insertions, 0 deletions
diff --git a/src/emu/video/315_5124.c b/src/emu/video/315_5124.c
index 844d8ebf9c4..9792024181c 100644
--- a/src/emu/video/315_5124.c
+++ b/src/emu/video/315_5124.c
@@ -1683,6 +1683,23 @@ void sega315_5124_device::device_config_complete()
}
}
+void sega315_5124_device::vdp_postload()
+{
+ switch (m_y_pixels)
+ {
+ case 192:
+ m_frame_timing = (m_is_pal) ? pal_192 : ntsc_192;
+ break;
+
+ case 224:
+ m_frame_timing = (m_is_pal) ? pal_224 : ntsc_224;
+ break;
+
+ case 240:
+ m_frame_timing = (m_is_pal) ? pal_240 : ntsc_240;
+ break;
+ }
+}
void sega315_5124_device::device_start()
{
@@ -1732,6 +1749,13 @@ void sega315_5124_device::device_start()
save_item(NAME(m_tmpbitmap));
save_item(NAME(m_y1_bitmap));
save_item(NAME(m_draw_time));
+ save_item(NAME(m_sprite_base));
+ save_item(NAME(m_selected_sprite));
+ save_item(NAME(m_sprite_count));
+ save_item(NAME(m_sprite_height));
+ save_item(NAME(m_sprite_zoom));
+
+ machine().save().register_postload(save_prepost_delegate(FUNC(sega315_5124_device::vdp_postload), this));
}
diff --git a/src/emu/video/315_5124.h b/src/emu/video/315_5124.h
index 45bc7d539ce..08327f725cb 100644
--- a/src/emu/video/315_5124.h
+++ b/src/emu/video/315_5124.h
@@ -115,6 +115,8 @@ protected:
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const { return (spacenum == AS_0) ? &m_space_config : NULL; }
+ void vdp_postload();
+
UINT8 m_reg[16]; /* All the registers */
UINT8 m_status; /* Status register */
UINT8 m_pending_status; /* Pending status flags */
diff --git a/src/mess/machine/sms.c b/src/mess/machine/sms.c
index c4b3134c616..3933f1bc6c9 100644
--- a/src/mess/machine/sms.c
+++ b/src/mess/machine/sms.c
@@ -1905,6 +1905,36 @@ MACHINE_START_MEMBER(sms_state,sms)
{
memset((UINT8*)m_space->get_write_ptr(0xc000), 0xf0, 0x1FFF);
}
+
+ save_item(NAME(m_fm_detect));
+ save_item(NAME(m_ctrl_reg));
+ save_item(NAME(m_paused));
+ save_item(NAME(m_bios_port));
+ save_item(NAME(m_mapper));
+ save_item(NAME(m_input_port0));
+ save_item(NAME(m_input_port1));
+
+ save_item(NAME(m_gg_sio));
+ save_item(NAME(m_store_control));
+ save_item(NAME(m_rapid_fire_state_1));
+ save_item(NAME(m_rapid_fire_state_2));
+ save_item(NAME(m_last_paddle_read_time));
+ save_item(NAME(m_paddle_read_state));
+ save_item(NAME(m_last_sports_pad_time_1));
+ save_item(NAME(m_last_sports_pad_time_2));
+ save_item(NAME(m_sports_pad_state_1));
+ save_item(NAME(m_sports_pad_state_2));
+ save_item(NAME(m_sports_pad_last_data_1));
+ save_item(NAME(m_sports_pad_last_data_2));
+ save_item(NAME(m_sports_pad_1_x));
+ save_item(NAME(m_sports_pad_1_y));
+ save_item(NAME(m_sports_pad_2_x));
+ save_item(NAME(m_sports_pad_2_y));
+ save_item(NAME(m_lphaser_1_latch));
+ save_item(NAME(m_lphaser_2_latch));
+ save_item(NAME(m_sscope_state));
+ save_item(NAME(m_frame_sscope_state));
+ save_item(NAME(m_current_cartridge));
}
MACHINE_RESET_MEMBER(sms_state,sms)