mirror of
https://github.com/holub/mame
synced 2025-05-25 15:25:33 +03:00
03993: All sets in crshrace.c: Reload of state cause loss of audio [Phil Bennett]
This commit is contained in:
parent
dd09a3a9dd
commit
13b03f7bb2
@ -155,13 +155,21 @@ static READ16_HANDLER( extrarom2_r )
|
|||||||
return rom[offset] | (rom[offset + 1] << 8);
|
return rom[offset] | (rom[offset + 1] << 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WRITE8_HANDLER( crshrace_sh_bankswitch_w )
|
static void set_sound_bank(running_machine *machine)
|
||||||
{
|
{
|
||||||
UINT8 *rom = memory_region(space->machine, "audiocpu") + 0x10000;
|
crshrace_state *state = machine->driver_data<crshrace_state>();
|
||||||
|
UINT8 *rom = memory_region(machine, "audiocpu") + 0x10000;
|
||||||
|
|
||||||
memory_set_bankptr(space->machine, "bank1",rom + (data & 0x03) * 0x8000);
|
memory_set_bankptr(machine, "bank1", rom + state->sound_bank * 0x8000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static WRITE8_HANDLER( crshrace_sh_bankswitch_w )
|
||||||
|
{
|
||||||
|
crshrace_state *state = space->machine->driver_data<crshrace_state>();
|
||||||
|
|
||||||
|
state->sound_bank = data & 0x03;
|
||||||
|
set_sound_bank(space->machine);
|
||||||
|
}
|
||||||
|
|
||||||
static WRITE16_HANDLER( sound_command_w )
|
static WRITE16_HANDLER( sound_command_w )
|
||||||
{
|
{
|
||||||
@ -445,6 +453,11 @@ static const k053936_interface crshrace_k053936_intf =
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static STATE_POSTLOAD( crshrace_postload )
|
||||||
|
{
|
||||||
|
set_sound_bank(machine);
|
||||||
|
}
|
||||||
|
|
||||||
static MACHINE_START( crshrace )
|
static MACHINE_START( crshrace )
|
||||||
{
|
{
|
||||||
crshrace_state *state = machine->driver_data<crshrace_state>();
|
crshrace_state *state = machine->driver_data<crshrace_state>();
|
||||||
@ -456,6 +469,8 @@ static MACHINE_START( crshrace )
|
|||||||
state_save_register_global(machine, state->gfxctrl);
|
state_save_register_global(machine, state->gfxctrl);
|
||||||
state_save_register_global(machine, state->flipscreen);
|
state_save_register_global(machine, state->flipscreen);
|
||||||
state_save_register_global(machine, state->pending_command);
|
state_save_register_global(machine, state->pending_command);
|
||||||
|
state_save_register_global(machine, state->sound_bank);
|
||||||
|
state_save_register_postload(machine, crshrace_postload, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static MACHINE_RESET( crshrace )
|
static MACHINE_RESET( crshrace )
|
||||||
|
@ -20,6 +20,7 @@ public:
|
|||||||
|
|
||||||
/* misc */
|
/* misc */
|
||||||
int pending_command;
|
int pending_command;
|
||||||
|
int sound_bank;
|
||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
running_device *audiocpu;
|
running_device *audiocpu;
|
||||||
|
Loading…
Reference in New Issue
Block a user