From c12b9fc0ff66f5fce06760eab20a96666669145c Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Thu, 2 Mar 2023 20:18:37 +1100 Subject: Follow-up on recent additions: * jaleco/psychic5.cpp: Cleaned up and modernised a little. * seibu/seibuspi.cpp: Confirmed PAL type for Raiden Fighters 2. * thepit/thepit.cpp: Marked new set as a licensed US version. --- src/mame/jaleco/psychic5.cpp | 191 +++++++++++++++++++---------------------- src/mame/jaleco/psychic5.h | 46 ++++++---- src/mame/jaleco/psychic5_v.cpp | 9 +- src/mame/mame.lst | 6 +- src/mame/seibu/seibuspi.cpp | 66 +++++++------- src/mame/thepit/thepit.cpp | 40 ++++----- 6 files changed, 176 insertions(+), 182 deletions(-) diff --git a/src/mame/jaleco/psychic5.cpp b/src/mame/jaleco/psychic5.cpp index 369264ff210..9cf821dc528 100644 --- a/src/mame/jaleco/psychic5.cpp +++ b/src/mame/jaleco/psychic5.cpp @@ -338,17 +338,17 @@ Notes (23-Jan-2016 AS): #include "screen.h" #include "speaker.h" +#include -MACHINE_START_MEMBER(psychic5_state, psychic5) -{ - membank("mainbank")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000); - save_item(NAME(m_bank_latch)); -} - -MACHINE_START_MEMBER(psychic5_state, bombsa) +void psychic5_state::machine_start() { - membank("mainbank")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); + // be lazy and assume banked ROM is always a power-of-two and multiple of page size + assert(!(m_bankrom->bytes() % 0x4000)); + assert(!(m_bankrom->bytes() & (m_bankrom->bytes() - 1))); + + m_mainbank->configure_entries(0, m_bankrom->bytes() / 0x4000, m_bankrom->base(), 0x4000); + m_bank_mask = (m_bankrom->bytes() / 0x4000) - 1; save_item(NAME(m_bank_latch)); } @@ -356,6 +356,8 @@ MACHINE_START_MEMBER(psychic5_state, bombsa) void psychic5_state::machine_reset() { m_bank_latch = 0xff; + m_mainbank->set_entry(m_bank_latch & m_bank_mask); + flip_screen_set(0); } @@ -369,10 +371,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(psychic5_state::scanline) { int scanline = param; - if(scanline == 240) // vblank-out irq + if (scanline == 240) // vblank-out irq m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xd7); /* Z80 - RST 10h - vblank */ - if(scanline == 0) // sprite buffer irq + if (scanline == 0) // sprite buffer irq m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf); /* Z80 - RST 08h */ } @@ -389,21 +391,12 @@ uint8_t psychic5_state::bankselect_r() return m_bank_latch; } -void psychic5_state::psychic5_bankselect_w(uint8_t data) -{ - if (m_bank_latch != data) - { - m_bank_latch = data; - membank("mainbank")->set_entry(data & 3); /* Select 4 banks of 16k */ - } -} - -void psychic5_state::bombsa_bankselect_w(uint8_t data) +void psychic5_state::bankselect_w(uint8_t data) { if (m_bank_latch != data) { m_bank_latch = data; - membank("mainbank")->set_entry(data & 7); /* Select 8 banks of 16k */ + m_mainbank->set_entry(data & m_bank_mask); } } @@ -438,40 +431,35 @@ void psychic5_state::bombsa_flipscreen_w(uint8_t data) void psychic5_state::psychic5_main_map(address_map &map) { map(0x0000, 0x7fff).rom(); - map(0x8000, 0xbfff).bankr("mainbank"); - map(0xc000, 0xdfff).m(m_vrambank, FUNC(address_map_bank_device::amap8)); + map(0x8000, 0xbfff).bankr(m_mainbank); + map(0xc000, 0xdfff).view(m_vrambank); map(0xe000, 0xefff).ram(); map(0xf000, 0xf000).w("soundlatch", FUNC(generic_latch_8_device::write)); map(0xf001, 0xf001).nopr().w(FUNC(psychic5_state::psychic5_coin_counter_w)); - map(0xf002, 0xf002).rw(FUNC(psychic5_state::bankselect_r), FUNC(psychic5_state::psychic5_bankselect_w)); + map(0xf002, 0xf002).rw(FUNC(psychic5_state::bankselect_r), FUNC(psychic5_state::bankselect_w)); map(0xf003, 0xf003).rw(FUNC(psychic5_state::vram_page_select_r), FUNC(psychic5_state::vram_page_select_w)); map(0xf004, 0xf004).noprw(); // ??? map(0xf005, 0xf005).nopr().w(FUNC(psychic5_state::psychic5_title_screen_w)); map(0xf006, 0xf1ff).noprw(); map(0xf200, 0xf7ff).ram().share("spriteram"); map(0xf800, 0xffff).ram(); -} + m_vrambank[0](0xc000, 0xcfff).ram().w(FUNC(psychic5_state::bg_videoram_w)).share(m_bg_videoram); + m_vrambank[0](0xd000, 0xdfff).ram(); -void psychic5_state::psychic5_vrambank_map(address_map &map) -{ - map(0x0000, 0x0fff).ram().w(FUNC(psychic5_state::bg_videoram_w)).share("bg_videoram"); - map(0x1000, 0x1fff).ram(); - - map(0x2000, 0x2000).portr("SYSTEM"); - map(0x2001, 0x2001).portr("P1"); - map(0x2002, 0x2002).portr("P2"); - map(0x2003, 0x2003).portr("DSW1"); - map(0x2004, 0x2004).portr("DSW2"); + m_vrambank[1](0xc000, 0xc000).portr("SYSTEM"); + m_vrambank[1](0xc001, 0xc001).portr("P1"); + m_vrambank[1](0xc002, 0xc002).portr("P2"); + m_vrambank[1](0xc003, 0xc003).portr("DSW1"); + m_vrambank[1](0xc004, 0xc004).portr("DSW2"); - map(0x2308, 0x230c).ram().share("bg_control"); + m_vrambank[1](0xc308, 0xc30c).ram().share(m_bg_control); - map(0x2400, 0x25ff).ram().w(FUNC(psychic5_state::sprite_col_w)).share("palette_ram_sp"); - map(0x2800, 0x29ff).ram().w(FUNC(psychic5_state::bg_col_w)).share("palette_ram_bg"); - map(0x2a00, 0x2bff).ram().w(FUNC(psychic5_state::tx_col_w)).share("palette_ram_tx"); - - map(0x3000, 0x37ff).ram().w(FUNC(psychic5_state::fg_videoram_w)).share("fg_videoram"); + m_vrambank[1](0xc400, 0xc5ff).ram().w(FUNC(psychic5_state::sprite_col_w)).share(m_ps5_palette_ram_sp); + m_vrambank[1](0xc800, 0xc9ff).ram().w(FUNC(psychic5_state::bg_col_w)).share(m_ps5_palette_ram_bg); + m_vrambank[1](0xca00, 0xcbff).ram().w(FUNC(psychic5_state::tx_col_w)).share(m_ps5_palette_ram_tx); + m_vrambank[1](0xd000, 0xd7ff).ram().w(FUNC(psychic5_state::fg_videoram_w)).share(m_fg_videoram); } @@ -493,21 +481,37 @@ void psychic5_state::psychic5_soundport_map(address_map &map) void psychic5_state::bombsa_main_map(address_map &map) { map(0x0000, 0x7fff).rom(); - map(0x8000, 0xbfff).bankr("mainbank"); + map(0x8000, 0xbfff).bankr(m_mainbank); map(0xc000, 0xcfff).ram(); /* ports look like the other games */ map(0xd000, 0xd1ff).ram(); map(0xd000, 0xd000).w("soundlatch", FUNC(generic_latch_8_device::write)); // confirmed map(0xd001, 0xd001).w(FUNC(psychic5_state::bombsa_flipscreen_w)); - map(0xd002, 0xd002).rw(FUNC(psychic5_state::bankselect_r), FUNC(psychic5_state::bombsa_bankselect_w)); + map(0xd002, 0xd002).rw(FUNC(psychic5_state::bankselect_r), FUNC(psychic5_state::bankselect_w)); map(0xd003, 0xd003).rw(FUNC(psychic5_state::vram_page_select_r), FUNC(psychic5_state::vram_page_select_w)); map(0xd005, 0xd005).w(FUNC(psychic5_state::bombsa_unknown_w)); // ? - map(0xd200, 0xd7ff).ram().share("spriteram"); + map(0xd200, 0xd7ff).ram().share(m_spriteram); map(0xd800, 0xdfff).ram(); - map(0xe000, 0xffff).m(m_vrambank, FUNC(address_map_bank_device::amap8)); + map(0xe000, 0xffff).view(m_vrambank); + + m_vrambank[0](0xe000, 0xffff).ram().w(FUNC(psychic5_state::bg_videoram_w)).share(m_bg_videoram); + + m_vrambank[1](0xe000, 0xe000).portr("SYSTEM"); + m_vrambank[1](0xe001, 0xe001).portr("P1"); + m_vrambank[1](0xe002, 0xe002).portr("P2"); + m_vrambank[1](0xe003, 0xe003).portr("DSW1"); + m_vrambank[1](0xe004, 0xe004).portr("DSW2"); + + m_vrambank[1](0xe308, 0xe30c).ram().share(m_bg_control); + + m_vrambank[1](0xe800, 0xefff).ram().w(FUNC(psychic5_state::fg_videoram_w)).share(m_fg_videoram); + + m_vrambank[1](0xf000, 0xf1ff).ram().w(FUNC(psychic5_state::sprite_col_w)).share(m_ps5_palette_ram_sp); + m_vrambank[1](0xf200, 0xf3ff).ram().w(FUNC(psychic5_state::bg_col_w)).share(m_ps5_palette_ram_bg); + m_vrambank[1](0xf400, 0xf5ff).ram().w(FUNC(psychic5_state::tx_col_w)).share(m_ps5_palette_ram_tx); } void psychic5_state::bombsa_sound_map(address_map &map) @@ -525,25 +529,6 @@ void psychic5_state::bombsa_soundport_map(address_map &map) map(0x80, 0x81).rw("ym2", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); } -void psychic5_state::bombsa_vrambank_map(address_map &map) -{ - map(0x0000, 0x1fff).ram().w(FUNC(psychic5_state::bg_videoram_w)).share("bg_videoram"); - - map(0x2000, 0x2000).portr("SYSTEM"); - map(0x2001, 0x2001).portr("P1"); - map(0x2002, 0x2002).portr("P2"); - map(0x2003, 0x2003).portr("DSW1"); - map(0x2004, 0x2004).portr("DSW2"); - - map(0x2308, 0x230c).ram().share("bg_control"); - - map(0x3000, 0x31ff).ram().w(FUNC(psychic5_state::sprite_col_w)).share("palette_ram_sp"); - map(0x3200, 0x33ff).ram().w(FUNC(psychic5_state::bg_col_w)).share("palette_ram_bg"); - map(0x3400, 0x35ff).ram().w(FUNC(psychic5_state::tx_col_w)).share("palette_ram_tx"); - - map(0x2800, 0x2fff).ram().w(FUNC(psychic5_state::fg_videoram_w)).share("fg_videoram"); -} - static INPUT_PORTS_START( psychic5 ) PORT_START("SYSTEM") /* system control */ @@ -727,16 +712,12 @@ void psychic5_state::psychic5(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_main_map); TIMER(config, "scantimer").configure_scanline(FUNC(psychic5_state::scanline), "screen", 0, 1); - ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::psychic5_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000); - Z80(config, m_audiocpu, XTAL(5'000'000)); m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_sound_map); m_audiocpu->set_addrmap(AS_IO, &psychic5_state::psychic5_soundport_map); config.set_maximum_quantum(attotime::from_hz(600)); /* Allow time for 2nd cpu to interleave */ - MCFG_MACHINE_START_OVERRIDE(psychic5_state,psychic5) - /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); // was 53.8 Hz before, assume same as Bombs Away @@ -775,16 +756,12 @@ void psychic5_state::bombsa(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_main_map); TIMER(config, "scantimer").configure_scanline(FUNC(psychic5_state::scanline), "screen", 0, 1); - ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::bombsa_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000); - Z80(config, m_audiocpu, XTAL(5'000'000)); m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_sound_map); m_audiocpu->set_addrmap(AS_IO, &psychic5_state::bombsa_soundport_map); config.set_maximum_quantum(attotime::from_hz(600)); - MCFG_MACHINE_START_OVERRIDE(psychic5_state,bombsa) - /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); /* Measured as: VSync 54Hz, HSync 15.25kHz */ @@ -824,51 +801,55 @@ void psychic5_state::bombsa(machine_config &config) // Main PCB PS-8634 // Tilemap PCB PS-8635 ROM_START( psychic5j ) - ROM_REGION( 0x20000, "maincpu", 0 ) /* Main CPU */ + ROM_REGION( 0x08000, "maincpu", 0 ) // Main CPU ROM_LOAD( "4.7a", 0x00000, 0x08000, CRC(90259249) SHA1(ac2d8dd95f6c04b6ad726136931e37dcd537e977) ) - ROM_LOAD( "5.7c", 0x10000, 0x10000, CRC(72298f34) SHA1(725be2fbf5f3622f646c0fb8e6677cbddf0b1fc2) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ + ROM_REGION( 0x10000, "bankrom", 0 ) + ROM_LOAD( "5.7c", 0x00000, 0x10000, CRC(72298f34) SHA1(725be2fbf5f3622f646c0fb8e6677cbddf0b1fc2) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound CPU ROM_LOAD( "1.2b", 0x00000, 0x10000, CRC(6efee094) SHA1(ae2b5bf6199121520bf8428b8b160b987f5b474f) ) - ROM_REGION( 0x20000, "gfx1", 0 ) /* sprite tiles */ + ROM_REGION( 0x20000, "gfx1", 0 ) // sprite tiles ROM_LOAD( "2.4p", 0x00000, 0x10000, CRC(7e3f87d4) SHA1(b8e7fa3f96d2e3937e4cb530f105bb84d5743b43) ) ROM_LOAD( "3.4r", 0x10000, 0x10000, CRC(8710fedb) SHA1(c7e8dc6b733e4ecce37d56fc429c00ade8736ff3) ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* background tiles */ + ROM_REGION( 0x20000, "gfx2", 0 ) // background tiles ROM_LOAD( "7.2k", 0x00000, 0x10000, CRC(f9262f32) SHA1(bae2dc77be7024bd85f213e4da746c5903db6ea5) ) ROM_LOAD( "8.2m", 0x10000, 0x10000, CRC(c411171a) SHA1(d5893563715ba231e42b084b88f5176bb94a4da9) ) - ROM_REGION( 0x08000, "gfx3", 0 ) /* foreground tiles */ + ROM_REGION( 0x08000, "gfx3", 0 ) // foreground tiles ROM_LOAD( "6.5f", 0x00000, 0x08000, CRC(04d7e21c) SHA1(6046c506bdedc233e3730f90c7897e847bec8758) ) - ROM_REGION( 0x08000, "proms", 0 ) /* Proms */ - ROM_LOAD( "my10.7l", 0x000, 0x200, CRC(6a7d13c0) SHA1(2a835a4ac1acb7663d0b915d0339af9800284da6) ) - ROM_LOAD( "my09.3t", 0x200, 0x400, CRC(59e44236) SHA1(f53d99694fa5acd7cc51dd78e09f0d2ef730e7a4) ) + ROM_REGION( 0x08000, "proms", 0 ) // PROMs + ROM_LOAD( "my10.7l", 0x000, 0x200, CRC(6a7d13c0) SHA1(2a835a4ac1acb7663d0b915d0339af9800284da6) ) + ROM_LOAD( "my09.3t", 0x200, 0x400, CRC(59e44236) SHA1(f53d99694fa5acd7cc51dd78e09f0d2ef730e7a4) ) ROM_END ROM_START( psychic5 ) - ROM_REGION( 0x20000, "maincpu", 0 ) /* Main CPU */ - ROM_LOAD( "myp5d", 0x00000, 0x08000, CRC(1d40a8c7) SHA1(79b36e690ea334c066b55b1e39ceb5fe0688cd7b) ) - ROM_LOAD( "myp5e", 0x10000, 0x10000, CRC(2fa7e8c0) SHA1(d5096ebec58329346a3292ad2da1be3742fad093) ) + ROM_REGION( 0x08000, "maincpu", 0 ) // Main CPU + ROM_LOAD( "myp5d", 0x00000, 0x08000, CRC(1d40a8c7) SHA1(79b36e690ea334c066b55b1e39ceb5fe0688cd7b) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ - ROM_LOAD( "myp5a", 0x00000, 0x10000, CRC(6efee094) SHA1(ae2b5bf6199121520bf8428b8b160b987f5b474f) ) + ROM_REGION( 0x10000, "bankrom", 0 ) + ROM_LOAD( "myp5e", 0x00000, 0x10000, CRC(2fa7e8c0) SHA1(d5096ebec58329346a3292ad2da1be3742fad093) ) - ROM_REGION( 0x20000, "gfx1", 0 ) /* sprite tiles */ + ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound CPU + ROM_LOAD( "myp5a", 0x00000, 0x10000, CRC(6efee094) SHA1(ae2b5bf6199121520bf8428b8b160b987f5b474f) ) + + ROM_REGION( 0x20000, "gfx1", 0 ) // sprite tiles ROM_LOAD( "p5b", 0x00000, 0x10000, CRC(7e3f87d4) SHA1(b8e7fa3f96d2e3937e4cb530f105bb84d5743b43) ) ROM_LOAD( "p5c", 0x10000, 0x10000, CRC(8710fedb) SHA1(c7e8dc6b733e4ecce37d56fc429c00ade8736ff3) ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* background tiles */ - ROM_LOAD( "myp5g", 0x00000, 0x10000, CRC(617b074b) SHA1(7aaac9fddf5675b6698373333db3e096471d7ad6) ) - ROM_LOAD( "myp5h", 0x10000, 0x10000, CRC(a9dfbe67) SHA1(f31f75e88f9b37d7fe5b1a1a8e0299151b729ccf) ) + ROM_REGION( 0x20000, "gfx2", 0 ) // background tiles + ROM_LOAD( "myp5g", 0x00000, 0x10000, CRC(617b074b) SHA1(7aaac9fddf5675b6698373333db3e096471d7ad6) ) + ROM_LOAD( "myp5h", 0x10000, 0x10000, CRC(a9dfbe67) SHA1(f31f75e88f9b37d7fe5b1a1a8e0299151b729ccf) ) - ROM_REGION( 0x08000, "gfx3", 0 ) /* foreground tiles */ + ROM_REGION( 0x08000, "gfx3", 0 ) // foreground tiles ROM_LOAD( "p5f", 0x00000, 0x08000, CRC(04d7e21c) SHA1(6046c506bdedc233e3730f90c7897e847bec8758) ) - ROM_REGION( 0x08000, "proms", 0 ) /* Proms */ - ROM_LOAD( "my10.7l", 0x000, 0x200, CRC(6a7d13c0) SHA1(2a835a4ac1acb7663d0b915d0339af9800284da6) ) - ROM_LOAD( "my09.3t", 0x200, 0x400, CRC(59e44236) SHA1(f53d99694fa5acd7cc51dd78e09f0d2ef730e7a4) ) + ROM_REGION( 0x08000, "proms", 0 ) // PROMs + ROM_LOAD( "my10.7l", 0x000, 0x200, CRC(6a7d13c0) SHA1(2a835a4ac1acb7663d0b915d0339af9800284da6) ) + ROM_LOAD( "my09.3t", 0x200, 0x400, CRC(59e44236) SHA1(f53d99694fa5acd7cc51dd78e09f0d2ef730e7a4) ) ROM_END /* @@ -941,28 +922,30 @@ Notes: ROM_START( bombsa ) - ROM_REGION( 0x30000, "maincpu", ROMREGION_ERASEFF ) /* Main CPU */ + ROM_REGION( 0x08000, "maincpu", 0 ) // Main CPU ROM_LOAD( "4.7a", 0x00000, 0x08000, CRC(0191f6a7) SHA1(10a0434abbf4be068751e65c81b1a211729e3742) ) - /* these two fail their self-test, happens on real HW as well. */ - ROM_LOAD( "5.7c", 0x10000, 0x08000, CRC(095c451a) SHA1(892ca84376f89640ad4d28f1e548c26bc8f72c0e) ) - ROM_LOAD( "6.7d", 0x20000, 0x10000, CRC(89f9dc0f) SHA1(5cf6a7aade3d56bc229d3771bc4141ad0c0e8da2) ) - ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ + ROM_REGION( 0x20000, "bankrom", 0 ) // these two fail their self-test, happens on real HW as well. + ROM_LOAD( "5.7c", 0x00000, 0x08000, CRC(095c451a) SHA1(892ca84376f89640ad4d28f1e548c26bc8f72c0e) ) + ROM_RELOAD( 0x08000, 0x08000 ) + ROM_LOAD( "6.7d", 0x10000, 0x10000, CRC(89f9dc0f) SHA1(5cf6a7aade3d56bc229d3771bc4141ad0c0e8da2) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) // Sound CPU ROM_LOAD( "1.3a", 0x00000, 0x08000, CRC(92801404) SHA1(c4ff47989d355b18a909eaa88f138e2f68178ecc) ) - ROM_REGION( 0x20000, "gfx1", 0 ) /* sprite tiles */ + ROM_REGION( 0x20000, "gfx1", 0 ) // sprite tiles ROM_LOAD( "2.4p", 0x00000, 0x10000, CRC(bd972ff4) SHA1(63bfb455bc0ae1d31e6f1066864ec0c8d2d0cf99) ) ROM_LOAD( "3.4s", 0x10000, 0x10000, CRC(9a8a8a97) SHA1(13328631202c196c9d8791cc6063048eb6be0472) ) - ROM_REGION( 0x20000, "gfx2", 0 ) /* background tiles */ - /* some corrupt 'blank' characters in these */ + ROM_REGION( 0x20000, "gfx2", 0 ) // background tiles + // some corrupt 'blank' characters in these ROM_LOAD( "8.2l", 0x00000, 0x10000, CRC(3391c769) SHA1(7ae7575ac81d6e0d915c279c1f57a9bc6d096bd6) ) ROM_LOAD( "9.2m", 0x10000, 0x10000, CRC(5b315976) SHA1(d17cc1926f926bdd88b66ea6af88dac30880e7d4) ) - ROM_REGION( 0x08000, "gfx3", 0 ) /* foreground tiles */ + ROM_REGION( 0x08000, "gfx3", 0 ) // foreground tiles ROM_LOAD( "7.4f", 0x00000, 0x08000, CRC(400114b9) SHA1(db2f3ba05a2005ae0e0e7d19c8739353032cbeab) ) - ROM_REGION( 0x08000, "proms", 0 ) /* Proms */ + ROM_REGION( 0x08000, "proms", 0 ) // PROMs ROM_LOAD( "82s131.7l", 0x000, 0x200, CRC(6a7d13c0) SHA1(2a835a4ac1acb7663d0b915d0339af9800284da6) ) ROM_LOAD( "82s137.3t", 0x200, 0x400, CRC(59e44236) SHA1(f53d99694fa5acd7cc51dd78e09f0d2ef730e7a4) ) ROM_END diff --git a/src/mame/jaleco/psychic5.h b/src/mame/jaleco/psychic5.h index 517b3e24b2f..5c80cd48c23 100644 --- a/src/mame/jaleco/psychic5.h +++ b/src/mame/jaleco/psychic5.h @@ -1,23 +1,30 @@ // license:BSD-3-Clause // copyright-holders:Jarek Parchanski +#ifndef MAME_JALECO_PSYCHIC5_H +#define MAME_JALECO_PSYCHIC5_H + +#pragma once -#include "machine/bankdev.h" -#include "machine/timer.h" #include "jalblend.h" + +#include "machine/timer.h" + #include "emupal.h" #include "tilemap.h" class psychic5_state : public driver_device { public: - psychic5_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), + psychic5_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), - m_vrambank(*this, "vrambank"), m_blend(*this, "blend"), + m_vrambank(*this, "vrambank"), + m_bankrom(*this, "bankrom"), + m_mainbank(*this, "mainbank"), m_spriteram(*this, "spriteram"), m_fg_videoram(*this, "fg_videoram"), m_bg_videoram(*this, "bg_videoram"), @@ -25,20 +32,30 @@ public: m_ps5_palette_ram_bg(*this, "palette_ram_bg"), m_ps5_palette_ram_sp(*this, "palette_ram_sp"), m_ps5_palette_ram_tx(*this, "palette_ram_tx") - { } void psychic5(machine_config &config); void bombsa(machine_config &config); +protected: + virtual void machine_start() override ATTR_COLD; + virtual void machine_reset() override ATTR_COLD; + virtual void video_start() override ATTR_COLD; + virtual void video_reset() override ATTR_COLD; + private: required_device m_maincpu; required_device m_audiocpu; required_device m_gfxdecode; required_device m_palette; - optional_device m_vrambank; optional_device m_blend; + memory_view m_vrambank; + + required_memory_region m_bankrom; + + required_memory_bank m_mainbank; + required_shared_ptr m_spriteram; required_shared_ptr m_fg_videoram; required_shared_ptr m_bg_videoram; @@ -47,8 +64,9 @@ private: required_shared_ptr m_ps5_palette_ram_sp; required_shared_ptr m_ps5_palette_ram_tx; + uint8_t m_bank_mask = 0; + uint8_t m_bank_latch = 0; - uint8_t m_ps5_vram_page = 0; uint8_t m_bg_clip_mode = 0; uint8_t m_title_screen = 0; tilemap_t *m_bg_tilemap = nullptr; @@ -60,6 +78,7 @@ private: int m_sy2 = 0; uint8_t bankselect_r(); + void bankselect_w(uint8_t data); uint8_t vram_page_select_r(); void vram_page_select_w(uint8_t data); void fg_videoram_w(offs_t offset, uint8_t data); @@ -70,24 +89,17 @@ private: /* psychic5 specific */ void psychic5_coin_counter_w(uint8_t data); - void psychic5_bankselect_w(uint8_t data); void psychic5_title_screen_w(uint8_t data); /* bombsa specific */ - void bombsa_bankselect_w(uint8_t data); void bombsa_flipscreen_w(uint8_t data); void bombsa_unknown_w(uint8_t data); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); - virtual void machine_reset() override; - DECLARE_MACHINE_START(psychic5); - DECLARE_MACHINE_START(bombsa); - virtual void video_start() override; DECLARE_VIDEO_START(psychic5); DECLARE_VIDEO_START(bombsa); - virtual void video_reset() override; TIMER_DEVICE_CALLBACK_MEMBER(scanline); @@ -100,10 +112,10 @@ private: void bombsa_main_map(address_map &map); void bombsa_sound_map(address_map &map); void bombsa_soundport_map(address_map &map); - void bombsa_vrambank_map(address_map &map); void psychic5_main_map(address_map &map); void psychic5_sound_map(address_map &map); void psychic5_soundport_map(address_map &map); - void psychic5_vrambank_map(address_map &map); void draw_background(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); //only used by psychic5 }; + +#endif // MAME_JALECO_PSYCHIC5_H diff --git a/src/mame/jaleco/psychic5_v.cpp b/src/mame/jaleco/psychic5_v.cpp index 42215b0f33e..6a2cb753dc3 100644 --- a/src/mame/jaleco/psychic5_v.cpp +++ b/src/mame/jaleco/psychic5_v.cpp @@ -87,13 +87,12 @@ void psychic5_state::set_background_palette_intensity() uint8_t psychic5_state::vram_page_select_r() { - return m_ps5_vram_page; + return *m_vrambank.entry(); } void psychic5_state::vram_page_select_w(uint8_t data) { - m_ps5_vram_page = data & 1; - m_vrambank->set_bank(data); + m_vrambank.select(data & 1); } void psychic5_state::psychic5_title_screen_w(uint8_t data) @@ -175,7 +174,6 @@ TILE_GET_INFO_MEMBER(psychic5_state::get_fg_tile_info) void psychic5_state::video_start() { - save_item(NAME(m_ps5_vram_page)); save_item(NAME(m_bg_clip_mode)); save_item(NAME(m_palette_intensity)); save_item(NAME(m_sx1)); @@ -209,8 +207,9 @@ VIDEO_START_MEMBER(psychic5_state,bombsa) void psychic5_state::video_reset() { + m_vrambank.select(0); + m_bg_clip_mode = 0; - m_ps5_vram_page = 0; m_title_screen = 0; m_palette_intensity = 0; } diff --git a/src/mame/mame.lst b/src/mame/mame.lst index c97ce582952..134a18300d1 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -43355,10 +43355,10 @@ rtriv // (c) 198? Romar suprmous // (c) 1982 Taito thehole // bootleg thepit // (c) 1982 Zilec -thepitc // (c) 1982 Centuri Inc thepitj // (c) 1982 Taito (licensed) -thepitu1 // (c) 1982 Centuri (licensed) -thepitu2 // (c) 1982 Centuri (licensed) +thepitu1 // (c) 1982 Centuri Inc (licensed) +thepitu2 // (c) 1982 Centuri Inc (licensed) +thepitu3 // (c) 1982 Centuri Inc (licensed) theportr // bootleg ttfitter // bootleg zaryavos // (c) 1983 Nova Games of Canada (prototype) diff --git a/src/mame/seibu/seibuspi.cpp b/src/mame/seibu/seibuspi.cpp index fbeba4e9579..98f7d2259dc 100644 --- a/src/mame/seibu/seibuspi.cpp +++ b/src/mame/seibu/seibuspi.cpp @@ -3386,9 +3386,9 @@ ROM_START( rdft2 ) /* SPI Cart, Europe */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region80.u1053", 0x000000, 0x100000, CRC(e2adaff5) SHA1(9297afaf78209724515d8f78de8cee7bc7cb796b) ) @@ -3428,9 +3428,9 @@ ROM_START( rdft2u ) /* SPI Cart, USA */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region10.u1053", 0x000000, 0x100000, CRC(4319d998) SHA1(a064ce647453a9b3bccf7f1d6d0d52b5a72e09dd) ) @@ -3470,9 +3470,9 @@ ROM_START( rdft2j ) /* SPI Cart, Japan */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region01.u1053", 0x000000, 0x100000, CRC(7ae7ab76) SHA1(a2b196f470bf64af94002fc4e2640fadad00418f) ) @@ -3512,9 +3512,9 @@ ROM_START( rdft2ja ) /* SPI Cart, Japan */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region01.u1053", 0x000000, 0x100000, CRC(7ae7ab76) SHA1(a2b196f470bf64af94002fc4e2640fadad00418f) ) @@ -3554,9 +3554,9 @@ ROM_START( rdft2jb ) /* SPI Cart, Japan */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region01.u1053", 0x000000, 0x100000, CRC(7ae7ab76) SHA1(a2b196f470bf64af94002fc4e2640fadad00418f) ) @@ -3596,9 +3596,9 @@ ROM_START( rdft2jc ) /* SPI SXX2C ROM SUB8 Cart, Japan */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region01.u1053", 0x000000, 0x100000, CRC(7ae7ab76) SHA1(a2b196f470bf64af94002fc4e2640fadad00418f) ) @@ -3638,9 +3638,9 @@ ROM_START( rdft2it ) /* SPI Cart, Italy */ ROM_LOAD32_BYTE("seibu8.bin", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region92.u1053", 0x000000, 0x100000, CRC(204d82d0) SHA1(444f4aefa27d8f5d1a2f7f08f826ea84b0ccbd02) ) @@ -3681,9 +3681,9 @@ ROM_START( rdft2a ) /* SPI Cart, Asia (Metrotainment license); SPI PCB is marked ROM_LOAD32_BYTE("seibu__8.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) // socket is silkscreened on pcb SOUND1 ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region22.u1053", 0x000000, 0x100000, CRC(5fee8413) SHA1(6d6a62fa01293b4ba4b349a39820d024add6ea22) ) @@ -3723,9 +3723,9 @@ ROM_START( rdft2aa ) /* SPI Cart, Asia (Dream Island license) */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region24.u1053", 0x000000, 0x100000, CRC(72a33dc4) SHA1(65a52f576ca4d240418fedd9a4922edcd6c0c8d1) ) @@ -3765,9 +3765,9 @@ ROM_START( rdft2t ) /* SPI Cart, Taiwan */ ROM_LOAD32_BYTE("sound1.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region20.u1053", 0x000000, 0x100000, CRC(f2051161) SHA1(45cbd5fd9ae0ca0c5c3450bca5f6806ddce3c56f) ) @@ -3807,9 +3807,9 @@ ROM_START( rdft2s ) /* SPI Cart, Switzerland; SPI PCB is marked "(C)1997 SXX2C R ROM_LOAD32_BYTE("seibu__8.u0222", 0x800000, 0x080000, CRC(b7bd3703) SHA1(6427a7e6de10d6743d6e64b984a1d1c647f5643a) ) // socket is silkscreened on pcb SOUND1 ROM_REGION( 0x0345, "pals", 0 ) /* pals */ - ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // PALCE16V8 - ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // PALCE16V8 - ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // PALCE16V8 + ROM_LOAD("rm81.u0529.bin", 0x0000, 0x0117, CRC(acd55c8e) SHA1(b965e828fecd61b836aca337637e53d7360d9dc4) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm82.u0330.bin", 0x0117, 0x0117, CRC(64c71423) SHA1(1da3502bec0c843b7198d1d9ab60f9fd4b110a8e) ) // AMD PALCE16V8H-15SC/4 + ROM_LOAD("rm83.u0331.bin", 0x022e, 0x0117, CRC(6e10d66b) SHA1(995d2a0da680ec19ee253098c91a4780dd8403c6) ) // AMD PALCE16V8H-15SC/4 ROM_REGION( 0x100000, "soundflash1", 0 ) /* on SPI motherboard */ ROM_LOAD("flash0_blank_region9c.u1053", 0x000000, 0x100000, CRC(d73d640c) SHA1(61a99af2a153de9d53e28872a2493e2ba797a325) ) diff --git a/src/mame/thepit/thepit.cpp b/src/mame/thepit/thepit.cpp index fd13538e069..6e8f5c499f1 100644 --- a/src/mame/thepit/thepit.cpp +++ b/src/mame/thepit/thepit.cpp @@ -913,6 +913,25 @@ ROM_START( thepitu2 ) ROM_LOAD( "82s123.ic4", 0x0000, 0x0020, CRC(a758b567) SHA1(d188c90dba10fe3abaae92488786b555b35218c5) ) ROM_END +ROM_START( thepitu3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "pi-38.ic38", 0x0000, 0x1000, CRC(71affecc) SHA1(e64cb2f8d546f5d44dc10a4178f3d211882c45a9) ) + ROM_LOAD( "pi-39.ic39", 0x1000, 0x1000, CRC(894063cd) SHA1(772ff81cf44d21981f9768f017af5cb81ff57be3) ) + ROM_LOAD( "pi-40.ic40", 0x2000, 0x1000, CRC(1b488543) SHA1(8991c6424f008ddd15edac953635aecdba4ea696) ) + ROM_LOAD( "pi-41.ic41", 0x3000, 0x1000, CRC(f33aab67) SHA1(edcc4222c78ce7d8accd4e6ef9f81600a066bda0) ) + ROM_LOAD( "pi-33.ic33", 0x4000, 0x1000, CRC(394ef216) SHA1(e9f7a3697183e15507b81147ac7b87c24802c65c) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "pi-30.ic30", 0x0000, 0x0800, CRC(1b79dfb6) SHA1(ba78b035a91a67732414ba327640fb771d4323c5) ) + + ROM_REGION( 0x1800, "gfx1", 0 ) /* chars and sprites */ + ROM_LOAD( "pi-9.ic9", 0x0000, 0x0800, CRC(69502afc) SHA1(9baf094baab8325af659879cfb6984eeca0d94bd) ) + ROM_LOAD( "pi-8.ic8", 0x1000, 0x0800, CRC(2ddd5045) SHA1(baa962a874f00e56c15c264980b1e31a2c9dc270) ) + + ROM_REGION( 0x0020, "proms", 0 ) + ROM_LOAD( "82s123.ic4", 0x0000, 0x0020, CRC(a758b567) SHA1(d188c90dba10fe3abaae92488786b555b35218c5) ) // not dumped for this set +ROM_END + ROM_START( thepitj ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "pit01.ic38", 0x0000, 0x1000, CRC(87c269bf) SHA1(78a85a637cbf0dcfde7ccaa9a2d543078655b566) ) @@ -933,25 +952,6 @@ ROM_START( thepitj ) ROM_LOAD( "82s123.ic4", 0x0000, 0x0020, CRC(a758b567) SHA1(d188c90dba10fe3abaae92488786b555b35218c5) ) ROM_END -ROM_START( thepitc ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD( "pi-38.ic38", 0x0000, 0x1000, CRC(71affecc) SHA1(e64cb2f8d546f5d44dc10a4178f3d211882c45a9) ) - ROM_LOAD( "pi-39.ic39", 0x1000, 0x1000, CRC(894063cd) SHA1(772ff81cf44d21981f9768f017af5cb81ff57be3) ) - ROM_LOAD( "pi-40.ic40", 0x2000, 0x1000, CRC(1b488543) SHA1(8991c6424f008ddd15edac953635aecdba4ea696) ) - ROM_LOAD( "pi-41.ic41", 0x3000, 0x1000, CRC(f33aab67) SHA1(edcc4222c78ce7d8accd4e6ef9f81600a066bda0) ) - ROM_LOAD( "pi-33.ic33", 0x4000, 0x1000, CRC(394ef216) SHA1(e9f7a3697183e15507b81147ac7b87c24802c65c) ) - - ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "pi-30.ic30", 0x0000, 0x0800, CRC(1b79dfb6) SHA1(ba78b035a91a67732414ba327640fb771d4323c5) ) - - ROM_REGION( 0x1800, "gfx1", 0 ) /* chars and sprites */ - ROM_LOAD( "pi-9.ic9", 0x0000, 0x0800, CRC(69502afc) SHA1(9baf094baab8325af659879cfb6984eeca0d94bd) ) - ROM_LOAD( "pi-8.ic8", 0x1000, 0x0800, CRC(2ddd5045) SHA1(baa962a874f00e56c15c264980b1e31a2c9dc270) ) - - ROM_REGION( 0x0020, "proms", 0 ) - ROM_LOAD( "82s123.ic4", 0x0000, 0x0020, CRC(a758b567) SHA1(d188c90dba10fe3abaae92488786b555b35218c5) ) // not dumped for this set -ROM_END - ROM_START( thehole ) // uses many components (i.e. the Z80s) marked by SGS, an Italian company. ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "1.6e", 0x0000, 0x1000, CRC(71affecc) SHA1(e64cb2f8d546f5d44dc10a4178f3d211882c45a9) ) @@ -1459,8 +1459,8 @@ GAME( 1981, ttfitter, roundup, fitter, fitter, thepit_state, empty_init, GAME( 1982, thepit, 0, thepit, thepit, thepit_state, empty_init, ROT90, "Zilec Electronics", "The Pit", MACHINE_SUPPORTS_SAVE ) // AW == Andy Walker GAME( 1982, thepitu1, thepit, thepit, thepit, thepit_state, empty_init, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, thepitu2, thepit, thepit, thepit, thepit_state, empty_init, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 2)", MACHINE_SUPPORTS_SAVE ) // Bally PCB +GAME( 1982, thepitu3, thepit, thepit, thepit, thepit_state, empty_init, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, thepitj, thepit, thepit, thepit, thepit_state, empty_init, ROT90, "Zilec Electronics (Taito license)", "The Pit (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1982, thepitc, thepit, thepit, thepit, thepit_state, empty_init, ROT90, "Centuri Inc", "The Pit (Centuri Inc)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, thehole, thepit, thepit, thepit, thepit_state, empty_init, ROT90, "bootleg", "The Hole (bootleg of The Pit)", MACHINE_SUPPORTS_SAVE ) GAME( 1982, dockman, 0, intrepid, dockman, thepit_state, empty_init, ROT90, "Taito Corporation", "Dock Man (set 1)", MACHINE_SUPPORTS_SAVE ) -- cgit v1.2.3