diff options
Diffstat (limited to 'src/mame/drivers/dec8.cpp')
-rw-r--r-- | src/mame/drivers/dec8.cpp | 194 |
1 files changed, 63 insertions, 131 deletions
diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp index 021b461713b..cc18e86d175 100644 --- a/src/mame/drivers/dec8.cpp +++ b/src/mame/drivers/dec8.cpp @@ -348,7 +348,7 @@ WRITE8_MEMBER(dec8_state::csilver_i8751_w) WRITE8_MEMBER(dec8_state::dec8_bank_w) { - membank("bank1")->set_entry(data & 0x0f); + m_mainbank->set_entry(data & 0x0f); } /* Used by Ghostbusters, Meikyuu Hunter G & Gondomania */ @@ -361,7 +361,7 @@ WRITE8_MEMBER(dec8_state::ghostb_bank_w) Bits 4-7: Bank switch */ - membank("bank1")->set_entry(data >> 4); + m_mainbank->set_entry(data >> 4); if ((data&1)==0) m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); m_nmi_enable = (data & 2) >> 1; @@ -377,7 +377,7 @@ WRITE8_MEMBER(dec8_state::csilver_control_w) Bit 0x40 - Unused. Bit 0x80 - Hold subcpu reset line high if clear, else low? (Not needed anyway) */ - membank("bank1")->set_entry(data & 0x0f); + m_mainbank->set_entry(data & 0x0f); } WRITE8_MEMBER(dec8_state::dec8_sound_w) @@ -410,7 +410,7 @@ WRITE8_MEMBER(dec8_state::csilver_adpcm_data_w) WRITE8_MEMBER(dec8_state::csilver_sound_bank_w) { - membank("bank3")->set_entry((data & 0x08) >> 3); + m_soundbank->set_entry((data & 0x08) >> 3); } /******************************************************************************/ @@ -463,7 +463,6 @@ WRITE8_MEMBER(dec8_state::flip_screen_w){ flip_screen_set(data); } /******************************************************************************/ - ADDRESS_MAP_START(dec8_state::lastmisn_map) AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") AM_RANGE(0x1000, 0x13ff) AM_RAM_DEVWRITE("palette", deco_rmc3_device, write8) AM_SHARE("palette") @@ -486,7 +485,7 @@ ADDRESS_MAP_START(dec8_state::lastmisn_map) AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2") AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_SHARE("bg_data") - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -530,7 +529,7 @@ ADDRESS_MAP_START(dec8_state::shackled_map) AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2") AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_SHARE("bg_data") - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -578,7 +577,7 @@ ADDRESS_MAP_START(dec8_state::gondo_map) AM_RANGE(0x3838, 0x3838) AM_READ(i8751_h_r) AM_RANGE(0x3839, 0x3839) AM_READ(i8751_l_r) AM_RANGE(0x383a, 0x383b) AM_WRITE(dec8_i8751_w) - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -600,7 +599,7 @@ ADDRESS_MAP_START(dec8_state::garyoret_map) AM_RANGE(0x3838, 0x3839) AM_WRITE(dec8_i8751_w) AM_RANGE(0x383a, 0x383a) AM_READ(i8751_h_r) AM_RANGE(0x383b, 0x383b) AM_READ(i8751_l_r) - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -624,7 +623,7 @@ ADDRESS_MAP_START(dec8_state::meikyuh_map) AM_RANGE(0x3840, 0x3840) AM_WRITE(ghostb_bank_w) AM_RANGE(0x3860, 0x3860) AM_READ(i8751_l_r) AM_RANGE(0x3860, 0x3861) AM_WRITE(dec8_i8751_w) - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -649,7 +648,7 @@ ADDRESS_MAP_START(dec8_state::csilver_map) AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2") AM_RANGE(0x3800, 0x3fff) AM_READWRITE(dec8_bg_data_r, dec8_bg_data_w) AM_SHARE("bg_data") - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -689,7 +688,7 @@ ADDRESS_MAP_START(dec8_state::oscar_map) AM_RANGE(0x3d80, 0x3d80) AM_WRITE(dec8_sound_w) /* SOUN */ AM_RANGE(0x3e00, 0x3e00) AM_WRITENOP /* COINCL */ AM_RANGE(0x3e80, 0x3e83) AM_WRITE(oscar_int_w) - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -720,7 +719,7 @@ ADDRESS_MAP_START(dec8_state::srdarwin_map) AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN0") /* Player 1 */ AM_RANGE(0x3802, 0x3802) AM_READ_PORT("IN1") /* Player 2 (cocktail) + VBL */ AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW1") /* Dip 2 */ - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -745,7 +744,7 @@ ADDRESS_MAP_START(dec8_state::cobra_map) AM_RANGE(0x3c00, 0x3c00) AM_WRITE(dec8_bank_w) AM_RANGE(0x3c02, 0x3c02) AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */ AM_RANGE(0x3e00, 0x3e00) AM_WRITE(dec8_sound_w) - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("mainbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -787,7 +786,7 @@ ADDRESS_MAP_START(dec8_state::csilver_s_map) AM_RANGE(0x2000, 0x2000) AM_WRITE(csilver_sound_bank_w) AM_RANGE(0x3000, 0x3000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_RANGE(0x3400, 0x3400) AM_READ(csilver_adpcm_reset_r) /* ? not sure */ - AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank3") + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("soundbank") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -1993,7 +1992,7 @@ MACHINE_CONFIG_START(dec8_state::lastmisn) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - + MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_SOUND_ADD("ym1", YM2203, 1500000) @@ -2064,7 +2063,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(dec8_state::gondo) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", HD6309,3000000*4) /* HD63C09EP */ + MCFG_CPU_ADD("maincpu", HD6309E,3000000) /* HD63C09EP */ MCFG_CPU_PROGRAM_MAP(gondo_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, gondo_interrupt) @@ -2101,7 +2100,7 @@ MACHINE_CONFIG_START(dec8_state::gondo) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - + MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_SOUND_ADD("ym1", YM2203, 1500000) @@ -2118,7 +2117,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(dec8_state::garyoret) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", HD6309,3000000*4) /* HD63C09EP */ + MCFG_CPU_ADD("maincpu", HD6309E,3000000) /* HD63C09EP */ MCFG_CPU_PROGRAM_MAP(garyoret_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, gondo_interrupt) @@ -2172,7 +2171,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(dec8_state::ghostb) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", HD6309, 3000000*4) + MCFG_CPU_ADD("maincpu", HD6309E, 3000000) /* HD63C09EP */ MCFG_CPU_PROGRAM_MAP(meikyuh_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, gondo_interrupt) @@ -2293,11 +2292,11 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(dec8_state::oscar) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", HD6309, XTAL(12'000'000)/2) /* verified on pcb */ + MCFG_CPU_ADD("maincpu", HD6309, XTAL(12'000'000)/2) /* PCB seen both HD6309 or MC6809, clock verified on pcb */ MCFG_CPU_PROGRAM_MAP(oscar_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, oscar_interrupt) - MCFG_CPU_ADD("sub", HD6309, XTAL(12'000'000)/2) /* verified on pcb */ + MCFG_CPU_ADD("sub", HD6309, XTAL(12'000'000)/2) /* PCB seen both HD6309 or MC6809, clock verified on pcb */ MCFG_CPU_PROGRAM_MAP(oscar_sub_map) MCFG_CPU_ADD("audiocpu", DECO_222, XTAL(12'000'000)/8) @@ -2334,6 +2333,8 @@ MACHINE_CONFIG_START(dec8_state::oscar) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_SOUND_ADD("ym1", YM2203, XTAL(12'000'000)/8) /* verified on pcb */ MCFG_SOUND_ROUTE(0, "mono", 0.23) @@ -2341,8 +2342,6 @@ MACHINE_CONFIG_START(dec8_state::oscar) MCFG_SOUND_ROUTE(2, "mono", 0.23) MCFG_SOUND_ROUTE(3, "mono", 0.20) - MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_SOUND_ADD("ym2", YM3526, XTAL(12'000'000)/4) /* verified on pcb */ MCFG_YM3526_IRQ_HANDLER(INPUTLINE("audiocpu", M6502_IRQ_LINE)) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70) @@ -2401,7 +2400,7 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(dec8_state::cobracom) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", MC6809E, 2000000) + MCFG_CPU_ADD("maincpu", MC6809E, 2000000) /* MC68B09EP */ MCFG_CPU_PROGRAM_MAP(cobra_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dec8_state, nmi_line_pulse) @@ -2409,7 +2408,6 @@ MACHINE_CONFIG_START(dec8_state::cobracom) MCFG_CPU_PROGRAM_MAP(dec8_s_map) /* NMIs are caused by the main CPU */ - /* video hardware */ MCFG_BUFFERED_SPRITERAM8_ADD("spriteram") @@ -3215,9 +3213,8 @@ ROM_START( csilver ) ROM_REGION( 0x10000, "sub", 0 ) /* CPU 2, 1st 16k is empty */ ROM_LOAD( "dx04-1.19d", 0x0000, 0x10000, CRC(29432691) SHA1(a76ecd27d217c66a0e43f93e29efe83c657925c3) ) - ROM_REGION( 0x18000, "audiocpu", 0 ) - ROM_LOAD( "dx05.3f", 0x10000, 0x08000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) ) - ROM_CONTINUE( 0x08000, 0x08000 ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "dx05.3f", 0x00000, 0x10000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) ) ROM_REGION( 0x1000, "mcu", 0 ) /* ID8751H MCU */ // 017F: B4 4C 0D : cjne a,#$4C,$018F (ID code 0x4c = World version) @@ -3254,9 +3251,8 @@ ROM_START( csilverj ) ROM_REGION( 0x10000, "sub", 0 ) /* CPU 2, 1st 16k is empty */ ROM_LOAD( "dx04-1.a5", 0x0000, 0x10000, CRC(29432691) SHA1(a76ecd27d217c66a0e43f93e29efe83c657925c3) ) - ROM_REGION( 0x18000, "audiocpu", 0 ) - ROM_LOAD( "dx05.a6", 0x10000, 0x08000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) ) - ROM_CONTINUE( 0x08000, 0x08000 ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "dx05.a6", 0x00000, 0x10000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) ) ROM_REGION( 0x1000, "mcu", 0 ) /* ID8751H MCU */ ROM_LOAD( "id8751h.mcu", 0x0000, 0x1000, NO_DUMP ) @@ -3293,9 +3289,8 @@ ROM_START( csilverja ) // DE-0250-3 + DE-0251-2 ROM_REGION( 0x10000, "sub", 0 ) /* CPU 2, 1st 16k is empty */ ROM_LOAD( "dx04-1.19d", 0x0000, 0x10000, CRC(29432691) SHA1(a76ecd27d217c66a0e43f93e29efe83c657925c3) ) - ROM_REGION( 0x18000, "audiocpu", 0 ) - ROM_LOAD( "dx05.3f", 0x10000, 0x08000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) ) - ROM_CONTINUE( 0x08000, 0x08000 ) + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "dx05.3f", 0x00000, 0x10000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) ) ROM_REGION( 0x1000, "mcu", 0 ) /* ID8751H MCU */ ROM_LOAD( "id8751h.mcu", 0x0000, 0x1000, NO_DUMP ) @@ -3622,114 +3617,51 @@ ROM_END DRIVER_INIT_MEMBER(dec8_state,dec8) { + if (m_mainbank.found()) + { + uint8_t *ROM = memregion("maincpu")->base(); + uint32_t max_bank = (memregion("maincpu")->bytes() - 0x10000) / 0x4000; + m_mainbank->configure_entries(0, max_bank, &ROM[0x10000], 0x4000); + } m_latch = 0; } -/* Below, I set up the correct number of banks depending on the "maincpu" region size */ -DRIVER_INIT_MEMBER(dec8_state,lastmisn) -{ - uint8_t *ROM = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,shackled) -{ - uint8_t *ROM = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,gondo) -{ - uint8_t *ROM = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,garyoret) -{ - uint8_t *ROM = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,ghostb) -{ - uint8_t *ROM = memregion("maincpu")->base(); - - membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,meikyuh) -{ - uint8_t *ROM = memregion("maincpu")->base(); - - membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - DRIVER_INIT_MEMBER(dec8_state,csilver) { - uint8_t *ROM = memregion("maincpu")->base(); uint8_t *RAM = memregion("audiocpu")->base(); - - membank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); - membank("bank3")->configure_entries(0, 2, &RAM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,oscar) -{ - uint8_t *ROM = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,srdarwin) -{ - uint8_t *ROM = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); - DRIVER_INIT_CALL(dec8); -} - -DRIVER_INIT_MEMBER(dec8_state,cobracom) -{ - uint8_t *ROM = memregion("maincpu")->base(); - membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); + m_soundbank->configure_entries(0, 2, &RAM[0], 0x4000); DRIVER_INIT_CALL(dec8); } /******************************************************************************/ -GAME( 1986, lastmisn, 0, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 6)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lastmisno, lastmisn, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, lastmisnj, lastmisn, lastmisn, lastmisnj, dec8_state, lastmisn, ROT270, "Data East Corporation", "Last Mission (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, shackled, 0, shackled, shackled, dec8_state, shackled, ROT0, "Data East USA", "Shackled (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, breywood, shackled, shackled, breywood, dec8_state, shackled, ROT0, "Data East Corporation", "Breywood (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, gondo, 0, gondo, gondo, dec8_state, gondo, ROT270, "Data East USA", "Gondomania (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, makyosen, gondo, gondo, gondo, dec8_state, gondo, ROT270, "Data East Corporation", "Makyou Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, garyoret, 0, garyoret, garyoret, dec8_state, garyoret, ROT0, "Data East Corporation", "Garyo Retsuden (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb, 0, ghostb, ghostb, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players, revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb2a, ghostb, ghostb, ghostb2a, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb3, ghostb, ghostb, ghostb3, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, ghostb3a, ghostb, ghostb, ghostb3, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision ?)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // ROMs confirmed working on PCB, confirmed problem with the fake MCU ROM -GAME( 1987, meikyuh, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, meikyuha, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilver, 0, csilver, csilver, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilverj, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 3)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, csilverja, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscar, 0, oscar, oscar, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (World revision 0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, oscaru, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East USA", "Psycho-Nics Oscar (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (World)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, srdarwinj, srdarwin, srdarwin, srdarwinj, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisn, 0, lastmisn, lastmisn, dec8_state, dec8, ROT270, "Data East USA", "Last Mission (US revision 6)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisno, lastmisn, lastmisn, lastmisn, dec8_state, dec8, ROT270, "Data East USA", "Last Mission (US revision 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, lastmisnj, lastmisn, lastmisn, lastmisnj, dec8_state, dec8, ROT270, "Data East Corporation", "Last Mission (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, shackled, 0, shackled, shackled, dec8_state, dec8, ROT0, "Data East USA", "Shackled (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, breywood, shackled, shackled, breywood, dec8_state, dec8, ROT0, "Data East Corporation", "Breywood (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, gondo, 0, gondo, gondo, dec8_state, dec8, ROT270, "Data East USA", "Gondomania (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, makyosen, gondo, gondo, gondo, dec8_state, dec8, ROT270, "Data East Corporation", "Makyou Senshi (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, garyoret, 0, garyoret, garyoret, dec8_state, dec8, ROT0, "Data East Corporation", "Garyo Retsuden (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb, 0, ghostb, ghostb, dec8_state, dec8, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players, revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb2a, ghostb, ghostb, ghostb2a, dec8_state, dec8, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb3, ghostb, ghostb, ghostb3, dec8_state, dec8, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, ghostb3a, ghostb, ghostb, ghostb3, dec8_state, dec8, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players, revision ?)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // ROMs confirmed working on PCB, confirmed problem with the fake MCU ROM +GAME( 1987, meikyuh, ghostb, meikyuh, meikyuh, dec8_state, dec8, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, meikyuha, ghostb, meikyuh, meikyuh, dec8_state, dec8, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilver, 0, csilver, csilver, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilverj, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 3)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, csilverja, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan, revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscar, 0, oscar, oscar, dec8_state, dec8, ROT0, "Data East Corporation", "Psycho-Nics Oscar (World revision 0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, oscaru, oscar, oscar, oscarj, dec8_state, dec8, ROT0, "Data East USA", "Psycho-Nics Oscar (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, dec8, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, dec8, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, dec8, ROT270, "Data East Corporation", "Super Real Darwin (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, srdarwinj, srdarwin, srdarwin, srdarwinj, dec8_state, dec8, ROT270, "Data East Corporation", "Super Real Darwin (Japan)", MACHINE_SUPPORTS_SAVE ) // Unlike most Deco games of this period Cobra Command does not seem to have a Data East USA release. Instead the Data East Corporation release // was used in the US as evidenced by boards with the EL romset bearing AAMA seal stickers (American Amusement Machine Association) -GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracoma, cobracom, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, cobracomj, cobracom, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, dec8, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 5)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracoma, cobracom, cobracom, cobracom, dec8_state, dec8, ROT0, "Data East Corporation", "Cobra-Command (World/US revision 4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, cobracomj, cobracom, cobracom, cobracom, dec8_state, dec8, ROT0, "Data East Corporation", "Cobra-Command (Japan)", MACHINE_SUPPORTS_SAVE ) |