#define Pal (PALRAM)
-#ifdef DEBUG_ASM_6502
-extern int cpu_repeat;
-extern int cpu_lastval;
-#endif
-
static void (*RefreshLine)(uint8 *P, uint32 vofs) = NULL;
static void PRefreshLine(void);
static DECLFR(A2002)
{
uint8 ret;
-#ifdef DEBUG_ASM_6502
- if (cpu_repeat) return cpu_lastval;
-#endif
ret = PPU_status;
vtoggle=0;
PPU_status&=0x7F;
-#ifdef DEBUG_ASM_6502
-// cpu_lastval=ret|(PPUGenLatch&0x1F);
-#endif
return ret|(PPUGenLatch&0x1F);
}
{
uint8 ret;
uint32 tmp=RefreshAddr&0x3FFF;
-#ifdef DEBUG_ASM_6502
- if (cpu_repeat) return cpu_lastval;
-#endif
PPUGenLatch=ret=VRAMBuffer;
if(PPU_hook) PPU_hook(tmp);
if (INC32) RefreshAddr+=32;
else RefreshAddr++;
if(PPU_hook) PPU_hook(RefreshAddr&0x3fff);
-#ifdef DEBUG_ASM_6502
-// cpu_lastval=ret;
-#endif
return ret;
}
else if(VBlankON)
TriggerNMI();
- X6502_Run(256+85-12);
- for(scanline=242+1;scanline<scanlines_per_frame;scanline++)
- X6502_Run(256+85);
+ // Note: this is needed for asm core
+ // Warning: using 'scanline' var here breaks Castlevania III
+ {
+ int lines;
+ X6502_Run(256+85-12);
+ for (lines=scanlines_per_frame-242-1;lines;lines--)
+ X6502_Run(256+85);
+ }
+ // X6502_Run((scanlines_per_frame-242)*(256+85)-12);
PPU_status&=0x1f;