diff --git a/src/burn/drv/irem/d_m92.cpp b/src/burn/drv/irem/d_m92.cpp index a9406977d..bcff54fb3 100644 --- a/src/burn/drv/irem/d_m92.cpp +++ b/src/burn/drv/irem/d_m92.cpp @@ -1435,7 +1435,6 @@ void __fastcall m92WritePort(UINT32 port, UINT8 data) case 0x9c: pf_control[3][4] = data; set_pf_info(2, data); return; case 0x9d: pf_control[3][5] = data; return; case 0x9e: pf_control[3][6] = data; - m92_raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128; return; case 0x9f: pf_control[3][7] = data; m92_raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128; @@ -1784,6 +1783,7 @@ static INT32 DrvExit() nPrevScreenPos = 0; m92_kludge = 0; + m92_raster_irq_position = 0; nScreenOffsets[0] = nScreenOffsets[1] = 0; return 0; @@ -2053,7 +2053,6 @@ static void scanline_interrupts(INT32 prev, INT32 segment, INT32 scanline) VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, VEZ_IRQSTATUS_ACK); nCyclesDone[0] += VezRun(10); VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, VEZ_IRQSTATUS_NONE); - } } @@ -2067,7 +2066,7 @@ static INT32 DrvFrame() compile_inputs(); - INT32 multiplier=3; + INT32 multiplier=8; nInterleave = 256*multiplier; // overclocking... @@ -2076,10 +2075,6 @@ static INT32 DrvFrame() nCyclesTotal[1] = (INT32)((INT64)(7159090 / 60) * nBurnCPUSpeedAdjust / 0x0100); nCyclesDone[0] = nCyclesDone[1] = 0; - if (pBurnSoundOut) { - memset (pBurnSoundOut, 0, nBurnSoundLen * 2 * sizeof(INT16)); - } - for (INT32 i = 0; i < nInterleave; i++) { VezOpen(0); diff --git a/src/burn/snd/iremga20.cpp b/src/burn/snd/iremga20.cpp index 97e34ce86..fcc57150d 100644 --- a/src/burn/snd/iremga20.cpp +++ b/src/burn/snd/iremga20.cpp @@ -303,40 +303,19 @@ INT32 iremga20_scan(INT32 device, INT32 nAction, INT32 *pnMin) if (device > nNumChips) bprintf(PRINT_ERROR, _T("iremga20_scan called with invalid chip %x\n"), device); #endif - chip = &chips[device]; - - struct BurnArea ba; - char szName[16]; - - if ((nAction & ACB_DRIVER_DATA) == 0) { - return 1; - } - if (pnMin != NULL) { *pnMin = 0x029678; } + chip = &chips[device]; - for (INT32 i = 0; i < MAX_GA20; i++) - { - sprintf(szName, "IREM GA20 #%d Regs", device); - ba.Data = &chip->regs; - ba.nLen = 0x40 * sizeof(UINT16); - ba.nAddress = 0; - ba.szName = szName; - BurnAcb(&ba); - - sprintf(szName, "IREM GA20 #%d channels", device); - ba.Data = &chip->channel; - ba.nLen = 4 * sizeof(IremGA20_channel_def); - ba.nAddress = 0; - ba.szName = szName; - BurnAcb(&ba); - + if ((nAction & ACB_DRIVER_DATA)) { + SCAN_VAR(chip->channel); + SCAN_VAR(chip->regs); SCAN_VAR(chip->frequency); SCAN_VAR(chip->gain); SCAN_VAR(chip->output_dir); } - + return 0; }