notaz.gp2x.de
/
fceu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
first debug version of ncpu
[fceu.git]
/
fce.c
diff --git
a/fce.c
b/fce.c
index
42a4d76
..
3e4dde5
100644
(file)
--- a/
fce.c
+++ b/
fce.c
@@
-208,7
+208,9
@@
static uint32 scanlines_per_frame;
uint8 GameMemBlock[131072] __attribute__ ((aligned (4)));
uint8 NTARAM[0x800] __attribute__ ((aligned (4)));
uint8 PALRAM[0x20] __attribute__ ((aligned (4)));
uint8 GameMemBlock[131072] __attribute__ ((aligned (4)));
uint8 NTARAM[0x800] __attribute__ ((aligned (4)));
uint8 PALRAM[0x20] __attribute__ ((aligned (4)));
+#ifndef ASM_6502
uint8 RAM[0x800] __attribute__ ((aligned (4)));
uint8 RAM[0x800] __attribute__ ((aligned (4)));
+#endif
uint8 PPU[4];
uint8 PPUSPL;
uint8 PPU[4];
uint8 PPUSPL;
@@
-441,7
+443,7
@@
static void Loop6502(void)
{
uint32 tem;
int x;
{
uint32 tem;
int x;
- uint8 *target=XBuf+
(scanline<<8)+(scanline<<4)+8
;
+ uint8 *target=XBuf+
scanline*320+32
;
if(ScreenON || SpriteON)
{
if(ScreenON || SpriteON)
{
@@
-481,18
+483,19
@@
static void Loop6502(void)
if(PPU[1]&0x01)
{
for(x=63;x>=0;x--)
if(PPU[1]&0x01)
{
for(x=63;x>=0;x--)
-
*(uint32 *)&target[x<<2]=(*(uint32*)&target[x<<2])
&0xF0F0F0F0;
+
((uint32 *)target)[x]=((uint32*)target)[x]
&0xF0F0F0F0;
}
if((PPU[1]>>5)==0x7)
for(x=63;x>=0;x--)
}
if((PPU[1]>>5)==0x7)
for(x=63;x>=0;x--)
-
*(uint32 *)&target[x<<2]=((*(uint32*)&target[x<<2])
&0x3f3f3f3f)|0x40404040;
+
((uint32 *)target)[x]=(((uint32*)target)[x]
&0x3f3f3f3f)|0x40404040;
else if(PPU[1]&0xE0)
for(x=63;x>=0;x--)
else if(PPU[1]&0xE0)
for(x=63;x>=0;x--)
-
*(uint32 *)&target[x<<2]=(*(uint32*)&target[x<<2])
|0xC0C0C0C0;
+
((uint32 *)target)[x]=((uint32*)target)[x]
|0xC0C0C0C0;
else
for(x=63;x>=0;x--)
else
for(x=63;x>=0;x--)
- *(uint32 *)&target[x<<2]=(*(uint32*)&target[x<<2])&0x3f3f3f3f;
-
+ ((uint32 *)target)[x]=((uint32*)target)[x]&0x3f3f3f3f;
+ FCEU_dwmemset(target- 8,0x3f3f3f3f,8);
+ FCEU_dwmemset(target+256,0x3f3f3f3f,8);
#ifdef FRAMESKIP
}
#endif
#ifdef FRAMESKIP
}
#endif
@@
-784,7
+787,8
@@
static void SetRefreshLine(void)
}
}
}
}
-static INLINE void Fixit2(void)
+//static INLINE
+void Fixit2(void)
{
if(ScreenON || SpriteON)
{
{
if(ScreenON || SpriteON)
{
@@
-796,7
+800,8
@@
static INLINE void Fixit2(void)
}
}
}
}
-static INLINE void Fixit1(void)
+//static INLINE
+void Fixit1(void)
{
if(ScreenON || SpriteON)
{
{
if(ScreenON || SpriteON)
{
@@
-824,7
+829,10
@@
static INLINE void Fixit1(void)
}
}
}
}
+//#define NEW_TRY
+
/* This is called at the beginning of all h-blanks on visible lines. */
/* This is called at the beginning of all h-blanks on visible lines. */
+#ifndef NEW_TRY
static void DoHBlank(void)
{
if(ScreenON || SpriteON)
static void DoHBlank(void)
{
if(ScreenON || SpriteON)
@@
-846,7
+854,7
@@
static void DoHBlank(void)
//PPU_hook(0,-1);
//fprintf(stderr,"%3d: $%04x\n",scanline,RefreshAddr);
}
//PPU_hook(0,-1);
//fprintf(stderr,"%3d: $%04x\n",scanline,RefreshAddr);
}
-
+#endif
// ============================//
// ============================//
@@
-1029,6
+1037,7
@@
int FCEUI_Initialize(void)
static INLINE void Thingo(void)
{
Loop6502();
static INLINE void Thingo(void)
{
Loop6502();
+#ifndef NEW_TRY
if(tosprite>=256)
{
if(tosprite>=256)
{
@@
-1057,6
+1066,9
@@
static INLINE void Thingo(void)
tosprite=256;
}
DoHBlank();
tosprite=256;
}
DoHBlank();
+#else
+ X6502_Run_scanline();
+#endif
}
#undef harko
}
#undef harko
@@
-1064,6
+1076,9
@@
void EmLoop(void)
{
for(;;)
{
{
for(;;)
{
+ //extern int asdc;
+ //printf("asdc: %i\n", asdc);
+ //asdc=0;
ApplyPeriodicCheats();
X6502_Run(256+85);
ApplyPeriodicCheats();
X6502_Run(256+85);
@@
-1102,7
+1117,9
@@
void EmLoop(void)
if(PPU_hook) PPU_hook(RefreshAddr&0x3fff);
}
if(FCEUGameInfo.type==GIT_NSF)
if(PPU_hook) PPU_hook(RefreshAddr&0x3fff);
}
if(FCEUGameInfo.type==GIT_NSF)
+ {
X6502_Run((256+85)*240);
X6502_Run((256+85)*240);
+ }
else
{
int x,max,maxref;
else
{
int x,max,maxref;