#include "video.h"
#include "input.h"
-#ifdef GP2X
-#include "drivers/gp2x/asmutils.h"
+#ifdef __arm__
+#include "drivers/arm/asmutils.h"
#endif
#define Pal (PALRAM)
}
}
-#ifdef ASM_6502
-static void asmcpu_update(int32 cycles)
-{
- // some code from x6502.c
- fhcnt-=cycles;
- if(fhcnt<=0)
- {
- FrameSoundUpdate();
- fhcnt+=fhinc;
- }
-
- if(PCMIRQCount>0)
- {
- PCMIRQCount-=cycles;
- if(PCMIRQCount<=0)
- {
- vdis=1;
- if((PSG[0x10]&0x80) && !(PSG[0x10]&0x40))
- {
- extern uint8 SIRQStat;
- SIRQStat|=0x80;
- X6502_IRQBegin(FCEU_IQDPCM);
- }
- }
- }
-}
-#endif
-
extern int ppudead;
extern int kook;
Plinef=target;
Pline=target;
firsttile=0;
- linestartts=timestamp*48+X.count;
+ linestartts=timestamp*48+X6502_GetCycleCount();
tofix=0;
FCEUPPU_LineUpdate098();
tofix=1;
if(!ScreenON && !SpriteON)
{
uint32 tem;
+ int tiles;
tem=Pal[0]|(Pal[0]<<8)|(Pal[0]<<16)|(Pal[0]<<24);
tem|=0x40404040;
- FCEU_dwmemset(Pline,tem,numtiles*8);
+ tiles=numtiles;
+ if(firsttile+tiles > 256/8) tiles=256/8-firsttile;
+ if(tiles > 0)
+ FCEU_dwmemset(Pline,tem,tiles*8);
P+=numtiles*8;
Pline=P;
void MMC5_hb(int); /* Ugh ugh ugh. */
static void DoLine(void)
{
+#ifndef __arm__
int x;
+#endif
uint8 *target=XBuf+scanline*320+32;
if(MMC5Hack && (ScreenON || SpriteON)) MMC5_hb(scanline);
if(SpriteON)
CopySprites098(target);
-#ifdef GP2X
+#ifdef __arm__
if(ScreenON || SpriteON) // Yes, very el-cheapo.
{
if(PPU[1]&0x01)