summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
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
commit8823bb9ba0162243528bc1b9f8f1fcb8af7d0365 (patch)
treeda302674fc460b2b64a33a1f4151965bc9ab47ca /src
parentc53a11a57da5e427f80ce0b176b04165d975d22b (diff)
Re-order SCSP init to fix crash.
Diffstat (limited to 'src')
-rw-r--r--src/emu/sound/scsp.c34
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);