tempofix for Crude Buster

This commit is contained in:
dinkc64 2015-01-27 19:52:19 +00:00
parent b22903ae99
commit f589c11907
1 changed files with 20 additions and 3 deletions

View File

@ -136,7 +136,24 @@ void __fastcall cbuster_main_write_word(UINT32 address, UINT16 data)
case 0xbc002:
deco16_soundlatch = data & 0xff;
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
//h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
// tempo fluctuation hack
static UINT8 last_latch = 0;
static INT32 latch_repeat = 0;
if (deco16_soundlatch == 0x1b && last_latch == 0x1b) {
latch_repeat++;
} else latch_repeat = 0;
last_latch = deco16_soundlatch;
if (latch_repeat) {
if (latch_repeat%8 == 0) {
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
}
} else {
h6280SetIRQLine(0, H6280_IRQSTATUS_ACK);
}
// end tempo fluctuation hack
return;
}
}
@ -429,7 +446,7 @@ static INT32 DrvInit()
SekSetReadByteHandler(0, cbuster_main_read_byte);
SekClose();
deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, NULL, 0.45, 1006875, 0.75, 2013750, 0.60);
deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000 / 3, 1, NULL, 0.45, 1006875, 0.75, 2013750, 0.60);
BurnYM2203SetAllRoutes(0, 0.60, BURN_SND_ROUTE_BOTH);
GenericTilesInit();
@ -602,7 +619,7 @@ static INT32 DrvFrame()
INT32 nInterleave = 232;
INT32 nSoundBufferPos = 0;
INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 58 };
INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 3 / 58 };
INT32 nCyclesDone[2] = { 0, 0 };
h6280NewFrame();