irem m92: fix background glitching in level2 of r-type leo
This commit is contained in:
parent
7aaa386eb2
commit
df92d0f520
|
@ -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 0x9c: pf_control[3][4] = data; set_pf_info(2, data); return;
|
||||||
case 0x9d: pf_control[3][5] = data; return;
|
case 0x9d: pf_control[3][5] = data; return;
|
||||||
case 0x9e: pf_control[3][6] = data;
|
case 0x9e: pf_control[3][6] = data;
|
||||||
m92_raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128;
|
|
||||||
return;
|
return;
|
||||||
case 0x9f: pf_control[3][7] = data;
|
case 0x9f: pf_control[3][7] = data;
|
||||||
m92_raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128;
|
m92_raster_irq_position = ((pf_control[3][7]<<8) | pf_control[3][6]) - 128;
|
||||||
|
@ -1784,6 +1783,7 @@ static INT32 DrvExit()
|
||||||
|
|
||||||
nPrevScreenPos = 0;
|
nPrevScreenPos = 0;
|
||||||
m92_kludge = 0;
|
m92_kludge = 0;
|
||||||
|
m92_raster_irq_position = 0;
|
||||||
nScreenOffsets[0] = nScreenOffsets[1] = 0;
|
nScreenOffsets[0] = nScreenOffsets[1] = 0;
|
||||||
|
|
||||||
return 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);
|
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, VEZ_IRQSTATUS_ACK);
|
||||||
nCyclesDone[0] += VezRun(10);
|
nCyclesDone[0] += VezRun(10);
|
||||||
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, VEZ_IRQSTATUS_NONE);
|
VezSetIRQLineAndVector(0, (m92_irq_vectorbase + 0)/4, VEZ_IRQSTATUS_NONE);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2067,7 +2066,7 @@ static INT32 DrvFrame()
|
||||||
|
|
||||||
compile_inputs();
|
compile_inputs();
|
||||||
|
|
||||||
INT32 multiplier=3;
|
INT32 multiplier=8;
|
||||||
nInterleave = 256*multiplier;
|
nInterleave = 256*multiplier;
|
||||||
|
|
||||||
// overclocking...
|
// overclocking...
|
||||||
|
@ -2076,10 +2075,6 @@ static INT32 DrvFrame()
|
||||||
nCyclesTotal[1] = (INT32)((INT64)(7159090 / 60) * nBurnCPUSpeedAdjust / 0x0100);
|
nCyclesTotal[1] = (INT32)((INT64)(7159090 / 60) * nBurnCPUSpeedAdjust / 0x0100);
|
||||||
nCyclesDone[0] = nCyclesDone[1] = 0;
|
nCyclesDone[0] = nCyclesDone[1] = 0;
|
||||||
|
|
||||||
if (pBurnSoundOut) {
|
|
||||||
memset (pBurnSoundOut, 0, nBurnSoundLen * 2 * sizeof(INT16));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (INT32 i = 0; i < nInterleave; i++)
|
for (INT32 i = 0; i < nInterleave; i++)
|
||||||
{
|
{
|
||||||
VezOpen(0);
|
VezOpen(0);
|
||||||
|
|
|
@ -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);
|
if (device > nNumChips) bprintf(PRINT_ERROR, _T("iremga20_scan called with invalid chip %x\n"), device);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
chip = &chips[device];
|
|
||||||
|
|
||||||
struct BurnArea ba;
|
|
||||||
char szName[16];
|
|
||||||
|
|
||||||
if ((nAction & ACB_DRIVER_DATA) == 0) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pnMin != NULL) {
|
if (pnMin != NULL) {
|
||||||
*pnMin = 0x029678;
|
*pnMin = 0x029678;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chip = &chips[device];
|
||||||
|
|
||||||
for (INT32 i = 0; i < MAX_GA20; i++)
|
if ((nAction & ACB_DRIVER_DATA)) {
|
||||||
{
|
SCAN_VAR(chip->channel);
|
||||||
sprintf(szName, "IREM GA20 #%d Regs", device);
|
SCAN_VAR(chip->regs);
|
||||||
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);
|
|
||||||
|
|
||||||
SCAN_VAR(chip->frequency);
|
SCAN_VAR(chip->frequency);
|
||||||
SCAN_VAR(chip->gain);
|
SCAN_VAR(chip->gain);
|
||||||
SCAN_VAR(chip->output_dir);
|
SCAN_VAR(chip->output_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue