summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/gng.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/gng.cpp')
-rw-r--r--src/mame/drivers/gng.cpp72
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 )