diff options
Diffstat (limited to 'src/mame/drivers/dcon.cpp')
-rw-r--r-- | src/mame/drivers/dcon.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/mame/drivers/dcon.cpp b/src/mame/drivers/dcon.cpp index 85b0f9c7f62..bd14b6c1145 100644 --- a/src/mame/drivers/dcon.cpp +++ b/src/mame/drivers/dcon.cpp @@ -22,7 +22,6 @@ #include "sound/3812intf.h" #include "sound/ym2151.h" #include "sound/okim6295.h" -#include "audio/seibu.h" #include "video/seibu_crtc.h" #include "screen.h" #include "speaker.h" @@ -30,6 +29,15 @@ /***************************************************************************/ +READ8_MEMBER(dcon_state::sdgndmps_sound_comms_r) +{ + // Routine at 134C sends no sound commands if lowest bit is 0 + if (offset == 5) // ($a000a) + return 1; + + return m_seibu_sound->main_r(space, offset); +} + static ADDRESS_MAP_START( dcon_map, AS_PROGRAM, 16, dcon_state ) AM_RANGE(0x00000, 0x7ffff) AM_ROM AM_RANGE(0x80000, 0x8bfff) AM_RAM @@ -51,6 +59,11 @@ static ADDRESS_MAP_START( dcon_map, AS_PROGRAM, 16, dcon_state ) AM_RANGE(0xe0004, 0xe0005) AM_READ_PORT("SYSTEM") ADDRESS_MAP_END +static ADDRESS_MAP_START( sdgndmps_map, AS_PROGRAM, 16, dcon_state ) + AM_RANGE(0xa0000, 0xa000d) AM_READ8(sdgndmps_sound_comms_r, 0x00ff) + AM_IMPORT_FROM(dcon_map) +ADDRESS_MAP_END + /******************************************************************************/ static INPUT_PORTS_START( common ) @@ -308,7 +321,7 @@ static MACHINE_CONFIG_START( sdgndmps ) /* PCB number is PB91008 */ /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) - MCFG_CPU_PROGRAM_MAP(dcon_map) + MCFG_CPU_PROGRAM_MAP(sdgndmps_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", dcon_state, irq4_line_hold) MCFG_CPU_ADD("audiocpu", Z80, XTAL_14_31818MHz/4) @@ -423,17 +436,6 @@ ROM_START( sdgndmps ) ROM_END /***************************************************************************/ -DRIVER_INIT_MEMBER(dcon_state,sdgndmps) -{ - uint16_t *RAM = (uint16_t *)memregion("maincpu")->base(); - RAM[0x1356/2] = 0x4e71; /* beq -> nop */ - RAM[0x1358/2] = 0x4e71; - - RAM[0x4de/2] = 0x4245; /* ROM checksum */ - RAM[0x4e0/2] = 0x4e71; - RAM[0x4e2/2] = 0x4e71; -} - -GAME( 1991, sdgndmps, 0, sdgndmps, sdgndmps, dcon_state, sdgndmps, ROT0, "Banpresto / Bandai", "SD Gundam Psycho Salamander no Kyoui", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, dcon, 0, dcon, dcon, dcon_state, 0, ROT0, "Success", "D-Con", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sdgndmps, 0, sdgndmps, sdgndmps, dcon_state, 0, ROT0, "Banpresto / Bandai", "SD Gundam Psycho Salamander no Kyoui", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dcon, 0, dcon, dcon, dcon_state, 0, ROT0, "Success", "D-Con", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) |