diff options
Diffstat (limited to 'src/mame/drivers/gng.cpp')
-rw-r--r-- | src/mame/drivers/gng.cpp | 72 |
1 files changed, 49 insertions, 23 deletions
diff --git a/src/mame/drivers/gng.cpp b/src/mame/drivers/gng.cpp index a899095f732..7e8857f68eb 100644 --- a/src/mame/drivers/gng.cpp +++ b/src/mame/drivers/gng.cpp @@ -60,6 +60,11 @@ WRITE_LINE_MEMBER(gng_state::ym_reset_w) } } +READ8_MEMBER(gng_state::diamond_hack_r) +{ + return 0; +} + static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8, gng_state ) AM_RANGE(0x0000, 0x1dff) AM_RAM AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_SHARE("spriteram") @@ -82,6 +87,32 @@ static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8, gng_state ) AM_RANGE(0x6000, 0xffff) AM_ROM ADDRESS_MAP_END +static ADDRESS_MAP_START( diamond_map, AS_PROGRAM, 8, gng_state ) + AM_RANGE(0x0000, 0x1dff) AM_RAM + AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_SHARE("spriteram") + AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(gng_fgvideoram_w) AM_SHARE("fgvideoram") + AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(gng_bgvideoram_w) AM_SHARE("bgvideoram") + AM_RANGE(0x3000, 0x3000) AM_READ_PORT("SYSTEM") + AM_RANGE(0x3001, 0x3001) AM_READ_PORT("P1") + AM_RANGE(0x3002, 0x3002) AM_READ_PORT("P2") + AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DSW1") + AM_RANGE(0x3004, 0x3004) AM_READ_PORT("DSW2") + AM_RANGE(0x3000, 0x33ff) AM_NOP // faulty POST? + AM_RANGE(0x3800, 0x38ff) AM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext") + AM_RANGE(0x3900, 0x39ff) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x3a00, 0x3a00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) + AM_RANGE(0x3b08, 0x3b09) AM_WRITE(gng_bgscrollx_w) + AM_RANGE(0x3b0a, 0x3b0b) AM_WRITE(gng_bgscrolly_w) + AM_RANGE(0x3c00, 0x3c00) AM_NOP /* watchdog? */ + AM_RANGE(0x3d00, 0x3d00) AM_WRITENOP // ? (writes $01 and $0F) + AM_RANGE(0x3d01, 0x3d01) AM_WRITENOP // ? + AM_RANGE(0x3e00, 0x3e00) AM_WRITE(gng_bankswitch_w) + AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1") + AM_RANGE(0x6000, 0x6000) AM_READ(diamond_hack_r) + AM_RANGE(0x6048, 0x6048) AM_WRITENOP // ? + AM_RANGE(0x6000, 0xffff) AM_ROM +ADDRESS_MAP_END + static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gng_state ) @@ -407,6 +438,13 @@ static MACHINE_CONFIG_START( gng ) MCFG_SOUND_ROUTE(3, "mono", 0.20) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( diamond, gng ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(diamond_map) + + MCFG_DEVICE_REMOVE("mainlatch") +MACHINE_CONFIG_END + /*************************************************************************** @@ -790,26 +828,14 @@ ROM_END -READ8_MEMBER(gng_state::diamond_hack_r) -{ - return 0; -} - -DRIVER_INIT_MEMBER(gng_state,diamond) -{ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6000, read8_delegate(FUNC(gng_state::diamond_hack_r),this)); -} - - - -GAME( 1985, gng, 0, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gnga, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngbl, gng, gng, gng, gng_state, 0, ROT0, "bootleg", "Ghosts'n Goblins (bootleg with Cross)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngprot, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngblita, gng, gng, gng, gng_state, 0, ROT0, "bootleg", "Ghosts'n Goblins (Italian bootleg, harder)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, gngc, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 3)", MACHINE_SUPPORTS_SAVE ) // rev c? -GAME( 1985, gngt, gng, gng, gng, gng_state, 0, ROT0, "Capcom (Taito America license)", "Ghosts'n Goblins (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, makaimur, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, makaimurc, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision C)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, makaimurg, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision G)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, diamond, 0, gng, diamond, gng_state, diamond, ROT0, "KH Video", "Diamond Run", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gng, 0, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gnga, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngbl, gng, gng, gng, gng_state, 0, ROT0, "bootleg", "Ghosts'n Goblins (bootleg with Cross)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngprot, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngblita, gng, gng, gng, gng_state, 0, ROT0, "bootleg", "Ghosts'n Goblins (Italian bootleg, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, gngc, gng, gng, gng, gng_state, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 3)", MACHINE_SUPPORTS_SAVE ) // rev c? +GAME( 1985, gngt, gng, gng, gng, gng_state, 0, ROT0, "Capcom (Taito America license)", "Ghosts'n Goblins (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, makaimur, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, makaimurc, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, makaimurg, gng, gng, makaimur, gng_state, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision G)", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, diamond, 0, diamond, diamond, gng_state, 0, ROT0, "KH Video", "Diamond Run", MACHINE_SUPPORTS_SAVE ) |