diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index 79d40be1d96..03f055b847e 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -11518,12 +11518,21 @@ DRIVER_INIT_MEMBER(cps_state, ganbare) m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(FUNC(cps_state::ganbare_ram_r),this), write16_delegate(FUNC(cps_state::ganbare_ram_w),this)); } +READ16_MEMBER(cps_state::dinohunt_sound_r) +{ + /*TODO: understand what's really going on here. According to MT05805; + "I think that the values written are only qsound leftovers (after a lot of 0xFF values, + there is the same qsound starting sequence, eg: 0x88, 0xFF, 0x0B, 0x00, 0x00, 0x00, ...)."*/ + return 0xff; +} + DRIVER_INIT_MEMBER(cps_state,dinohunt) { // is this shared with the new sound hw? - UINT8* ram = (UINT8*)m_maincpu->space(AS_PROGRAM).install_ram(0xf18000, 0xf19fff); - memset(ram,0xff,0x2000); - m_maincpu->space(AS_PROGRAM).install_read_handler(0xfc0000, 0xfc0001, read16_delegate(FUNC(cps_state::cps1_in2_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(FUNC(cps_state::dinohunt_sound_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_port(0xfc0000, 0xfc0001, "IN2"); ; + // the ym2151 doesn't seem to be used. Is it actually on the PCB? + DRIVER_INIT_CALL(cps1); } diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h index 1b6201a8718..d8e7bd75f16 100644 --- a/src/mame/includes/cps1.h +++ b/src/mame/includes/cps1.h @@ -242,6 +242,7 @@ public: DECLARE_WRITE8_MEMBER(cps1_oki_pin7_w); DECLARE_WRITE16_MEMBER(sf2m1_layer_w); DECLARE_WRITE16_MEMBER(sf2m3_layer_w); + DECLARE_READ16_MEMBER(dinohunt_sound_r); DECLARE_DRIVER_INIT(sf2rb); DECLARE_DRIVER_INIT(sf2rb2); DECLARE_DRIVER_INIT(sf2thndr);