Quote:
was it working with your old method?
yeah, it was working at a 90%, i use the code you gave me in a post that is:
Code:
void ClockIRQCounter(void)
{
if (g_MMC3.cIRQ == 0)
g_MMC3.cIRQ = g_MMC3.cReloadValue; //reload IRQ counter with reload value
else
{
g_MMC3.cIRQ--; // decrement IRQ counter
if ((g_MMC3.cIRQ == 0) && (g_MMC3.IRQFlag))//IRQ counter just became 0 and if MMC3 IRQs are enabled, raise 'IRQ pending' flag
//g_lpCpuContext->IRQ_pending = TRUE;
a6502IRQSignal();
}
}
strange that its not working ah?
The thing i have a question when IRQ counter just become "0", what is better to directly execute the IRQ or to set a flag and then when cpu emu back to the main execute engine check the IRQ flag and raise it?
Well i hope this can help you to help me.
Thanks!