diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp index 91e234c963d..b78bcad817c 100644 --- a/src/mame/drivers/leland.cpp +++ b/src/mame/drivers/leland.cpp @@ -60,9 +60,7 @@ #include "emu.h" #include "includes/leland.h" -#include "cpu/i86/i186.h" #include "cpu/z80/z80.h" -#include "machine/eepromser.h" #include "machine/nvram.h" #include "sound/volt_reg.h" @@ -2670,6 +2668,9 @@ DRIVER_INIT_MEMBER(leland_state,dangerz) m_master->space(AS_IO).install_read_handler(0xf4, 0xf4, read8_delegate(FUNC(leland_state::dangerz_input_upper_r),this)); m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(leland_state::dangerz_input_y_r),this)); m_master->space(AS_IO).install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(leland_state::dangerz_input_x_r),this)); + + save_item(NAME(m_dangerz_x)); + save_item(NAME(m_dangerz_y)); } @@ -2749,6 +2750,9 @@ DRIVER_INIT_MEMBER(leland_state,viper) m_master->space(AS_IO).install_read_handler(0xa4, 0xa4, read8_delegate(FUNC(leland_state::dangerz_input_upper_r),this)); m_master->space(AS_IO).install_read_handler(0xb8, 0xb8, read8_delegate(FUNC(leland_state::dangerz_input_y_r),this)); m_master->space(AS_IO).install_read_handler(0xbc, 0xbc, read8_delegate(FUNC(leland_state::dangerz_input_x_r),this)); + + save_item(NAME(m_dangerz_x)); + save_item(NAME(m_dangerz_y)); } diff --git a/src/mame/drivers/photon.cpp b/src/mame/drivers/photon.cpp index 9524c49cf92..bd965a5bf6e 100644 --- a/src/mame/drivers/photon.cpp +++ b/src/mame/drivers/photon.cpp @@ -268,6 +268,6 @@ ROM_START( phklad ) ROM_LOAD( "klad.bin", 0x10000, 0x4000, BAD_DUMP CRC(49cc7d65) SHA1(d966cfc1d973a533df8044a71fad37f7177da554) ) ROM_END -GAME( 19??, phtetris, 0, photon, photon, driver_device, 0, ROT0, "", "Tetris (Photon System)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989?, phpython, 0, photon, photon, driver_device, 0, ROT0, "", "Python (Photon System)", MACHINE_SUPPORTS_SAVE ) -GAME( 19??, phklad, 0, photon, photon, driver_device, 0, ROT0, "", "Klad / Labyrinth (Photon System)", MACHINE_SUPPORTS_SAVE ) +GAME( 19??, phtetris, 0, photon, photon, driver_device, 0, ROT0, "", "Tetris (Photon System)", 0 ) +GAME( 1989?, phpython, 0, photon, photon, driver_device, 0, ROT0, "", "Python (Photon System)", 0 ) +GAME( 19??, phklad, 0, photon, photon, driver_device, 0, ROT0, "", "Klad / Labyrinth (Photon System)", 0 ) diff --git a/src/mame/drivers/pk8000.cpp b/src/mame/drivers/pk8000.cpp index c2385bd5dff..35d0a1234ff 100644 --- a/src/mame/drivers/pk8000.cpp +++ b/src/mame/drivers/pk8000.cpp @@ -415,6 +415,6 @@ ROM_END /* Driver */ /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ -COMP( 1987, vesta, 0, 0, pk8000, pk8000, driver_device, 0, "BP EVM", "PK8000 Vesta", MACHINE_SUPPORTS_SAVE) -COMP( 1987, hobby, vesta, 0, pk8000, pk8000, driver_device, 0, "BP EVM", "PK8000 Sura/Hobby", MACHINE_SUPPORTS_SAVE) -COMP( 1987, pk8002, vesta, 0, pk8000, pk8000, driver_device, 0, "", "PK8002 Elf", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE) +COMP( 1987, vesta, 0, 0, pk8000, pk8000, driver_device, 0, "BP EVM", "PK8000 Vesta", 0 ) +COMP( 1987, hobby, vesta, 0, pk8000, pk8000, driver_device, 0, "BP EVM", "PK8000 Sura/Hobby", 0 ) +COMP( 1987, pk8002, vesta, 0, pk8000, pk8000, driver_device, 0, "", "PK8002 Elf", MACHINE_NOT_WORKING ) diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h index c4e46701071..d7dc2107d3c 100644 --- a/src/mame/includes/leland.h +++ b/src/mame/includes/leland.h @@ -65,7 +65,6 @@ public: uint8_t *m_xrom_base; uint32_t m_master_length; uint32_t m_slave_length; - uint32_t m_xrom_length; int m_dangerz_x; int m_dangerz_y; uint8_t m_analog_result; @@ -93,6 +92,7 @@ public: uint8_t m_gfxbank; uint16_t m_last_scanline; emu_timer *m_scanline_timer; + DECLARE_READ8_MEMBER(cerberus_dial_1_r); DECLARE_READ8_MEMBER(cerberus_dial_2_r); DECLARE_WRITE8_MEMBER(alleymas_joystick_kludge); @@ -138,6 +138,12 @@ public: DECLARE_WRITE8_MEMBER(ataxx_svram_port_w); DECLARE_READ8_MEMBER(ataxx_mvram_port_r); DECLARE_READ8_MEMBER(ataxx_svram_port_r); + DECLARE_READ8_MEMBER(ataxx_eeprom_r); + DECLARE_WRITE8_MEMBER(ataxx_eeprom_w); + DECLARE_READ8_MEMBER(leland_sound_port_r); + DECLARE_WRITE8_MEMBER(leland_sound_port_w); + DECLARE_WRITE8_MEMBER(leland_gfx_port_w); + DECLARE_DRIVER_INIT(dblplay); DECLARE_DRIVER_INIT(viper); DECLARE_DRIVER_INIT(quarterb); @@ -171,6 +177,7 @@ public: DECLARE_VIDEO_START(leland); DECLARE_VIDEO_START(leland2); DECLARE_VIDEO_START(ataxx); + uint32_t screen_update_leland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_ataxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(leland_master_interrupt); @@ -178,15 +185,12 @@ public: TIMER_CALLBACK_MEMBER(ataxx_interrupt_callback); TIMER_CALLBACK_MEMBER(scanline_callback); TIMER_CALLBACK_MEMBER(leland_delayed_mvram_w); - DECLARE_READ8_MEMBER(ataxx_eeprom_r); - DECLARE_WRITE8_MEMBER(ataxx_eeprom_w); - DECLARE_READ8_MEMBER(leland_sound_port_r); - DECLARE_WRITE8_MEMBER(leland_sound_port_w); - DECLARE_WRITE8_MEMBER(leland_gfx_port_w); + void leland_video_addr_w(address_space &space, int offset, int data, int num); int leland_vram_port_r(address_space &space, int offset, int num); void leland_vram_port_w(address_space &space, int offset, int data, int num); int dial_compute_value(int new_val, int indx); + void update_dangerz_xy(); void cerberus_bankswitch(); void mayhem_bankswitch(); diff --git a/src/mame/machine/leland.cpp b/src/mame/machine/leland.cpp index 64eaab33319..6f844c9dd11 100644 --- a/src/mame/machine/leland.cpp +++ b/src/mame/machine/leland.cpp @@ -9,8 +9,6 @@ ***************************************************************************/ #include "emu.h" -#include "cpu/i86/i86.h" -#include "machine/eepromser.h" #include "cpu/z80/z80.h" #include "includes/leland.h" @@ -322,6 +320,21 @@ MACHINE_START_MEMBER(leland_state,leland) /* start scanline interrupts going */ m_master_int_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(leland_state::leland_interrupt_callback),this)); + + save_item(NAME(m_dac_control)); + save_item(NAME(m_wcol_enable)); + save_item(NAME(m_analog_result)); + save_item(NAME(m_dial_last_input)); + save_item(NAME(m_dial_last_result)); + save_item(NAME(m_keycard_shift)); + save_item(NAME(m_keycard_bit)); + save_item(NAME(m_keycard_state)); + save_item(NAME(m_keycard_clock)); + save_item(NAME(m_keycard_command)); + save_item(NAME(m_top_board_bank)); + save_item(NAME(m_sound_port_bank)); + save_item(NAME(m_alternate_bank)); + save_item(NAME(m_battery_ram_enable)); } @@ -372,6 +385,15 @@ MACHINE_START_MEMBER(leland_state,ataxx) /* start scanline interrupts going */ m_master_int_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(leland_state::ataxx_interrupt_callback),this)); + + save_item(NAME(m_wcol_enable)); + save_item(NAME(m_dial_last_input)); + save_item(NAME(m_dial_last_result)); + save_item(NAME(m_master_bank)); + save_item(NAME(m_xrom1_addr)); + save_item(NAME(m_xrom2_addr)); + save_item(NAME(m_battery_ram_enable)); + save_pointer(NAME(m_extra_tram.get()), ATAXX_EXTRA_TRAM_SIZE); } @@ -381,7 +403,6 @@ MACHINE_RESET_MEMBER(leland_state,ataxx) m_master_int_timer->adjust(m_screen->time_until_pos(8), 8); /* initialize the XROM */ - m_xrom_length = memregion("user1")->bytes(); m_xrom_base = memregion("user1")->base(); m_xrom1_addr = 0; m_xrom2_addr = 0; diff --git a/src/mame/video/leland.cpp b/src/mame/video/leland.cpp index 8f110bab0b9..a4befb9668f 100644 --- a/src/mame/video/leland.cpp +++ b/src/mame/video/leland.cpp @@ -63,6 +63,18 @@ VIDEO_START_MEMBER(leland_state,leland) /* scanline timer */ m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(leland_state::scanline_callback),this)); m_scanline_timer->adjust(m_screen->time_until_pos(0)); + + save_item(NAME(m_gfx_control)); + save_pointer(NAME(m_video_ram.get()), VRAM_SIZE); + save_item(NAME(m_xscroll)); + save_item(NAME(m_yscroll)); + save_item(NAME(m_gfxbank)); + save_item(NAME(m_last_scanline)); + for (uint8_t i = 0; i < 2; i++) + { + save_item(NAME(m_vram_state[i].m_addr), i); + save_item(NAME(m_vram_state[i].m_latch), i); + } } VIDEO_START_MEMBER(leland_state,ataxx) @@ -72,6 +84,16 @@ VIDEO_START_MEMBER(leland_state,ataxx) /* allocate memory */ m_ataxx_qram = make_unique_clear(QRAM_SIZE); + + save_pointer(NAME(m_video_ram.get()), VRAM_SIZE); + save_pointer(NAME(m_ataxx_qram.get()), QRAM_SIZE); + save_item(NAME(m_xscroll)); + save_item(NAME(m_yscroll)); + for (uint8_t i = 0; i < 2; i++) + { + save_item(NAME(m_vram_state[i].m_addr), i); + save_item(NAME(m_vram_state[i].m_latch), i); + } }