diff options
Diffstat (limited to 'src/mame/drivers/coolpool.cpp')
-rw-r--r-- | src/mame/drivers/coolpool.cpp | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/mame/drivers/coolpool.cpp b/src/mame/drivers/coolpool.cpp index 576bec7aff8..511ed975311 100644 --- a/src/mame/drivers/coolpool.cpp +++ b/src/mame/drivers/coolpool.cpp @@ -425,7 +425,7 @@ uint16_t coolpool_state::dsp_hold_line_r() uint16_t coolpool_state::dsp_rom_r() { - return m_dsp_rom[m_iop_romaddr & (m_dsp_rom.mask())]; + return m_dsp_rom[m_iop_romaddr & (m_dsp_rom.length() - 1)]; } @@ -521,7 +521,7 @@ uint16_t coolpool_state::coolpool_input_r(offs_t offset) void coolpool_state::amerdart_map(address_map &map) { - map(0x00000000, 0x000fffff).ram().share("vram_base"); + map(0x00000000, 0x000fffff).ram().share(m_vram_base); map(0x04000000, 0x0400000f).w(FUNC(coolpool_state::amerdart_misc_w)); map(0x05000000, 0x0500000f).r(m_dsp2main, FUNC(generic_latch_16_device::read)).w(m_main2dsp, FUNC(generic_latch_16_device::write)); map(0x06000000, 0x06007fff).ram().w(FUNC(coolpool_state::nvram_thrash_data_w)).share("nvram"); @@ -531,7 +531,7 @@ void coolpool_state::amerdart_map(address_map &map) void coolpool_state::coolpool_map(address_map &map) { - map(0x00000000, 0x001fffff).ram().share("vram_base"); + map(0x00000000, 0x001fffff).ram().share(m_vram_base); map(0x01000000, 0x010000ff).rw(m_tlc34076, FUNC(tlc34076_device::read), FUNC(tlc34076_device::write)).umask16(0x00ff); // IMSG176P-40 map(0x02000000, 0x020000ff).r(m_dsp2main, FUNC(generic_latch_16_device::read)).w(m_main2dsp, FUNC(generic_latch_16_device::write)); map(0x03000000, 0x0300000f).w(FUNC(coolpool_state::coolpool_misc_w)); @@ -1039,8 +1039,11 @@ ROM_END * *************************************/ -void coolpool_state::register_state_save() +void coolpool_state::machine_start() { + // assumes it can make an address mask with m_dsp_rom.length() - 1 + assert(!(m_dsp_rom.length() & (m_dsp_rom.length() - 1))); + save_item(NAME(m_oldx)); save_item(NAME(m_oldy)); save_item(NAME(m_result)); @@ -1054,19 +1057,12 @@ void coolpool_state::register_state_save() void coolpool_state::init_amerdart() { m_lastresult = 0xffff; - - register_state_save(); -} - -void coolpool_state::init_coolpool() -{ - register_state_save(); } void coolpool_state::init_9ballsht() { - /* decrypt the main program ROMs */ + // decrypt the main program ROMs uint16_t *rom = (uint16_t *)memregion("maincpu")->base(); int len = memregion("maincpu")->bytes(); for (int a = 0; a < len/2; a++) @@ -1088,18 +1084,16 @@ void coolpool_state::init_9ballsht() rom[a] = (nhi << 8) | nlo; } - /* decrypt the sub data ROMs */ + // decrypt the sub data ROMs rom = (uint16_t *)memregion("dspdata")->base(); len = memregion("dspdata")->bytes(); for (int a = 1; a < len/2; a += 4) { - /* just swap bits 1 and 2 of the address */ + // just swap bits 1 and 2 of the address uint16_t tmp = rom[a]; rom[a] = rom[a+1]; rom[a+1] = tmp; } - - register_state_save(); } @@ -1113,7 +1107,7 @@ void coolpool_state::init_9ballsht() GAME( 1989, amerdart, 0, amerdart, amerdart, coolpool_state, init_amerdart, ROT0, "Ameri", "AmeriDarts (set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, amerdart2, amerdart, amerdart, amerdart, coolpool_state, init_amerdart, ROT0, "Ameri", "AmeriDarts (set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, amerdart3, amerdart, amerdart, amerdart, coolpool_state, init_amerdart, ROT0, "Ameri", "AmeriDarts (set 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, coolpool, 0, coolpool, coolpool, coolpool_state, init_coolpool, ROT0, "Catalina", "Cool Pool", 0 ) +GAME( 1992, coolpool, 0, coolpool, coolpool, coolpool_state, empty_init, ROT0, "Catalina", "Cool Pool", 0 ) GAME( 1993, 9ballsht, 0, _9ballsht, 9ballsht, coolpool_state, init_9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 1)", 0 ) GAME( 1993, 9ballsht2, 9ballsht, _9ballsht, 9ballsht, coolpool_state, init_9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 2)", 0 ) GAME( 1993, 9ballsht3, 9ballsht, _9ballsht, 9ballsht, coolpool_state, init_9ballsht, ROT0, "E-Scape EnterMedia (Bundra license)", "9-Ball Shootout (set 3)", 0 ) |