summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mitchell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mitchell.cpp')
-rw-r--r--src/mame/drivers/mitchell.cpp269
1 files changed, 139 insertions, 130 deletions
diff --git a/src/mame/drivers/mitchell.cpp b/src/mame/drivers/mitchell.cpp
index 5bddb9f9bdb..044ebd58744 100644
--- a/src/mame/drivers/mitchell.cpp
+++ b/src/mame/drivers/mitchell.cpp
@@ -1161,29 +1161,30 @@ TIMER_DEVICE_CALLBACK_MEMBER(mitchell_state::mitchell_irq)
}
}
-void mitchell_state::mgakuen(machine_config &config)
-{
+MACHINE_CONFIG_START(mitchell_state::mgakuen)
+
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(16'000'000)/2); /* probably same clock as the other mitchell hardware games */
- m_maincpu->set_addrmap(AS_PROGRAM, &mitchell_state::mgakuen_map);
- m_maincpu->set_addrmap(AS_IO, &mitchell_state::mitchell_io_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(mitchell_state::mitchell_irq), "screen", 0, 1);
+ MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000)/2) /* probably same clock as the other mitchell hardware games */
+ MCFG_DEVICE_PROGRAM_MAP(mgakuen_map)
+ MCFG_DEVICE_IO_MAP(mitchell_io_map)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
- EEPROM_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- screen.set_size(64*8, 32*8);
- screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(mitchell_state::screen_update_pang));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_mgakuen);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(64*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
+ MCFG_SCREEN_PALETTE(m_palette)
+
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mgakuen)
+
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024); // less colors than the others
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1191,37 +1192,39 @@ void mitchell_state::mgakuen(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); /* probably same clock as the other mitchell hardware games */
- m_oki->add_route(ALL_OUTPUTS, "mono", 0.50);
+ MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH) /* probably same clock as the other mitchell hardware games */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(16'000'000)/4)); /* probably same clock as the other mitchell hardware games */
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
+ MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(16'000'000)/4) /* probably same clock as the other mitchell hardware games */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+
+MACHINE_CONFIG_START(mitchell_state::pang)
-void mitchell_state::pang(machine_config &config)
-{
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &mitchell_state::mitchell_map);
- m_maincpu->set_addrmap(AS_IO, &mitchell_state::mitchell_io_map);
- m_maincpu->set_addrmap(AS_OPCODES, &mitchell_state::decrypted_opcodes_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(mitchell_state::mitchell_irq), "screen", 0, 1);
+ MCFG_DEVICE_ADD("maincpu",Z80, XTAL(16'000'000)/2) /* verified on pcb */
+ MCFG_DEVICE_PROGRAM_MAP(mitchell_map)
+ MCFG_DEVICE_IO_MAP(mitchell_io_map)
+ MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
- EEPROM_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(57.42); /* verified on pcb */
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- screen.set_size(64*8, 32*8);
- screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(mitchell_state::screen_update_pang));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_mitchell);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(57.42) /* verified on pcb */
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(64*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
+ MCFG_SCREEN_PALETTE(m_palette)
+
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mitchell)
+
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 2048);
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1229,12 +1232,12 @@ void mitchell_state::pang(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); /* verified on pcb */
- m_oki->add_route(ALL_OUTPUTS, "mono", 0.30);
+ MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH) /* verified on pcb */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
- ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(16'000'000)/4)); /* verified on pcb */
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
+ MCFG_DEVICE_ADD("ymsnd",YM2413, XTAL(16'000'000)/4) /* verified on pcb */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
void mitchell_state::pangnv(machine_config &config)
{
@@ -1272,71 +1275,74 @@ WRITE_LINE_MEMBER(mitchell_state::spangbl_adpcm_int)
m_audiocpu->set_input_line(INPUT_LINE_NMI, m_sample_select);
}
-void mitchell_state::spangbl(machine_config &config)
-{
+
+MACHINE_CONFIG_START(mitchell_state::spangbl)
pangnv(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &mitchell_state::spangbl_map);
- m_maincpu->set_addrmap(AS_IO, &mitchell_state::spangbl_io_map);
- m_maincpu->set_addrmap(AS_OPCODES, &mitchell_state::decrypted_opcodes_map);
- m_maincpu->set_vblank_int("screen", FUNC(mitchell_state::irq0_line_hold));
+ MCFG_DEVICE_MODIFY("maincpu")
+ MCFG_DEVICE_PROGRAM_MAP(spangbl_map)
+ MCFG_DEVICE_IO_MAP(spangbl_io_map)
+ MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mitchell_state, irq0_line_hold)
- config.device_remove("scantimer");
+ MCFG_DEVICE_REMOVE("scantimer")
- Z80(config, m_audiocpu, 4000000); // Z80A CPU; clock unknown
- m_audiocpu->set_addrmap(AS_PROGRAM, &mitchell_state::spangbl_sound_map);
+ MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) // Z80A CPU; clock unknown
+ MCFG_DEVICE_PROGRAM_MAP(spangbl_sound_map)
- m_gfxdecode->set_info(gfx_spangbl);
+ MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_spangbl)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0);
- config.device_remove("oki");
- MSM5205(config, m_msm, 400000); // clock and prescaler unknown
- m_msm->vck_legacy_callback().set(FUNC(mitchell_state::spangbl_adpcm_int)); // controls music as well as ADCPM rate
- m_msm->set_prescaler_selector(msm5205_device::S96_4B);
- m_msm->add_route(ALL_OUTPUTS, "mono", 0.50);
+ MCFG_DEVICE_REMOVE("oki")
+ MCFG_DEVICE_ADD("msm", MSM5205, 400000) // clock and prescaler unknown
+ MCFG_MSM5205_VCLK_CB(WRITELINE(*this, mitchell_state, spangbl_adpcm_int)) // controls music as well as ADCPM rate
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
LS157(config, m_adpcm_select, 0);
m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w));
-}
+MACHINE_CONFIG_END
-void mitchell_state::pangba(machine_config &config)
-{
+MACHINE_CONFIG_START(mitchell_state::pangba)
spangbl(config);
- m_audiocpu->set_addrmap(AS_PROGRAM, &mitchell_state::pangba_sound_map);
+ MCFG_DEVICE_MODIFY("audiocpu")
+ MCFG_DEVICE_PROGRAM_MAP(pangba_sound_map)
- YM3812(config.replace(), "ymsnd", 4000000).add_route(ALL_OUTPUTS, "mono", 1.0);
-}
+ MCFG_DEVICE_REPLACE("ymsnd", YM3812, 4000000)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(mitchell_state::mstworld)
-void mitchell_state::mstworld(machine_config &config)
-{
/* basic machine hardware */
/* it doesn't glitch with the clock speed set to 4x normal, however this is incorrect..
the interrupt handling (and probably various irq flags / vbl flags handling etc.) is
more likely wrong.. the game appears to run too fast anyway .. */
- Z80(config, m_maincpu, 6000000*4);
- m_maincpu->set_addrmap(AS_PROGRAM, &mitchell_state::mitchell_map);
- m_maincpu->set_addrmap(AS_IO, &mitchell_state::mstworld_io_map);
- m_maincpu->set_addrmap(AS_OPCODES, &mitchell_state::decrypted_opcodes_map);
- m_maincpu->set_vblank_int("screen", FUNC(mitchell_state::irq0_line_hold));
+ MCFG_DEVICE_ADD("maincpu", Z80, 6000000*4)
+ MCFG_DEVICE_PROGRAM_MAP(mitchell_map)
+ MCFG_DEVICE_IO_MAP(mstworld_io_map)
+ MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mitchell_state, irq0_line_hold)
- Z80(config, m_audiocpu, 6000000); /* 6 MHz? */
- m_audiocpu->set_addrmap(AS_PROGRAM, &mitchell_state::mstworld_sound_map);
+ MCFG_DEVICE_ADD("audiocpu", Z80,6000000) /* 6 MHz? */
+ MCFG_DEVICE_PROGRAM_MAP(mstworld_sound_map)
MCFG_MACHINE_START_OVERRIDE(mitchell_state,mitchell)
MCFG_MACHINE_RESET_OVERRIDE(mitchell_state,mitchell)
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- screen.set_size(64*8, 32*8);
- screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(mitchell_state::screen_update_pang));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_mstworld);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(64*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
+ MCFG_SCREEN_PALETTE(m_palette)
+
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mstworld)
+
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 2048);
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1346,31 +1352,33 @@ void mitchell_state::mstworld(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
- OKIM6295(config, m_oki, 990000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified
- m_oki->add_route(ALL_OUTPUTS, "mono", 0.50);
-}
+ MCFG_DEVICE_ADD("oki", OKIM6295, 990000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+MACHINE_CONFIG_END
+
+
+MACHINE_CONFIG_START(mitchell_state::marukin)
-void mitchell_state::marukin(machine_config &config)
-{
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &mitchell_state::mitchell_map);
- m_maincpu->set_addrmap(AS_IO, &mitchell_state::mitchell_io_map);
- m_maincpu->set_addrmap(AS_OPCODES, &mitchell_state::decrypted_opcodes_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(mitchell_state::mitchell_irq), "screen", 0, 1);
+ MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000)/2) /* verified on pcb */
+ MCFG_DEVICE_PROGRAM_MAP(mitchell_map)
+ MCFG_DEVICE_IO_MAP(mitchell_io_map)
+ MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
- EEPROM_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- screen.set_size(64*8, 32*8);
- screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(mitchell_state::screen_update_pang));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_marukin);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(64*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
+ MCFG_SCREEN_PALETTE(m_palette)
+
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_marukin)
+
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 2048);
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1378,12 +1386,12 @@ void mitchell_state::marukin(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); /* verified on pcb */
- m_oki->add_route(ALL_OUTPUTS, "mono", 0.30);
+ MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH) /* verified on pcb */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
- ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(16'000'000)/4)); /* verified on pcb */
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
+ MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(16'000'000)/4) /* verified on pcb */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
/*
@@ -1403,27 +1411,28 @@ Vsync is 59.09hz
*/
-void mitchell_state::pkladiesbl(machine_config &config)
-{
+MACHINE_CONFIG_START(mitchell_state::pkladiesbl)
+
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(12'000'000)/2); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &mitchell_state::mitchell_map);
- m_maincpu->set_addrmap(AS_IO, &mitchell_state::mitchell_io_map);
- m_maincpu->set_addrmap(AS_OPCODES, &mitchell_state::decrypted_opcodes_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(mitchell_state::mitchell_irq), "screen", 0, 1);
+ MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* verified on pcb */
+ MCFG_DEVICE_PROGRAM_MAP(mitchell_map)
+ MCFG_DEVICE_IO_MAP(mitchell_io_map)
+ MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mitchell_state, mitchell_irq, "screen", 0, 1)
- EEPROM_93C46_16BIT(config, m_eeprom);
+ EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(59.09); /* verified on pcb */
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
- screen.set_size(64*8, 32*8);
- screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(mitchell_state::screen_update_pang));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_pkladiesbl);
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(59.09) /* verified on pcb */
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(64*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
+ MCFG_SCREEN_PALETTE(m_palette)
+
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pkladiesbl)
+
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 2048);
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
@@ -1431,12 +1440,12 @@ void mitchell_state::pkladiesbl(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- OKIM6295(config, m_oki, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH); /* It should be a OKIM5205 with a 384khz resonator */
- m_oki->add_route(ALL_OUTPUTS, "mono", 0.50);
+ MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH) /* It should be a OKIM5205 with a 384khz resonator */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- ym2413_device &ymsnd(YM2413(config, "ymsnd", 3750000)); /* verified on pcb, read the comments */
- ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-}
+ MCFG_DEVICE_ADD("ymsnd", YM2413, 3750000) /* verified on pcb, read the comments */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
/*************************************
*
@@ -1799,7 +1808,7 @@ ROM_END
// Similar to "pangbold" but with data on a battery backed 256Kbit RAM (undumped), on a small sub-board with the Z84 and a PLD (also undumped, was protected).
ROM_START( pangbp )
ROM_REGION( 2*0x50000, "maincpu", 0 )
- ROM_LOAD( "pangbp_nvr.bin", 0x00000, 0x08000, NO_DUMP ) // Opcodes + data (?) on battery backed RAM (the battery was dead, so it's undumped)
+ ROM_LOAD( "pangbp_nvr.bin", 0x00000, 0x08000, NO_DUMP ) // Opcodes + data (?) on battery backed RAM (the battery was dead, so it's undumped)
ROM_LOAD( "pangbp_4.6l", 0x50000, 0x08000, CRC(01bc7ecf) SHA1(7f3e3cf5f5d03d1c2d1ad624627feb941aea7414) ) // Opcodes + data on ROM (almost the same as the first half of "4.6l" on "pangbold")
ROM_LOAD( "pangbp_2.3l", 0x60000, 0x20000, CRC(3f15bb61) SHA1(4f74ee25f32a201482840158b4d4c7aca1cda684) ) // Decrypted opcodes
ROM_LOAD( "pangbp_3.5l", 0x10000, 0x20000, CRC(ce6375e4) SHA1(fdd40d82553fcd4d2762ecfd898d0e3112dfde79) ) // Decrypted data