X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=fce.c;h=3cb063204ed2c34466114dbf2501e6c9e3effe40;hp=bec2511fe8e69dbae2f2a9ce29a774157f3b4097;hb=8fa5eb3371d902b8d58dba6e6bf62726d7ed8dbc;hpb=5a2aa426410ad21d332ff75b58e7f4ed8459d86a diff --git a/fce.c b/fce.c index bec2511..3cb0632 100644 --- a/fce.c +++ b/fce.c @@ -53,11 +53,6 @@ #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); @@ -109,7 +104,7 @@ static int RWWrap=0; static void asmcpu_update(int32 cycles) { // timestamp.. - timestamp += ((cycles >> 4) * 43) >> 7; // aproximating /= 48 + //timestamp += ((cycles >> 4) * 43) >> 7; // aproximating /= 48 // some code from x6502.c fhcnt-=cycles; @@ -142,10 +137,10 @@ void asmcpu_unpack(void) nes_registers[2] = X.Y; pc_base = 0; nes_registers[3] = X.PC; - X6502_rebase_a(); + X6502_Rebase_a(); nes_registers[4] = X.S << 24; nes_registers[4]|= X.IRQlow << 8; - nes_registers[7] = (uint32)X.count; + nes_registers[7] = (uint32)X.count << 16; // NVUB DIZC nes_registers[4]|= X.P & 0x5d; @@ -161,7 +156,7 @@ void asmcpu_pack(void) X.PC= nes_registers[3] - pc_base; X.S = nes_registers[4] >> 24; X.IRQlow = nes_registers[4] >> 8; - X.count = (int32) nes_registers[7]; + X.count = (int32) nes_registers[7] >> 16; // NVUB DIZC X.P = nes_registers[4] & 0x5d; @@ -316,15 +311,9 @@ static DECLFR(ARAMH) 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); } @@ -337,9 +326,6 @@ static DECLFR(A2007) { 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); @@ -355,9 +341,6 @@ static DECLFR(A2007) if (INC32) RefreshAddr+=32; else RefreshAddr++; if(PPU_hook) PPU_hook(RefreshAddr&0x3fff); -#ifdef DEBUG_ASM_6502 - cpu_lastval=ret; -#endif return ret; } @@ -483,16 +466,9 @@ static DECLFW(B4014) { uint32 t=V<<8; int x; -#ifdef DEBUG_ASM_6502 - if (cpu_repeat) { X6502_AddCycles_a(512); return; } - for(x=0;x<256;x++) - B2004(0x2004,X.DB=ARead[t+x](t+x)); - X6502_AddCycles_c(512); -#else for(x=0;x<256;x++) B2004(0x2004,X.DB=ARead[t+x](t+x)); X6502_AddCycles(512); -#endif } void BGRender(uint8 *target) @@ -1214,9 +1190,15 @@ void EmLoop(void) else if(VBlankON) TriggerNMI(); - X6502_Run(256+85-12); - for(scanline=242+1;scanline