goodbye fastapass and c80x86

This commit is contained in:
zeromus 2008-06-06 03:02:00 +00:00
parent c1b20f3050
commit 43908a249d
61 changed files with 216 additions and 291 deletions

View File

@ -65,7 +65,7 @@ static void M43Reset(void)
{ {
} }
static void FP_FASTAPASS(1) M43IRQHook(int a) static void M43IRQHook(int a)
{ {
IRQCount+=a; IRQCount+=a;
if(IRQa) if(IRQa)

View File

@ -366,7 +366,7 @@ static void ClockCounter(void)
} }
} }
void FP_FASTAPASS(1) CPUWrap(int a) void CPUWrap(int a)
{ {
int x; int x;
if((IRQMode&3)==0) for(x=0;x<a;x++) ClockCounter(); if((IRQMode&3)==0) for(x=0;x<a;x++) ClockCounter();
@ -379,7 +379,7 @@ static void SLWrap(void)
} }
static uint32 lastread; static uint32 lastread;
static void FP_FASTAPASS(1) M90PPU(uint32 A) static void M90PPU(uint32 A)
{ {
if((IRQMode&3)==2) if((IRQMode&3)==2)
{ {

View File

@ -79,7 +79,7 @@ static DECLFW(Mapper95_write)
} }
} }
static void FP_FASTAPASS(1) dragonbust_ppu(uint32 A) static void dragonbust_ppu(uint32 A)
{ {
static int last=-1; static int last=-1;
static uint8 z; static uint8 z;

View File

@ -213,7 +213,7 @@ static uint32 NWCIRQCount;
static uint8 NWCRec; static uint8 NWCRec;
#define NWCDIP 0xE #define NWCDIP 0xE
static void FP_FASTAPASS(1) NWCIRQHook(int a) static void NWCIRQHook(int a)
{ {
if(!(NWCRec&0x10)) if(!(NWCRec&0x10))
{ {

View File

@ -312,7 +312,7 @@ static void GenMMC3Close(void)
} }
//static uint16 _a12; //static uint16 _a12;
//static void FP_FASTAPASS(1) MMC3_PPU(uint32 A) //static void MMC3_PPU(uint32 A)
//{ //{
// if(A&0x2000)return; // if(A&0x2000)return;
// if((!_a12)&&(A&0x1000)) // if((!_a12)&&(A&0x1000))
@ -915,7 +915,7 @@ void Mapper116_Init(CartInfo *info)
static uint8 PPUCHRBus; static uint8 PPUCHRBus;
static uint8 TKSMIR[8]; static uint8 TKSMIR[8];
static void FP_FASTAPASS(1) TKSPPU(uint32 A) static void TKSPPU(uint32 A)
{ {
A&=0x1FFF; A&=0x1FFF;
A>>=10; A>>=10;
@ -992,7 +992,7 @@ static void M165CWM(uint32 A, uint8 V)
M165PPUFE(); M165PPUFE();
} }
static void FP_FASTAPASS(1) M165PPU(uint32 A) static void M165PPU(uint32 A)
{ {
if((A&0x1FF0)==0x1FD0) if((A&0x1FF0)==0x1FD0)
{ {

View File

@ -200,7 +200,7 @@ static void MMC5CHRB(void)
} }
} }
static void FASTAPASS(2) MMC5WRAM(uint32 A, uint32 V) static void MMC5WRAM(uint32 A, uint32 V)
{ {
//printf("%02x\n",V); //printf("%02x\n",V);
V=MMC5WRAMIndex[V&7]; V=MMC5WRAMIndex[V&7];

View File

@ -70,7 +70,7 @@ static void SyncPRG(void)
setprg8(0xe000,0x3F); setprg8(0xe000,0x3F);
} }
static void FP_FASTAPASS(1) NamcoIRQHook(int a) static void NamcoIRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {
@ -104,7 +104,7 @@ static DECLFR(Namco_Read5800)
return(IRQCount>>8); return(IRQCount>>8);
} }
static void FASTAPASS(2) DoNTARAMROM(int w, uint8 V) static void DoNTARAMROM(int w, uint8 V)
{ {
NTAPage[w]=V; NTAPage[w]=V;
if(V>=0xE0) if(V>=0xE0)
@ -123,7 +123,7 @@ static void FixNTAR(void)
DoNTARAMROM(x,NTAPage[x]); DoNTARAMROM(x,NTAPage[x]);
} }
static void FASTAPASS(2) DoCHRRAMROM(int x, uint8 V) static void DoCHRRAMROM(int x, uint8 V)
{ {
CHR[x]=V; CHR[x]=V;
if(!is210 && !((gorfus>>((x>>2)+6))&1) && (V>=0xE0)) if(!is210 && !((gorfus>>((x>>2)+6))&1) && (V>=0xE0))

View File

@ -36,10 +36,10 @@ static SFORMAT Rambo_StateRegs[]={
{0} {0}
}; };
static void FP_FASTAPASS(2) (*setchr1wrap)(unsigned int A, unsigned int V); static void (*setchr1wrap)(unsigned int A, unsigned int V);
//static int nomirror; //static int nomirror;
static void FP_FASTAPASS(1) RAMBO1_IRQHook(int a) static void RAMBO1_IRQHook(int a)
{ {
static int smallcount; static int smallcount;
if(!IRQmode) return; if(!IRQmode) return;
@ -158,7 +158,7 @@ static void RAMBO1_init(void)
AddExState(Rambo_StateRegs, ~0, 0, 0); AddExState(Rambo_StateRegs, ~0, 0, 0);
} }
static void FP_FASTAPASS(2) CHRWrap(unsigned int A, unsigned int V) static void CHRWrap(unsigned int A, unsigned int V)
{ {
setchr1(A,V); setchr1(A,V);
} }
@ -173,7 +173,7 @@ void Mapper64_init(void)
static int MirCache[8]; static int MirCache[8];
static unsigned int PPUCHRBus; static unsigned int PPUCHRBus;
static void FP_FASTAPASS(2) MirWrap(unsigned int A, unsigned int V) static void MirWrap(unsigned int A, unsigned int V)
{ {
MirCache[A>>10]=(V>>7)&1; MirCache[A>>10]=(V>>7)&1;
if(PPUCHRBus==(A>>10)) if(PPUCHRBus==(A>>10))
@ -181,7 +181,7 @@ static void FP_FASTAPASS(2) MirWrap(unsigned int A, unsigned int V)
setchr1(A,V); setchr1(A,V);
} }
static void FP_FASTAPASS(1) MirrorFear(uint32 A) static void MirrorFear(uint32 A)
{ {
A&=0x1FFF; A&=0x1FFF;
A>>=10; A>>=10;

View File

@ -156,29 +156,29 @@ DECLFR(CartBROB)
return Page[A>>11][A]; return Page[A>>11][A];
} }
void FASTAPASS(3) setprg2r(int r, unsigned int A, unsigned int V) void setprg2r(int r, unsigned int A, unsigned int V)
{ {
V&=PRGmask2[r]; V&=PRGmask2[r];
setpageptr(2,A,PRGptr[r]?(&PRGptr[r][V<<11]):0,PRGram[r]); setpageptr(2,A,PRGptr[r]?(&PRGptr[r][V<<11]):0,PRGram[r]);
} }
void FASTAPASS(2) setprg2(uint32 A, uint32 V) void setprg2(uint32 A, uint32 V)
{ {
setprg2r(0,A,V); setprg2r(0,A,V);
} }
void FASTAPASS(3) setprg4r(int r, unsigned int A, unsigned int V) void setprg4r(int r, unsigned int A, unsigned int V)
{ {
V&=PRGmask4[r]; V&=PRGmask4[r];
setpageptr(4,A,PRGptr[r]?(&PRGptr[r][V<<12]):0,PRGram[r]); setpageptr(4,A,PRGptr[r]?(&PRGptr[r][V<<12]):0,PRGram[r]);
} }
void FASTAPASS(2) setprg4(uint32 A, uint32 V) void setprg4(uint32 A, uint32 V)
{ {
setprg4r(0,A,V); setprg4r(0,A,V);
} }
void FASTAPASS(3) setprg8r(int r, unsigned int A, unsigned int V) void setprg8r(int r, unsigned int A, unsigned int V)
{ {
if(PRGsize[r]>=8192) if(PRGsize[r]>=8192)
{ {
@ -194,12 +194,12 @@ void FASTAPASS(3) setprg8r(int r, unsigned int A, unsigned int V)
} }
} }
void FASTAPASS(2) setprg8(uint32 A, uint32 V) void setprg8(uint32 A, uint32 V)
{ {
setprg8r(0,A,V); setprg8r(0,A,V);
} }
void FASTAPASS(3) setprg16r(int r, unsigned int A, unsigned int V) void setprg16r(int r, unsigned int A, unsigned int V)
{ {
if(PRGsize[r]>=16384) if(PRGsize[r]>=16384)
{ {
@ -216,12 +216,12 @@ void FASTAPASS(3) setprg16r(int r, unsigned int A, unsigned int V)
} }
} }
void FASTAPASS(2) setprg16(uint32 A, uint32 V) void setprg16(uint32 A, uint32 V)
{ {
setprg16r(0,A,V); setprg16r(0,A,V);
} }
void FASTAPASS(3) setprg32r(int r,unsigned int A, unsigned int V) void setprg32r(int r,unsigned int A, unsigned int V)
{ {
if(PRGsize[r]>=32768) if(PRGsize[r]>=32768)
{ {
@ -238,12 +238,12 @@ void FASTAPASS(3) setprg32r(int r,unsigned int A, unsigned int V)
} }
} }
void FASTAPASS(2) setprg32(uint32 A, uint32 V) void setprg32(uint32 A, uint32 V)
{ {
setprg32r(0,A,V); setprg32r(0,A,V);
} }
void FASTAPASS(3) setchr1r(int r, unsigned int A, unsigned int V) void setchr1r(int r, unsigned int A, unsigned int V)
{ {
if(!CHRptr[r]) return; if(!CHRptr[r]) return;
FCEUPPU_LineUpdate(); FCEUPPU_LineUpdate();
@ -255,7 +255,7 @@ void FASTAPASS(3) setchr1r(int r, unsigned int A, unsigned int V)
VPageR[(A)>>10]=&CHRptr[r][(V)<<10]-(A); VPageR[(A)>>10]=&CHRptr[r][(V)<<10]-(A);
} }
void FASTAPASS(3) setchr2r(int r, unsigned int A, unsigned int V) void setchr2r(int r, unsigned int A, unsigned int V)
{ {
if(!CHRptr[r]) return; if(!CHRptr[r]) return;
FCEUPPU_LineUpdate(); FCEUPPU_LineUpdate();
@ -267,7 +267,7 @@ void FASTAPASS(3) setchr2r(int r, unsigned int A, unsigned int V)
PPUCHRRAM&=~(3<<(A>>10)); PPUCHRRAM&=~(3<<(A>>10));
} }
void FASTAPASS(3) setchr4r(int r, unsigned int A, unsigned int V) void setchr4r(int r, unsigned int A, unsigned int V)
{ {
if(!CHRptr[r]) return; if(!CHRptr[r]) return;
FCEUPPU_LineUpdate(); FCEUPPU_LineUpdate();
@ -280,7 +280,7 @@ void FASTAPASS(3) setchr4r(int r, unsigned int A, unsigned int V)
PPUCHRRAM&=~(15<<(A>>10)); PPUCHRRAM&=~(15<<(A>>10));
} }
void FASTAPASS(2) setchr8r(int r, unsigned int V) void setchr8r(int r, unsigned int V)
{ {
int x; int x;
@ -295,27 +295,27 @@ void FASTAPASS(2) setchr8r(int r, unsigned int V)
PPUCHRRAM&=~(255); PPUCHRRAM&=~(255);
} }
void FASTAPASS(2) setchr1(unsigned int A, unsigned int V) void setchr1(unsigned int A, unsigned int V)
{ {
setchr1r(0,A,V); setchr1r(0,A,V);
} }
void FASTAPASS(2) setchr2(unsigned int A, unsigned int V) void setchr2(unsigned int A, unsigned int V)
{ {
setchr2r(0,A,V); setchr2r(0,A,V);
} }
void FASTAPASS(2) setchr4(unsigned int A, unsigned int V) void setchr4(unsigned int A, unsigned int V)
{ {
setchr4r(0,A,V); setchr4r(0,A,V);
} }
void FASTAPASS(1) setchr8(unsigned int V) void setchr8(unsigned int V)
{ {
setchr8r(0,V); setchr8r(0,V);
} }
void FASTAPASS(1) setvram8(uint8 *p) void setvram8(uint8 *p)
{ {
int x; int x;
for(x=7;x>=0;x--) for(x=7;x>=0;x--)
@ -323,7 +323,7 @@ void FASTAPASS(1) setvram8(uint8 *p)
PPUCHRRAM|=255; PPUCHRRAM|=255;
} }
void FASTAPASS(2) setvram4(uint32 A, uint8 *p) void setvram4(uint32 A, uint8 *p)
{ {
int x; int x;
for(x=3;x>=0;x--) for(x=3;x>=0;x--)
@ -331,21 +331,21 @@ void FASTAPASS(2) setvram4(uint32 A, uint8 *p)
PPUCHRRAM|=(15<<(A>>10)); PPUCHRRAM|=(15<<(A>>10));
} }
void FASTAPASS(3) setvramb1(uint8 *p, uint32 A, uint32 b) void setvramb1(uint8 *p, uint32 A, uint32 b)
{ {
FCEUPPU_LineUpdate(); FCEUPPU_LineUpdate();
VPageR[A>>10]=p-A+(b<<10); VPageR[A>>10]=p-A+(b<<10);
PPUCHRRAM|=(1<<(A>>10)); PPUCHRRAM|=(1<<(A>>10));
} }
void FASTAPASS(3) setvramb2(uint8 *p, uint32 A, uint32 b) void setvramb2(uint8 *p, uint32 A, uint32 b)
{ {
FCEUPPU_LineUpdate(); FCEUPPU_LineUpdate();
VPageR[(A>>10)]=VPageR[(A>>10)+1]=p-A+(b<<11); VPageR[(A>>10)]=VPageR[(A>>10)+1]=p-A+(b<<11);
PPUCHRRAM|=(3<<(A>>10)); PPUCHRRAM|=(3<<(A>>10));
} }
void FASTAPASS(3) setvramb4(uint8 *p, uint32 A, uint32 b) void setvramb4(uint8 *p, uint32 A, uint32 b)
{ {
int x; int x;
@ -355,7 +355,7 @@ void FASTAPASS(3) setvramb4(uint8 *p, uint32 A, uint32 b)
PPUCHRRAM|=(15<<(A>>10)); PPUCHRRAM|=(15<<(A>>10));
} }
void FASTAPASS(2) setvramb8(uint8 *p, uint32 b) void setvramb8(uint8 *p, uint32 b)
{ {
int x; int x;
@ -367,7 +367,7 @@ void FASTAPASS(2) setvramb8(uint8 *p, uint32 b)
/* This function can be called without calling SetupCartMirroring(). */ /* This function can be called without calling SetupCartMirroring(). */
void FASTAPASS(3) setntamem(uint8 *p, int ram, uint32 b) void setntamem(uint8 *p, int ram, uint32 b)
{ {
FCEUPPU_LineUpdate(); FCEUPPU_LineUpdate();
vnapage[b]=p; vnapage[b]=p;
@ -386,7 +386,7 @@ void setmirrorw(int a, int b, int c, int d)
vnapage[3]=NTARAM+d*0x400; vnapage[3]=NTARAM+d*0x400;
} }
void FASTAPASS(1) setmirror(int t) void setmirror(int t)
{ {
FCEUPPU_LineUpdate(); FCEUPPU_LineUpdate();
if(!mirrorhard) if(!mirrorhard)

View File

@ -52,39 +52,39 @@ extern uint32 CHRmask2[32];
extern uint32 CHRmask4[32]; extern uint32 CHRmask4[32];
extern uint32 CHRmask8[32]; extern uint32 CHRmask8[32];
void FASTAPASS(2) setprg2(uint32 A, uint32 V); void setprg2(uint32 A, uint32 V);
void FASTAPASS(2) setprg4(uint32 A, uint32 V); void setprg4(uint32 A, uint32 V);
void FASTAPASS(2) setprg8(uint32 A, uint32 V); void setprg8(uint32 A, uint32 V);
void FASTAPASS(2) setprg16(uint32 A, uint32 V); void setprg16(uint32 A, uint32 V);
void FASTAPASS(2) setprg32(uint32 A, uint32 V); void setprg32(uint32 A, uint32 V);
void FASTAPASS(3) setprg2r(int r, unsigned int A, unsigned int V); void setprg2r(int r, unsigned int A, unsigned int V);
void FASTAPASS(3) setprg4r(int r, unsigned int A, unsigned int V); void setprg4r(int r, unsigned int A, unsigned int V);
void FASTAPASS(3) setprg8r(int r, unsigned int A, unsigned int V); void setprg8r(int r, unsigned int A, unsigned int V);
void FASTAPASS(3) setprg16r(int r, unsigned int A, unsigned int V); void setprg16r(int r, unsigned int A, unsigned int V);
void FASTAPASS(3) setprg32r(int r, unsigned int A, unsigned int V); void setprg32r(int r, unsigned int A, unsigned int V);
void FASTAPASS(3) setchr1r(int r, unsigned int A, unsigned int V); void setchr1r(int r, unsigned int A, unsigned int V);
void FASTAPASS(3) setchr2r(int r, unsigned int A, unsigned int V); void setchr2r(int r, unsigned int A, unsigned int V);
void FASTAPASS(3) setchr4r(int r, unsigned int A, unsigned int V); void setchr4r(int r, unsigned int A, unsigned int V);
void FASTAPASS(2) setchr8r(int r, unsigned int V); void setchr8r(int r, unsigned int V);
void FASTAPASS(2) setchr1(unsigned int A, unsigned int V); void setchr1(unsigned int A, unsigned int V);
void FASTAPASS(2) setchr2(unsigned int A, unsigned int V); void setchr2(unsigned int A, unsigned int V);
void FASTAPASS(2) setchr4(unsigned int A, unsigned int V); void setchr4(unsigned int A, unsigned int V);
void FASTAPASS(1) setchr8(unsigned int V); void setchr8(unsigned int V);
void FASTAPASS(2) setvram4(uint32 A, uint8 *p); void setvram4(uint32 A, uint8 *p);
void FASTAPASS(1) setvram8(uint8 *p); void setvram8(uint8 *p);
void FASTAPASS(3) setvramb1(uint8 *p, uint32 A, uint32 b); void setvramb1(uint8 *p, uint32 A, uint32 b);
void FASTAPASS(3) setvramb2(uint8 *p, uint32 A, uint32 b); void setvramb2(uint8 *p, uint32 A, uint32 b);
void FASTAPASS(3) setvramb4(uint8 *p, uint32 A, uint32 b); void setvramb4(uint8 *p, uint32 A, uint32 b);
void FASTAPASS(2) setvramb8(uint8 *p, uint32 b); void setvramb8(uint8 *p, uint32 b);
void FASTAPASS(1) setmirror(int t); void setmirror(int t);
void setmirrorw(int a, int b, int c, int d); void setmirrorw(int a, int b, int c, int d);
void FASTAPASS(3) setntamem(uint8 *p, int ram, uint32 b); void setntamem(uint8 *p, int ram, uint32 b);
#define MI_H 0 #define MI_H 0
#define MI_V 1 #define MI_V 1

View File

@ -127,7 +127,7 @@ void FlushGenieRW(void)
} }
} }
readfunc FASTAPASS(1) GetReadHandler(int32 a) readfunc GetReadHandler(int32 a)
{ {
if(a>=0x8000 && RWWrap) if(a>=0x8000 && RWWrap)
return AReadG[a-0x8000]; return AReadG[a-0x8000];
@ -135,7 +135,7 @@ readfunc FASTAPASS(1) GetReadHandler(int32 a)
return ARead[a]; return ARead[a];
} }
void FASTAPASS(3) SetReadHandler(int32 start, int32 end, readfunc func) void SetReadHandler(int32 start, int32 end, readfunc func)
{ {
int32 x; int32 x;
@ -156,7 +156,7 @@ void FASTAPASS(3) SetReadHandler(int32 start, int32 end, readfunc func)
ARead[x]=func; ARead[x]=func;
} }
writefunc FASTAPASS(1) GetWriteHandler(int32 a) writefunc GetWriteHandler(int32 a)
{ {
if(RWWrap && a>=0x8000) if(RWWrap && a>=0x8000)
return BWriteG[a-0x8000]; return BWriteG[a-0x8000];
@ -164,7 +164,7 @@ writefunc FASTAPASS(1) GetWriteHandler(int32 a)
return BWrite[a]; return BWrite[a];
} }
void FASTAPASS(3) SetWriteHandler(int32 start, int32 end, writefunc func) void SetWriteHandler(int32 start, int32 end, writefunc func)
{ {
int32 x; int32 x;

View File

@ -7,14 +7,14 @@
extern int fceuindbg; extern int fceuindbg;
void ResetGameLoaded(void); void ResetGameLoaded(void);
#define DECLFR(x) uint8 FP_FASTAPASS(1) x (uint32 A) #define DECLFR(x) uint8 x (uint32 A)
#define DECLFW(x) void FP_FASTAPASS(2) x (uint32 A, uint8 V) #define DECLFW(x) void x (uint32 A, uint8 V)
void FCEU_MemoryRand(uint8 *ptr, uint32 size); void FCEU_MemoryRand(uint8 *ptr, uint32 size);
void FASTAPASS(3) SetReadHandler(int32 start, int32 end, readfunc func); void SetReadHandler(int32 start, int32 end, readfunc func);
void FASTAPASS(3) SetWriteHandler(int32 start, int32 end, writefunc func); void SetWriteHandler(int32 start, int32 end, writefunc func);
writefunc FASTAPASS(1) GetWriteHandler(int32 a); writefunc GetWriteHandler(int32 a);
readfunc FASTAPASS(1) GetReadHandler(int32 a); readfunc GetReadHandler(int32 a);
int AllocGenieRW(void); int AllocGenieRW(void);
void FlushGenieRW(void); void FlushGenieRW(void);

View File

@ -57,7 +57,7 @@ static DECLFR(FDSBIOSRead);
static DECLFR(FDSRAMRead); static DECLFR(FDSRAMRead);
static DECLFW(FDSRAMWrite); static DECLFW(FDSRAMWrite);
static void FDSInit(void); static void FDSInit(void);
static void FP_FASTAPASS(1) FDSFix(int a); static void FDSFix(int a);
#define FDSRAM GameMemBlock #define FDSRAM GameMemBlock
#define CHRRAM (GameMemBlock+32768) #define CHRRAM (GameMemBlock+32768)
@ -184,7 +184,7 @@ void FCEU_FDSSelect(void)
FCEU_DispMessage("Disk %d Side %c Selected",SelectDisk>>1,(SelectDisk&1)?'B':'A'); FCEU_DispMessage("Disk %d Side %c Selected",SelectDisk>>1,(SelectDisk&1)?'B':'A');
} }
static void FP_FASTAPASS(1) FDSFix(int a) static void FDSFix(int a)
{ {
if((IRQa&2) && IRQCount) if((IRQa&2) && IRQCount)
{ {

View File

@ -760,7 +760,7 @@ char *iNesShortFName() {
return ret+1; return ret+1;
} }
void FASTAPASS(2) VRAM_BANK1(uint32 A, uint8 V) void VRAM_BANK1(uint32 A, uint8 V)
{ {
V&=7; V&=7;
PPUCHRRAM|=(1<<(A>>10)); PPUCHRRAM|=(1<<(A>>10));
@ -768,7 +768,7 @@ void FASTAPASS(2) VRAM_BANK1(uint32 A, uint8 V)
VPage[(A)>>10]=&CHRRAM[V<<10]-(A); VPage[(A)>>10]=&CHRRAM[V<<10]-(A);
} }
void FASTAPASS(2) VRAM_BANK4(uint32 A, uint32 V) void VRAM_BANK4(uint32 A, uint32 V)
{ {
V&=1; V&=1;
PPUCHRRAM|=(0xF<<(A>>10)); PPUCHRRAM|=(0xF<<(A>>10));
@ -778,20 +778,20 @@ void FASTAPASS(2) VRAM_BANK4(uint32 A, uint32 V)
CHRBankList[((A)>>10)+3]=(V<<2)+3; CHRBankList[((A)>>10)+3]=(V<<2)+3;
VPage[(A)>>10]=&CHRRAM[V<<10]-(A); VPage[(A)>>10]=&CHRRAM[V<<10]-(A);
} }
void FASTAPASS(2) VROM_BANK1(uint32 A,uint32 V) void VROM_BANK1(uint32 A,uint32 V)
{ {
setchr1(A,V); setchr1(A,V);
CHRBankList[(A)>>10]=V; CHRBankList[(A)>>10]=V;
} }
void FASTAPASS(2) VROM_BANK2(uint32 A,uint32 V) void VROM_BANK2(uint32 A,uint32 V)
{ {
setchr2(A,V); setchr2(A,V);
CHRBankList[(A)>>10]=(V<<1); CHRBankList[(A)>>10]=(V<<1);
CHRBankList[((A)>>10)+1]=(V<<1)+1; CHRBankList[((A)>>10)+1]=(V<<1)+1;
} }
void FASTAPASS(2) VROM_BANK4(uint32 A, uint32 V) void VROM_BANK4(uint32 A, uint32 V)
{ {
setchr4(A,V); setchr4(A,V);
CHRBankList[(A)>>10]=(V<<2); CHRBankList[(A)>>10]=(V<<2);
@ -800,7 +800,7 @@ void FASTAPASS(2) VROM_BANK4(uint32 A, uint32 V)
CHRBankList[((A)>>10)+3]=(V<<2)+3; CHRBankList[((A)>>10)+3]=(V<<2)+3;
} }
void FASTAPASS(1) VROM_BANK8(uint32 V) void VROM_BANK8(uint32 V)
{ {
setchr8(V); setchr8(V);
CHRBankList[0]=(V<<3); CHRBankList[0]=(V<<3);
@ -813,14 +813,14 @@ void FASTAPASS(1) VROM_BANK8(uint32 V)
CHRBankList[7]=(V<<3)+7; CHRBankList[7]=(V<<3)+7;
} }
void FASTAPASS(2) ROM_BANK8(uint32 A, uint32 V) void ROM_BANK8(uint32 A, uint32 V)
{ {
setprg8(A,V); setprg8(A,V);
if(A>=0x8000) if(A>=0x8000)
PRGBankList[((A-0x8000)>>13)]=V; PRGBankList[((A-0x8000)>>13)]=V;
} }
void FASTAPASS(2) ROM_BANK16(uint32 A, uint32 V) void ROM_BANK16(uint32 A, uint32 V)
{ {
setprg16(A,V); setprg16(A,V);
if(A>=0x8000) if(A>=0x8000)
@ -830,7 +830,7 @@ void FASTAPASS(2) ROM_BANK16(uint32 A, uint32 V)
} }
} }
void FASTAPASS(1) ROM_BANK32(uint32 V) void ROM_BANK32(uint32 V)
{ {
setprg32(0x8000,V); setprg32(0x8000,V);
PRGBankList[0]=V<<2; PRGBankList[0]=V<<2;
@ -839,7 +839,7 @@ void FASTAPASS(1) ROM_BANK32(uint32 V)
PRGBankList[3]=(V<<2)+3; PRGBankList[3]=(V<<2)+3;
} }
void FASTAPASS(1) onemir(uint8 V) void onemir(uint8 V)
{ {
if(Mirroring==2) return; if(Mirroring==2) return;
if(V>1) if(V>1)
@ -848,14 +848,14 @@ void FASTAPASS(1) onemir(uint8 V)
setmirror(MI_0+V); setmirror(MI_0+V);
} }
void FASTAPASS(1) MIRROR_SET2(uint8 V) void MIRROR_SET2(uint8 V)
{ {
if(Mirroring==2) return; if(Mirroring==2) return;
Mirroring=V; Mirroring=V;
setmirror(V); setmirror(V);
} }
void FASTAPASS(1) MIRROR_SET(uint8 V) void MIRROR_SET(uint8 V)
{ {
if(Mirroring==2) return; if(Mirroring==2) return;
V^=1; V^=1;

View File

@ -82,16 +82,16 @@ struct iNES_HEADER {
uint8 reserve[8]; uint8 reserve[8];
}; };
void FASTAPASS(2) VRAM_BANK1(uint32 A, uint8 V); void VRAM_BANK1(uint32 A, uint8 V);
void FASTAPASS(2) VRAM_BANK4(uint32 A,uint32 V); void VRAM_BANK4(uint32 A,uint32 V);
void FASTAPASS(2) VROM_BANK1(uint32 A,uint32 V); void VROM_BANK1(uint32 A,uint32 V);
void FASTAPASS(2) VROM_BANK2(uint32 A,uint32 V); void VROM_BANK2(uint32 A,uint32 V);
void FASTAPASS(2) VROM_BANK4(uint32 A, uint32 V); void VROM_BANK4(uint32 A, uint32 V);
void FASTAPASS(1) VROM_BANK8(uint32 V); void VROM_BANK8(uint32 V);
void FASTAPASS(2) ROM_BANK8(uint32 A, uint32 V); void ROM_BANK8(uint32 A, uint32 V);
void FASTAPASS(2) ROM_BANK16(uint32 A, uint32 V); void ROM_BANK16(uint32 A, uint32 V);
void FASTAPASS(1) ROM_BANK32(uint32 V); void ROM_BANK32(uint32 V);
extern uint8 vmask; extern uint8 vmask;
extern uint32 vmask1; extern uint32 vmask1;
@ -101,9 +101,9 @@ extern uint32 pmask8;
extern uint8 pmask16; extern uint8 pmask16;
extern uint8 pmask32; extern uint8 pmask32;
void FASTAPASS(1) onemir(uint8 V); void onemir(uint8 V);
void FASTAPASS(1) MIRROR_SET2(uint8 V); void MIRROR_SET2(uint8 V);
void FASTAPASS(1) MIRROR_SET(uint8 V); void MIRROR_SET(uint8 V);
void Mapper0_init(void); void Mapper0_init(void);
void Mapper1_init(void); void Mapper1_init(void);

View File

@ -93,7 +93,7 @@ static INPUTC DummyJPort={0,0,0,0,0};
static INPUTC *JPorts[2]={&DummyJPort,&DummyJPort}; static INPUTC *JPorts[2]={&DummyJPort,&DummyJPort};
static INPUTCFC *FCExp=0; static INPUTCFC *FCExp=0;
static uint8 FP_FASTAPASS(1) ReadGPVS(int w) static uint8 ReadGPVS(int w)
{ {
uint8 ret=0; uint8 ret=0;
@ -108,7 +108,7 @@ static uint8 FP_FASTAPASS(1) ReadGPVS(int w)
return ret; return ret;
} }
static uint8 FP_FASTAPASS(1) ReadGP(int w) static uint8 ReadGP(int w)
{ {
uint8 ret; uint8 ret;
@ -174,7 +174,7 @@ static DECLFW(B4016)
LastStrobe=V&0x1; LastStrobe=V&0x1;
} }
static void FP_FASTAPASS(1) StrobeGP(int w) static void StrobeGP(int w)
{ {
joy_readbit[w]=0; joy_readbit[w]=0;
} }
@ -337,7 +337,7 @@ static void CheckSLHook(void)
InputScanlineHook=SLHLHook; InputScanlineHook=SLHLHook;
} }
static void FASTAPASS(1) SetInputStuff(int x) static void SetInputStuff(int x)
{ {
switch(JPType[x]) switch(JPType[x])
{ {
@ -363,7 +363,7 @@ static void StrobeFami4(void)
F4ReadBit[0]=F4ReadBit[1]=0; F4ReadBit[0]=F4ReadBit[1]=0;
} }
static uint8 FP_FASTAPASS(2) ReadFami4(int w, uint8 ret) static uint8 ReadFami4(int w, uint8 ret)
{ {
ret&=1; ret&=1;

View File

@ -2,21 +2,21 @@
#define _INPUT_H_ #define _INPUT_H_
typedef struct { typedef struct {
uint8 FP_FASTAPASS(1) (*Read)(int w); uint8 (*Read)(int w);
void FP_FASTAPASS(1) (*Write)(uint8 v); void (*Write)(uint8 v);
void FP_FASTAPASS(1) (*Strobe)(int w); void (*Strobe)(int w);
void FP_FASTAPASS(3) (*Update)(int w, void *data, int arg); void (*Update)(int w, void *data, int arg);
void FP_FASTAPASS(3) (*SLHook)(int w, uint8 *bg, uint8 *spr, uint32 linets, int final); void (*SLHook)(int w, uint8 *bg, uint8 *spr, uint32 linets, int final);
void FP_FASTAPASS(3) (*Draw)(int w, uint8 *buf, int arg); void (*Draw)(int w, uint8 *buf, int arg);
} INPUTC; } INPUTC;
typedef struct { typedef struct {
uint8 FP_FASTAPASS(2) (*Read)(int w, uint8 ret); uint8 (*Read)(int w, uint8 ret);
void FP_FASTAPASS(1) (*Write)(uint8 v); void (*Write)(uint8 v);
void (*Strobe)(void); void (*Strobe)(void);
void FP_FASTAPASS(2) (*Update)(void *data, int arg); void (*Update)(void *data, int arg);
void FP_FASTAPASS(3) (*SLHook)(uint8 *bg, uint8 *spr, uint32 linets, int final); void (*SLHook)(uint8 *bg, uint8 *spr, uint32 linets, int final);
void FP_FASTAPASS(2) (*Draw)(uint8 *buf, int arg); void (*Draw)(uint8 *buf, int arg);
} INPUTCFC; } INPUTCFC;
void FCEU_DrawInput(uint8 *buf); void FCEU_DrawInput(uint8 *buf);

View File

@ -36,7 +36,7 @@ static void StrobeARKFC(void)
} }
static uint8 FP_FASTAPASS(2) ReadARKFC(int w,uint8 ret) static uint8 ReadARKFC(int w,uint8 ret)
{ {
ret&=~2; ret&=~2;
@ -64,7 +64,7 @@ static uint32 FixX(uint32 x)
return(x); return(x);
} }
static void FP_FASTAPASS(2) UpdateARKFC(void *data, int arg) static void UpdateARKFC(void *data, int arg)
{ {
uint32 *ptr=(uint32 *)data; uint32 *ptr=(uint32 *)data;
FCArk.mzx=FixX(ptr[0]); FCArk.mzx=FixX(ptr[0]);
@ -80,7 +80,7 @@ INPUTCFC *FCEU_InitArkanoidFC(void)
return(&ARKCFC); return(&ARKCFC);
} }
static uint8 FP_FASTAPASS(1) ReadARK(int w) static uint8 ReadARK(int w)
{ {
uint8 ret=0; uint8 ret=0;
@ -97,12 +97,12 @@ static uint8 FP_FASTAPASS(1) ReadARK(int w)
} }
static void FP_FASTAPASS(1) StrobeARK(int w) static void StrobeARK(int w)
{ {
NESArk[w].readbit=0; NESArk[w].readbit=0;
} }
static void FP_FASTAPASS(3) UpdateARK(int w, void *data, int arg) static void UpdateARK(int w, void *data, int arg)
{ {
uint32 *ptr=(uint32*)data; uint32 *ptr=(uint32*)data;
NESArk[w].mzx=FixX(ptr[0]); NESArk[w].mzx=FixX(ptr[0]);

View File

@ -25,7 +25,7 @@ static int seq,ptr,bit,cnt,have;
static uint8 bdata[20]; static uint8 bdata[20];
static uint8 FP_FASTAPASS(2) Read(int w, uint8 ret) static uint8 Read(int w, uint8 ret)
{ {
if(w && have) if(w && have)
{ {
@ -48,12 +48,12 @@ static uint8 FP_FASTAPASS(2) Read(int w, uint8 ret)
return(ret); return(ret);
} }
static void FP_FASTAPASS(1) Write(uint8 V) static void Write(uint8 V)
{ {
//printf("%02x\n",V); //printf("%02x\n",V);
} }
static void FP_FASTAPASS(2) Update(void *data, int arg) static void Update(void *data, int arg)
{ {
if(*(uint8 *)data) if(*(uint8 *)data)
{ {

View File

@ -51,7 +51,7 @@ static uint16 matrix[9][2][4]=
{AK(DOWN),AK(SPACE),AK(DELETE),AK(INSERT)}}, {AK(DOWN),AK(SPACE),AK(DELETE),AK(INSERT)}},
}; };
static void FP_FASTAPASS(1) FKB_Write(uint8 v) static void FKB_Write(uint8 v)
{ {
v>>=1; v>>=1;
if(v&2) if(v&2)
@ -62,7 +62,7 @@ static void FP_FASTAPASS(1) FKB_Write(uint8 v)
ksmode=v; ksmode=v;
} }
static uint8 FP_FASTAPASS(2) FKB_Read(int w, uint8 ret) static uint8 FKB_Read(int w, uint8 ret)
{ {
//printf("$%04x, %d, %d\n",w+0x4016,ksindex,ksmode&1); //printf("$%04x, %d, %d\n",w+0x4016,ksindex,ksmode&1);
if(w) if(w)
@ -87,7 +87,7 @@ static void FKB_Strobe(void)
//printf("strobe\n"); //printf("strobe\n");
} }
static void FP_FASTAPASS(2) FKB_Update(void *data, int arg) static void FKB_Update(void *data, int arg)
{ {
memcpy(bufit+1,data,0x48); memcpy(bufit+1,data,0x48);
} }

View File

@ -24,7 +24,7 @@
static uint32 FTVal,FTValR; static uint32 FTVal,FTValR;
static char side; static char side;
static uint8 FP_FASTAPASS(2) FT_Read(int w, uint8 ret) static uint8 FT_Read(int w, uint8 ret)
{ {
if(w) if(w)
{ {
@ -33,7 +33,7 @@ static uint8 FP_FASTAPASS(2) FT_Read(int w, uint8 ret)
return(ret); return(ret);
} }
static void FP_FASTAPASS(1) FT_Write(uint8 V) static void FT_Write(uint8 V)
{ {
FTValR=0; FTValR=0;
@ -51,7 +51,7 @@ static void FP_FASTAPASS(1) FT_Write(uint8 V)
FTValR<<=1; FTValR<<=1;
} }
static void FP_FASTAPASS(2) FT_Update(void *data, int arg) static void FT_Update(void *data, int arg)
{ {
FTVal=*(uint32 *)data; FTVal=*(uint32 *)data;
} }

View File

@ -24,7 +24,7 @@
static uint8 HSVal,HSValR; static uint8 HSVal,HSValR;
static uint8 FP_FASTAPASS(2) HS_Read(int w, uint8 ret) static uint8 HS_Read(int w, uint8 ret)
{ {
if(w) ret|=HSValR; if(w) ret|=HSValR;
@ -36,7 +36,7 @@ static void HS_Strobe(void)
HSValR=HSVal<<1; HSValR=HSVal<<1;
} }
static void FP_FASTAPASS(2) HS_Update(void *data, int arg) static void HS_Update(void *data, int arg)
{ {
HSVal=*(uint8*)data; HSVal=*(uint8*)data;
} }

View File

@ -23,7 +23,7 @@
static uint32 MReal,MRet; static uint32 MReal,MRet;
static uint8 FP_FASTAPASS(2) MJ_Read(int w, uint8 ret) static uint8 MJ_Read(int w, uint8 ret)
{ {
if(w) if(w)
{ {
@ -36,7 +36,7 @@ static uint8 FP_FASTAPASS(2) MJ_Read(int w, uint8 ret)
return(ret); return(ret);
} }
static void FP_FASTAPASS(1) MJ_Write(uint8 v) static void MJ_Write(uint8 v)
{ {
/* 1: I-D7, J-D6, K-D5, L-D4, M-D3, Big Red-D2 /* 1: I-D7, J-D6, K-D5, L-D4, M-D3, Big Red-D2
2: A-D7, B-D6, C-D5, D-D4, E-D3, F-D2, G-D1, H-D0 2: A-D7, B-D6, C-D5, D-D4, E-D3, F-D2, G-D1, H-D0
@ -63,7 +63,7 @@ static void FP_FASTAPASS(1) MJ_Write(uint8 v)
// HSValR=HSVal<<1; // HSValR=HSVal<<1;
} }
static void FP_FASTAPASS(2) MJ_Update(void *data, int arg) static void MJ_Update(void *data, int arg)
{ {
MReal=*(uint32*)data; MReal=*(uint32*)data;
//printf("%08x\n",MReal>>13); //printf("%08x\n",MReal>>13);

View File

@ -30,12 +30,12 @@ typedef struct {
static MOUSE Mouse; static MOUSE Mouse;
static void FP_FASTAPASS(1) StrobeMOUSE(int w) static void StrobeMOUSE(int w)
{ {
Mouse.readbit=0; Mouse.readbit=0;
} }
static uint8 FP_FASTAPASS(1) ReadMOUSE(int w) static uint8 ReadMOUSE(int w)
{ {
uint8 ret=0; uint8 ret=0;
if(Mouse.readbit>=8) if(Mouse.readbit>=8)
@ -49,7 +49,7 @@ static uint8 FP_FASTAPASS(1) ReadMOUSE(int w)
return(ret); return(ret);
} }
static void FP_FASTAPASS(3) UpdateMOUSE(int w, void *data, int arg) static void UpdateMOUSE(int w, void *data, int arg)
{ {
uint32 *ptr=(uint32*)data; uint32 *ptr=(uint32*)data;
Mouse.data=0; Mouse.data=0;

View File

@ -25,7 +25,7 @@ static uint8 OKValR,LastWR;
static uint32 OKData; static uint32 OKData;
static uint32 OKX,OKY,OKB; static uint32 OKX,OKY,OKB;
static uint8 FP_FASTAPASS(2) OK_Read(int w, uint8 ret) static uint8 OK_Read(int w, uint8 ret)
{ {
if(w) if(w)
{ {
@ -34,7 +34,7 @@ static uint8 FP_FASTAPASS(2) OK_Read(int w, uint8 ret)
return(ret); return(ret);
} }
static void FP_FASTAPASS(1) OK_Write(uint8 V) static void OK_Write(uint8 V)
{ {
if(!(V&0x1)) if(!(V&0x1))
{ {
@ -72,7 +72,7 @@ static void FP_FASTAPASS(1) OK_Write(uint8 V)
LastWR=V; LastWR=V;
} }
static void FP_FASTAPASS(2) OK_Update(void *data, int arg) static void OK_Update(void *data, int arg)
{ {
//puts("Sync"); //puts("Sync");
OKX=((uint32*)data)[0]; OKX=((uint32*)data)[0];
@ -80,7 +80,7 @@ static void FP_FASTAPASS(2) OK_Update(void *data, int arg)
OKB=((uint32*)data)[2]; OKB=((uint32*)data)[2];
} }
static void FP_FASTAPASS(2) DrawOeka(uint8 *buf, int arg) static void DrawOeka(uint8 *buf, int arg)
{ {
if(arg && OKY<44) if(arg && OKY<44)
FCEU_DrawCursor(buf, OKX, OKY); FCEU_DrawCursor(buf, OKX, OKY);

View File

@ -27,7 +27,7 @@ static char side;
static uint32 pprsb[2]; static uint32 pprsb[2];
static uint32 pprdata[2]; static uint32 pprdata[2];
static uint8 FP_FASTAPASS(1) ReadPP(int w) static uint8 ReadPP(int w)
{ {
uint8 ret=0; uint8 ret=0;
ret|=((pprdata[w]>>pprsb[w])&1)<<3; ret|=((pprdata[w]>>pprsb[w])&1)<<3;
@ -43,12 +43,12 @@ static uint8 FP_FASTAPASS(1) ReadPP(int w)
return ret; return ret;
} }
static void FP_FASTAPASS(1) StrobePP(int w) static void StrobePP(int w)
{ {
pprsb[w]=0; pprsb[w]=0;
} }
void FP_FASTAPASS(3) UpdatePP(int w, void *data, int arg) void UpdatePP(int w, void *data, int arg)
{ {
static const char shifttableA[12]={8,9,0,1,11,7,4,2,10,6,5,3}; static const char shifttableA[12]={8,9,0,1,11,7,4,2,10,6,5,3};
static const char shifttableB[12]={1,0,9,8,2,4,7,11,3,5,6,10}; static const char shifttableB[12]={1,0,9,8,2,4,7,11,3,5,6,10};

View File

@ -24,7 +24,7 @@
static uint8 QZVal,QZValR; static uint8 QZVal,QZValR;
static uint8 FunkyMode; static uint8 FunkyMode;
static uint8 FP_FASTAPASS(2) QZ_Read(int w, uint8 ret) static uint8 QZ_Read(int w, uint8 ret)
{ {
if(w) if(w)
{ {
@ -55,13 +55,13 @@ static void QZ_Strobe(void)
//puts("Strobe"); //puts("Strobe");
} }
static void FP_FASTAPASS(1) QZ_Write(uint8 V) static void QZ_Write(uint8 V)
{ {
//printf("Wr: %02x\n",V); //printf("Wr: %02x\n",V);
FunkyMode=V&4; FunkyMode=V&4;
} }
static void FP_FASTAPASS(2) QZ_Update(void *data, int arg) static void QZ_Update(void *data, int arg)
{ {
QZVal=*(uint8 *)data; QZVal=*(uint8 *)data;
} }

View File

@ -33,7 +33,7 @@ typedef struct {
static ZAPPER ZD; static ZAPPER ZD;
static void FP_FASTAPASS(3) ZapperFrapper(uint8 *bg, uint8 *spr, uint32 linets, int final) static void ZapperFrapper(uint8 *bg, uint8 *spr, uint32 linets, int final)
{ {
int xs,xe; int xs,xe;
int zx,zy; int zx,zy;
@ -94,7 +94,7 @@ static INLINE int CheckColor(void)
} }
static uint8 FP_FASTAPASS(2) ReadZapper(int w, uint8 ret) static uint8 ReadZapper(int w, uint8 ret)
{ {
if(w) if(w)
{ {
@ -115,13 +115,13 @@ static uint8 FP_FASTAPASS(2) ReadZapper(int w, uint8 ret)
return ret; return ret;
} }
static void FP_FASTAPASS(2) DrawZapper(uint8 *buf, int arg) static void DrawZapper(uint8 *buf, int arg)
{ {
if(arg) if(arg)
FCEU_DrawCursor(buf, ZD.mzx, ZD.mzy); FCEU_DrawCursor(buf, ZD.mzx, ZD.mzy);
} }
static void FP_FASTAPASS(2) UpdateZapper(void *data, int arg) static void UpdateZapper(void *data, int arg)
{ {
uint32 *ptr=(uint32*)data; uint32 *ptr=(uint32*)data;

View File

@ -39,7 +39,7 @@ static uint16 matrix[13][2][4]=
{AK(F9),AK(NUMPAD3),AK(DECIMAL),AK(NUMPAD0)}}, {AK(F9),AK(NUMPAD3),AK(DECIMAL),AK(NUMPAD0)}},
}; };
static void FP_FASTAPASS(1) SuborKB_Write(uint8 v) static void SuborKB_Write(uint8 v)
{ {
v>>=1; v>>=1;
if(v&2) if(v&2)
@ -50,7 +50,7 @@ static void FP_FASTAPASS(1) SuborKB_Write(uint8 v)
ksmode=v; ksmode=v;
} }
static uint8 FP_FASTAPASS(2) SuborKB_Read(int w, uint8 ret) static uint8 SuborKB_Read(int w, uint8 ret)
{ {
if(w) if(w)
{ {
@ -79,7 +79,7 @@ static void SuborKB_Strobe(void)
ksindex=0; ksindex=0;
} }
static void FP_FASTAPASS(2) SuborKB_Update(void *data, int arg) static void SuborKB_Update(void *data, int arg)
{ {
memcpy(bufit+1,data,0x60); memcpy(bufit+1,data,0x60);
} }

View File

@ -24,7 +24,7 @@
static uint32 bs,bss; static uint32 bs,bss;
static uint32 boop; static uint32 boop;
static uint8 FP_FASTAPASS(2) Read(int w, uint8 ret) static uint8 Read(int w, uint8 ret)
{ {
if(w) if(w)
{ {
@ -37,7 +37,7 @@ static uint8 FP_FASTAPASS(2) Read(int w, uint8 ret)
return(ret); return(ret);
} }
static void FP_FASTAPASS(1) Write(uint8 V) static void Write(uint8 V)
{ {
// if(V&0x2) // if(V&0x2)
bs=bss; bs=bss;
@ -45,7 +45,7 @@ static void FP_FASTAPASS(1) Write(uint8 V)
// boop=0xC0; // boop=0xC0;
} }
static void FP_FASTAPASS(2) Update(void *data, int arg) static void Update(void *data, int arg)
{ {
bss=*(uint8*)data; bss=*(uint8*)data;
bss|=bss<<8; bss|=bss<<8;

View File

@ -33,7 +33,7 @@ typedef struct {
static ZAPPER ZD[2]; static ZAPPER ZD[2];
static void FP_FASTAPASS(3) ZapperFrapper(int w, uint8 *bg, uint8 *spr, uint32 linets, int final) static void ZapperFrapper(int w, uint8 *bg, uint8 *spr, uint32 linets, int final)
{ {
int xs,xe; int xs,xe;
int zx,zy; int zx,zy;
@ -94,7 +94,7 @@ static INLINE int CheckColor(int w)
return(1); return(1);
} }
static uint8 FP_FASTAPASS(1) ReadZapperVS(int w) static uint8 ReadZapperVS(int w)
{ {
uint8 ret=0; uint8 ret=0;
@ -115,12 +115,12 @@ static uint8 FP_FASTAPASS(1) ReadZapperVS(int w)
return ret; return ret;
} }
static void FP_FASTAPASS(1) StrobeZapperVS(int w) static void StrobeZapperVS(int w)
{ {
ZD[w].zap_readbit=0; ZD[w].zap_readbit=0;
} }
static uint8 FP_FASTAPASS(1) ReadZapper(int w) static uint8 ReadZapper(int w)
{ {
uint8 ret=0; uint8 ret=0;
if(ZD[w].bogo) if(ZD[w].bogo)
@ -130,13 +130,13 @@ static uint8 FP_FASTAPASS(1) ReadZapper(int w)
return ret; return ret;
} }
static void FASTAPASS(3) DrawZapper(int w, uint8 *buf, int arg) static void DrawZapper(int w, uint8 *buf, int arg)
{ {
if(arg) if(arg)
FCEU_DrawGunSight(buf, ZD[w].mzx,ZD[w].mzy); FCEU_DrawGunSight(buf, ZD[w].mzx,ZD[w].mzy);
} }
static void FP_FASTAPASS(3) UpdateZapper(int w, void *data, int arg) static void UpdateZapper(int w, void *data, int arg)
{ {
uint32 *ptr=(uint32 *)data; uint32 *ptr=(uint32 *)data;

View File

@ -21,7 +21,7 @@
#include "mapinc.h" #include "mapinc.h"
static void FP_FASTAPASS(1) BandaiIRQHook(int a) static void BandaiIRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {
@ -260,7 +260,7 @@ int FCEUI_DatachSet(const uint8 *rcode)
return(1); return(1);
} }
static void FP_FASTAPASS(1) BarcodeIRQHook(int a) static void BarcodeIRQHook(int a)
{ {
BandaiIRQHook(a); BandaiIRQHook(a);

View File

@ -22,7 +22,7 @@
static void FP_FASTAPASS(1) FFEIRQHook(int a) static void FFEIRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -23,7 +23,7 @@
#define K4buf mapbyte2 #define K4buf mapbyte2
#define K4buf2 mapbyte3 #define K4buf2 mapbyte3
void FP_FASTAPASS(1) JalecoIRQHook(int a) void JalecoIRQHook(int a)
{ {
if(IRQa && IRQCount) if(IRQa && IRQCount)
{ {

View File

@ -82,7 +82,7 @@ DECLFW(Mapper21_write)
case 0xf006:IRQa=K4IRQ;X6502_IRQEnd(FCEU_IQEXT);break; case 0xf006:IRQa=K4IRQ;X6502_IRQEnd(FCEU_IQEXT);break;
} }
} }
static void FP_FASTAPASS(1) KonamiIRQHook(int a) static void KonamiIRQHook(int a)
{ {
#define LCYCS ((227*2)+1) #define LCYCS ((227*2)+1)
//#define LCYCS 341 //#define LCYCS 341

View File

@ -80,7 +80,7 @@ static DECLFW(Mapper23_write)
} }
} }
void FP_FASTAPASS(1) KonamiIRQHook2(int a) void KonamiIRQHook2(int a)
{ {
#define LCYCS 341 #define LCYCS 341
if(IRQa) if(IRQa)

View File

@ -34,7 +34,7 @@ static int swaparoo;
static int acount=0; static int acount=0;
static void FP_FASTAPASS(1) KonamiIRQHook(int a) static void KonamiIRQHook(int a)
{ {
#define LCYCS 341 #define LCYCS 341
// #define LCYCS ((227*2)+1) // #define LCYCS ((227*2)+1)

View File

@ -72,7 +72,7 @@ static DECLFW(Mapper25_write)
} }
} }
static void FP_FASTAPASS(1) KonamiIRQHook(int a) static void KonamiIRQHook(int a)
{ {
// #define LCYCS ((227*2)) // #define LCYCS ((227*2))
#define LCYCS 341 #define LCYCS 341

View File

@ -31,7 +31,7 @@ static DECLFW(Mapper40_write)
} }
} }
static void FP_FASTAPASS(1) Mapper40IRQ(int a) static void Mapper40IRQ(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -33,7 +33,7 @@ static DECLFW(Mapper42_write)
} }
} }
static void FP_FASTAPASS(1) Mapper42IRQ(int a) static void Mapper42IRQ(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -44,7 +44,7 @@ static DECLFW(M43Low)
//printf("$%04x:$%02x\n",A,V); //printf("$%04x:$%02x\n",A,V);
} }
static void FP_FASTAPASS(1) M43Ho(int a) static void M43Ho(int a)
{ {
IRQCount+=a; IRQCount+=a;
if(IRQa) if(IRQa)

View File

@ -21,7 +21,7 @@
#include "mapinc.h" #include "mapinc.h"
static void FP_FASTAPASS(1) Mapper50IRQ(int a) static void Mapper50IRQ(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -24,7 +24,7 @@ static uint8 FFEmode;
#define FVRAM_BANK8(A,V) {VPage[0]=VPage[1]=VPage[2]=VPage[3]=VPage[4]=VPage[5]=VPage[6]=VPage[7]=V?&MapperExRAM[(V)<<13]-(A):&CHRRAM[(V)<<13]-(A);CHRBankList[0]=((V)<<3);CHRBankList[1]=((V)<<3)+1;CHRBankList[2]=((V)<<3)+2;CHRBankList[3]=((V)<<3)+3;CHRBankList[4]=((V)<<3)+4;CHRBankList[5]=((V)<<3)+5;CHRBankList[6]=((V)<<3)+6;CHRBankList[7]=((V)<<3)+7;PPUCHRRAM=0xFF;} #define FVRAM_BANK8(A,V) {VPage[0]=VPage[1]=VPage[2]=VPage[3]=VPage[4]=VPage[5]=VPage[6]=VPage[7]=V?&MapperExRAM[(V)<<13]-(A):&CHRRAM[(V)<<13]-(A);CHRBankList[0]=((V)<<3);CHRBankList[1]=((V)<<3)+1;CHRBankList[2]=((V)<<3)+2;CHRBankList[3]=((V)<<3)+3;CHRBankList[4]=((V)<<3)+4;CHRBankList[5]=((V)<<3)+5;CHRBankList[6]=((V)<<3)+6;CHRBankList[7]=((V)<<3)+7;PPUCHRRAM=0xFF;}
static void FP_FASTAPASS(1) FFEIRQHook(int a) static void FFEIRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -21,7 +21,7 @@
#include "mapinc.h" #include "mapinc.h"
void FP_FASTAPASS(1) IREMIRQHook(int a) void IREMIRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -58,7 +58,7 @@ static DECLFW(Mapper67_write)
case 0xf800:ROM_BANK16(0x8000,V);break; case 0xf800:ROM_BANK16(0x8000,V);break;
} }
} }
static void FP_FASTAPASS(1) SunIRQHook(int a) static void SunIRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -198,7 +198,7 @@ static void AYHiSync(int32 ts)
CAYBC[x]=ts; CAYBC[x]=ts;
} }
static void FP_FASTAPASS(1) SunIRQHook(int a) static void SunIRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -38,7 +38,7 @@ static DECLFW(Mapper73_write)
} }
} }
static void FP_FASTAPASS(1) Mapper73IRQHook(int a) static void Mapper73IRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -24,7 +24,7 @@ static uint32 lastA;
static int isfu; static int isfu;
static uint8 CCache[8]; static uint8 CCache[8];
static void FP_FASTAPASS(1) Fudou_PPU(uint32 A) static void Fudou_PPU(uint32 A)
{ {
static int last=-1; static int last=-1;
static uint8 z; static uint8 z;

View File

@ -26,7 +26,7 @@
} }
*/ */
static void FP_FASTAPASS(1) m83IRQHook(int a) static void m83IRQHook(int a)
{ {
if(IRQa) if(IRQa)
{ {

View File

@ -113,7 +113,7 @@ DECLFW(Mapper85_write)
} }
} }
static void FP_FASTAPASS(1) KonamiIRQHook(int a) static void KonamiIRQHook(int a)
{ {
#define ACBOO 341 #define ACBOO 341
// #define ACBOO ((227*2)+1) // #define ACBOO ((227*2)+1)

View File

@ -25,7 +25,7 @@
#define latcha2 mapbyte2[1] #define latcha2 mapbyte2[1]
static void FP_FASTAPASS(1) latchcheck(uint32 VAddr) static void latchcheck(uint32 VAddr)
{ {
uint8 l,h; uint8 l,h;

View File

@ -55,7 +55,7 @@ static DECLFW(Mapper96_write)
setchr4r(0x10,0x1000,(latche&4)|3); setchr4r(0x10,0x1000,(latche&4)|3);
} }
static void FP_FASTAPASS(1) M96Hook(uint32 A) static void M96Hook(uint32 A)
{ {
if((A&0x3000)!=0x2000) return; if((A&0x3000)!=0x2000) return;
//if((A&0x3ff)>=0x3c0) return; //if((A&0x3ff)>=0x3c0) return;

View File

@ -53,7 +53,7 @@
#define Pal (PALRAM) #define Pal (PALRAM)
static void FetchSpriteData(void); static void FetchSpriteData(void);
static void FASTAPASS(1) RefreshLine(int lastpixel); static void RefreshLine(int lastpixel);
static void RefreshSprites(void); static void RefreshSprites(void);
static void CopySprites(uint8 *target); static void CopySprites(uint8 *target);
@ -123,7 +123,7 @@ static uint8 deemp=0;
static int deempcnt[8]; static int deempcnt[8];
void (*GameHBIRQHook)(void), (*GameHBIRQHook2)(void); void (*GameHBIRQHook)(void), (*GameHBIRQHook2)(void);
void FP_FASTAPASS(1) (*PPU_hook)(uint32 A); void (*PPU_hook)(uint32 A);
uint8 vtoggle=0; uint8 vtoggle=0;
uint8 XOffset=0; uint8 XOffset=0;
@ -496,7 +496,7 @@ static int spork=0; /* spork the world. Any sprites on this line?
*/ */
// lasttile is really "second to last tile." // lasttile is really "second to last tile."
static void FASTAPASS(1) RefreshLine(int lastpixel) static void RefreshLine(int lastpixel)
{ {
static uint32 pshift[2]; static uint32 pshift[2];
static uint32 atlatch; static uint32 atlatch;
@ -1003,13 +1003,8 @@ static void RefreshSprites(void)
for(n=numsprites;n>=0;n--,spr--) for(n=numsprites;n>=0;n--,spr--)
{ {
//#ifdef C80x86 uint32 pixdata;
//register uint32 pixdata asm ("eax"); uint8 J,atr;
//register uint8 J, atr;
//#else
register uint32 pixdata;
register uint8 J,atr;
//#endif
int x=spr->x; int x=spr->x;
uint8 *C; uint8 *C;

View File

@ -6,7 +6,7 @@ int FCEUPPU_Loop(int skip);
void FCEUPPU_LineUpdate(); void FCEUPPU_LineUpdate();
void FCEUPPU_SetVideoSystem(int w); void FCEUPPU_SetVideoSystem(int w);
extern void FP_FASTAPASS(1) (*PPU_hook)(uint32 A); extern void (*PPU_hook)(uint32 A);
extern void (*GameHBIRQHook)(void), (*GameHBIRQHook2)(void); extern void (*GameHBIRQHook)(void), (*GameHBIRQHook2)(void);
/* For cart.c and banksw.h, mostly */ /* For cart.c and banksw.h, mostly */

View File

@ -21,60 +21,7 @@
pixdata|=ppulut3[XOffset|(atlatch<<3)]; pixdata|=ppulut3[XOffset|(atlatch<<3)];
//printf("%02x ",ppulut3[XOffset|(atlatch<<3)]); //printf("%02x ",ppulut3[XOffset|(atlatch<<3)]);
#ifdef C80x86
asm volatile(
"movl %%ebx,%%eax\n\t"
"andl $15,%%eax\n\t"
"movb (%%esi,%%eax),%%cl\n\t"
"shrl $4, %%ebx\n\t"
"movb %%cl, (%%edi)\n\t"
"movl %%ebx,%%eax\n\t"
"andl $15,%%eax\n\t"
"movb (%%esi,%%eax),%%cl\n\t"
"shrl $4, %%ebx\n\t"
"movb %%cl, 1(%%edi)\n\t"
"movl %%ebx,%%eax\n\t"
"andl $15,%%eax\n\t"
"movb (%%esi,%%eax),%%cl\n\t"
"shrl $4, %%ebx\n\t"
"movb %%cl, 2(%%edi)\n\t"
"movl %%ebx,%%eax\n\t"
"andl $15,%%eax\n\t"
"movb (%%esi,%%eax),%%cl\n\t"
"shrl $4, %%ebx\n\t"
"movb %%cl, 3(%%edi)\n\t"
"movl %%ebx,%%eax\n\t"
"andl $15,%%eax\n\t"
"movb (%%esi,%%eax),%%cl\n\t"
"shrl $4, %%ebx\n\t"
"movb %%cl, 4(%%edi)\n\t"
"movl %%ebx,%%eax\n\t"
"andl $15,%%eax\n\t"
"movb (%%esi,%%eax),%%cl\n\t"
"shrl $4, %%ebx\n\t"
"movb %%cl, 5(%%edi)\n\t"
"movl %%ebx,%%eax\n\t"
"andl $15,%%eax\n\t"
"movb (%%esi,%%eax),%%cl\n\t"
"shrl $4, %%ebx\n\t"
"movb %%cl, 6(%%edi)\n\t"
//"movl %%ebx,%%eax\n\t"
//"andl $15,%%eax\n\t"
//"movb (%%esi,%%eax),%%cl\n\t"
//"movb %%cl, 7(%%edi)\n\t"
"movb (%%esi, %%ebx),%%cl\n\t"
"movb %%cl, 7(%%edi)\n\t"
:
: "S" (S), "D" (P), "b" (pixdata)
: "eax", "cl" );
#else
P[0]=S[pixdata&0xF]; P[0]=S[pixdata&0xF];
pixdata>>=4; pixdata>>=4;
P[1]=S[pixdata&0xF]; P[1]=S[pixdata&0xF];
@ -90,7 +37,6 @@
P[6]=S[pixdata&0xF]; P[6]=S[pixdata&0xF];
pixdata>>=4; pixdata>>=4;
P[7]=S[pixdata&0xF]; P[7]=S[pixdata&0xF];
#endif
P+=8; P+=8;
} }

View File

@ -159,7 +159,7 @@ static void PrepDPCM()
/* Instantaneous? Maybe the new freq value is being calculated all of the time... */ /* Instantaneous? Maybe the new freq value is being calculated all of the time... */
static int FASTAPASS(2) CheckFreq(uint32 cf, uint8 sr) static int CheckFreq(uint32 cf, uint8 sr)
{ {
uint32 mod; uint32 mod;
if(!(sr&0x8)) if(!(sr&0x8))
@ -339,7 +339,7 @@ static DECLFR(StatusRead)
return ret; return ret;
} }
static void FASTAPASS(1) FrameSoundStuff(int V) static void FrameSoundStuff(int V)
{ {
int P; int P;
@ -503,7 +503,7 @@ static INLINE void DMCDMA(void)
} }
} }
void FASTAPASS(1) FCEU_SoundCPUHook(int cycles) void FCEU_SoundCPUHook(int cycles)
{ {
fhcnt-=cycles*48; fhcnt-=cycles*48;
if(fhcnt<=0) if(fhcnt<=0)

View File

@ -62,7 +62,7 @@ void FCEUSND_Reset(void);
void FCEUSND_SaveState(void); void FCEUSND_SaveState(void);
void FCEUSND_LoadState(int version); void FCEUSND_LoadState(int version);
void FASTAPASS(1) FCEU_SoundCPUHook(int); void FCEU_SoundCPUHook(int);
void FP_FASTAPASS(2) Write_IRQFM (uint32 A, uint8 V); //mbg merge 7/17/06 brought over from latest mmbuild void Write_IRQFM (uint32 A, uint8 V); //mbg merge 7/17/06 brought over from latest mmbuild
#endif #endif

View File

@ -131,24 +131,8 @@ typedef uint32_t uint32;
#endif #endif
#ifdef __GNUC__ typedef void (*writefunc)(uint32 A, uint8 V);
#ifdef C80x86 typedef uint8 (*readfunc)(uint32 A);
#define FASTAPASS(x) __attribute__((regparm(x)))
#define FP_FASTAPASS FASTAPASS
#else
#define FASTAPASS(x)
#define FP_FASTAPASS(x)
#endif
#elif MSVC
#define FP_FASTAPASS(x)
#define FASTAPASS(x)
#else
#define FP_FASTAPASS(x)
#define FASTAPASS(x)
#endif
typedef void (FP_FASTAPASS(2) *writefunc)(uint32 A, uint8 V);
typedef uint8 (FP_FASTAPASS(1) *readfunc)(uint32 A);
template<typename T, int N> template<typename T, int N>

View File

@ -28,4 +28,4 @@ void *FCEU_malloc(uint32 size);
void *FCEU_gmalloc(uint32 size); void *FCEU_gmalloc(uint32 size);
void FCEU_gfree(void *ptr); void FCEU_gfree(void *ptr);
void FCEU_free(void *ptr); void FCEU_free(void *ptr);
void FASTAPASS(3) FCEU_memmove(void *d, void *s, uint32 l); void FCEU_memmove(void *d, void *s, uint32 l);

View File

@ -27,7 +27,7 @@
X6502 X; X6502 X;
uint32 timestamp; uint32 timestamp;
void FP_FASTAPASS(1) (*MapIRQHook)(int a); void (*MapIRQHook)(int a);
#define ADDCYC(x) \ #define ADDCYC(x) \
{ \ { \
@ -61,13 +61,13 @@ static INLINE void WrRAM(unsigned int A, uint8 V)
RAM[A]=V; RAM[A]=V;
} }
uint8 FASTAPASS(1) X6502_DMR(uint32 A) uint8 X6502_DMR(uint32 A)
{ {
ADDCYC(1); ADDCYC(1);
return(X.DB=ARead[A](A)); return(X.DB=ARead[A](A));
} }
void FASTAPASS(2) X6502_DMW(uint32 A, uint8 V) void X6502_DMW(uint32 A, uint8 V)
{ {
ADDCYC(1); ADDCYC(1);
BWrite[A](A,V); BWrite[A](A,V);
@ -339,12 +339,12 @@ static uint8 CycTable[256] =
/*0xF0*/ 2,5,2,8,4,4,6,6,2,4,2,7,4,4,7,7, /*0xF0*/ 2,5,2,8,4,4,6,6,2,4,2,7,4,4,7,7,
}; };
void FASTAPASS(1) X6502_IRQBegin(int w) void X6502_IRQBegin(int w)
{ {
_IRQlow|=w; _IRQlow|=w;
} }
void FASTAPASS(1) X6502_IRQEnd(int w) void X6502_IRQEnd(int w)
{ {
_IRQlow&=~w; _IRQlow&=~w;
} }

View File

@ -118,7 +118,7 @@ extern uint32 timestamp;
#define Z_FLAG 0x02 #define Z_FLAG 0x02
#define C_FLAG 0x01 #define C_FLAG 0x01
extern void FP_FASTAPASS(1) (*MapIRQHook)(int a); extern void (*MapIRQHook)(int a);
#define NTSC_CPU 1789772.7272727272727272 #define NTSC_CPU 1789772.7272727272727272
#define PAL_CPU 1662607.125 #define PAL_CPU 1662607.125
@ -140,11 +140,11 @@ void X6502_Power(void);
void TriggerNMI(void); void TriggerNMI(void);
void TriggerNMI2(void); void TriggerNMI2(void);
uint8 FASTAPASS(1) X6502_DMR(uint32 A); uint8 X6502_DMR(uint32 A);
void FASTAPASS(2) X6502_DMW(uint32 A, uint8 V); void X6502_DMW(uint32 A, uint8 V);
void FASTAPASS(1) X6502_IRQBegin(int w); void X6502_IRQBegin(int w);
void FASTAPASS(1) X6502_IRQEnd(int w); void X6502_IRQEnd(int w);
#define _X6502H #define _X6502H
#endif #endif