From 031ca39e0dac30c2b1278a61344f05b8d0c49e1b Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Wed, 25 Jul 2012 19:16:07 +0000 Subject: [PATCH] Added sound ROM bankswitch in Combat School bootleg. [Angelo Salese] --- src/mame/drivers/combatsc.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c index 399bcc97f4b..0e3126cf17d 100644 --- a/src/mame/drivers/combatsc.c +++ b/src/mame/drivers/combatsc.c @@ -429,9 +429,11 @@ ADDRESS_MAP_END WRITE8_MEMBER(combatsc_state::combatscb_dac_w) { device_t *device = machine().device("msm5205"); - if(data & 0xe0) + if(data & 0x60) printf("%02x\n",data); + membank("bl_abank")->set_entry((data & 0x80) >> 7); + //msm5205_reset_w(device, (data >> 4) & 1); msm5205_data_w(device, (data & 0x0f)); msm5205_vclk_w(device, 1); @@ -445,6 +447,7 @@ static ADDRESS_MAP_START( combatscb_sound_map, AS_PROGRAM, 8, combatsc_state ) AM_RANGE(0x9008, 0x9009) AM_DEVREAD_LEGACY("ymsnd", ym2203_r) /* ??? */ AM_RANGE(0x9800, 0x9800) AM_WRITE(combatscb_dac_w) AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r? */ + AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bl_abank") ADDRESS_MAP_END /************************************* @@ -718,6 +721,12 @@ static MACHINE_START( combatsc ) state->save_item(NAME(state->m_sign)); } +static MACHINE_START( combatscb ) +{ + combatsc_state *state = machine.driver_data(); + MACHINE_START_CALL( combatsc ); + state->membank("bl_abank")->configure_entries(0, 2, state->memregion("audiocpu")->base() + 0x8000, 0x4000); +} static MACHINE_RESET( combatsc ) { @@ -805,11 +814,11 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state ) MCFG_CPU_ADD("audiocpu", Z80,3579545) /* 3.579545 MHz */ MCFG_CPU_PROGRAM_MAP(combatscb_sound_map) - MCFG_CPU_PERIODIC_INT(irq0_line_hold,4800) // controls BGM tempo + MCFG_CPU_PERIODIC_INT(irq0_line_hold,3800) // controls BGM tempo MCFG_QUANTUM_TIME(attotime::from_hz(1200)) - MCFG_MACHINE_START(combatsc) + MCFG_MACHINE_START(combatscb) MCFG_MACHINE_RESET(combatsc) /* video hardware */