diff options
author | R. Belmont <rb6502@users.noreply.github.com> | 2008-12-13 04:20:19 +0000 |
---|---|---|
committer | R. Belmont <rb6502@users.noreply.github.com> | 2008-12-13 04:20:19 +0000 |
commit | 8823bb9ba0162243528bc1b9f8f1fcb8af7d0365 (patch) | |
tree | da302674fc460b2b64a33a1f4151965bc9ab47ca /src | |
parent | c53a11a57da5e427f80ce0b176b04165d975d22b (diff) |
Re-order SCSP init to fix crash.
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/sound/scsp.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/src/emu/sound/scsp.c b/src/emu/sound/scsp.c index 39fb10900f1..364c983c0a0 100644 --- a/src/emu/sound/scsp.c +++ b/src/emu/sound/scsp.c @@ -513,32 +513,30 @@ static void SCSP_Init(const device_config *device, struct _SCSP *SCSP, const scs { int i; + memset(SCSP,0,sizeof(*SCSP)); + SCSP->device = device; SCSP->IrqTimA = SCSP->IrqTimBC = SCSP->IrqMidi = 0; SCSP->MidiR=SCSP->MidiW=0; SCSP->MidiOutR=SCSP->MidiOutW=0; // get SCSP RAM + if (sndindex == 0) { - memset(SCSP,0,sizeof(*SCSP)); - - if (sndindex == 0) - { - SCSP->Master=1; - } - else - { - SCSP->Master=0; - } + SCSP->Master=1; + } + else + { + SCSP->Master=0; + } - SCSP->SCSPRAM = device->region; - if (SCSP->SCSPRAM) - { - SCSP->SCSPRAM_LENGTH = device->regionbytes; - SCSP->DSP.SCSPRAM = (UINT16 *)SCSP->SCSPRAM; - SCSP->DSP.SCSPRAM_LENGTH = SCSP->SCSPRAM_LENGTH/2; - SCSP->SCSPRAM += intf->roffset; - } + SCSP->SCSPRAM = device->region; + if (SCSP->SCSPRAM) + { + SCSP->SCSPRAM_LENGTH = device->regionbytes; + SCSP->DSP.SCSPRAM = (UINT16 *)SCSP->SCSPRAM; + SCSP->DSP.SCSPRAM_LENGTH = SCSP->SCSPRAM_LENGTH/2; + SCSP->SCSPRAM += intf->roffset; } SCSP->timerA = timer_alloc(device->machine, timerA_cb, SCSP); |