From f2773a5b9c86ab38ab88f559e2e58d47fb965122 Mon Sep 17 00:00:00 2001 From: dborth Date: Mon, 20 Jul 2009 07:14:18 +0000 Subject: [PATCH] FDS corrections --- source/fceultra/fds.cpp | 51 ++++++++++++++++++++++------------------- source/ngc/gcvideo.cpp | 2 +- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/source/fceultra/fds.cpp b/source/fceultra/fds.cpp index 7d25082..9da0a4b 100644 --- a/source/fceultra/fds.cpp +++ b/source/fceultra/fds.cpp @@ -40,7 +40,7 @@ // and the when it can be successfully read/written to. This should // prevent writes to wrong places OR add code to prevent disk ejects // when the virtual motor is on(mmm...virtual motor). -extern int disableBatteryLoading; +extern int disableBatteryLoading; static DECLFR(FDSRead4030); static DECLFR(FDSRead4031); @@ -94,7 +94,7 @@ void FDSGI(GI h) } static void FDSStateRestore(int version) -{ +{ int x; setmirror(((FDSRegs[5]&8)>>3)^1); @@ -133,7 +133,7 @@ static void FDSInit(void) SetReadHandler(0x4032,0x4032,FDSRead4032); SetReadHandler(0x4033,0x4033,FDSRead4033); - SetWriteHandler(0x4020,0x4025,FDSWrite); + SetWriteHandler(0x4020,0x4025,FDSWrite); SetWriteHandler(0x6000,0xdfff,FDSRAMWrite); SetReadHandler(0x6000,0xdfff,FDSRAMRead); @@ -149,15 +149,15 @@ void FCEU_FDSInsert(void) { if(TotalSides==0) { - FCEU_DispMessage("Not FDS; can't eject disk."); + FCEU_DispMessage("Not FDS; can't eject disk."); return; } if(InDisk==255) { - FCEU_DispMessage("Disk %d Side %s Inserted",SelectDisk>>1,(SelectDisk&1)?"B":"A"); + FCEU_DispMessage("Disk %d Side %s Inserted",SelectDisk>>1,(SelectDisk&1)?"B":"A"); InDisk=SelectDisk; } - else + else { FCEU_DispMessage("Disk %d Side %s Ejected",SelectDisk>>1,(SelectDisk&1)?"B":"A"); InDisk=255; @@ -198,14 +198,14 @@ static void FDSFix(int a) IRQCount=IRQLatch=0; } else - IRQCount=IRQLatch; + IRQCount=IRQLatch; //IRQCount=IRQLatch; //0xFFFF; X6502_IRQBegin(FCEU_IQEXT); //printf("IRQ: %d\n",timestamp); // printf("IRQ: %d\n",scanline); } } - if(DiskSeekIRQ>0) + if(DiskSeekIRQ>0) { DiskSeekIRQ-=a; if(DiskSeekIRQ<=0) @@ -250,14 +250,14 @@ static DECLFR(FDSRead4031) return z; } static DECLFR(FDSRead4032) -{ +{ uint8 ret; ret=X.DB&~7; if(InDisk==255) ret|=5; - if(InDisk==255 || !(FDSRegs[5]&1) || (FDSRegs[5]&2)) + if(InDisk==255 || !(FDSRegs[5]&1) || (FDSRegs[5]&2)) ret|=2; return ret; } @@ -356,7 +356,7 @@ static DECLFW(FDSSWrite) A-=0x4080; switch(A) { - case 0x0: + case 0x0: case 0x4: if(V&0x80) amplitude[(A&0xF)>>2]=V&0x3F; //)>0x20?0x20:(V&0x3F); break; @@ -372,7 +372,7 @@ static DECLFW(FDSSWrite) break; } //if(A>=0x7 && A!=0x8 && A<=0xF) - //if(A==0xA || A==0x9) + //if(A==0xA || A==0x9) //printf("$%04x:$%02x\n",A,V); SPSG[A]=V; } @@ -439,7 +439,7 @@ static INLINE void ClockRise(void) b19shiftreg60=(SPSG[0x2]|((SPSG[0x3]&0xF)<<8)); b17latch76=(SPSG[0x6]|((SPSG[0x07]&0xF)<<8))+b17latch76; - if(!(SPSG[0x7]&0x80)) + if(!(SPSG[0x7]&0x80)) { int t=fdso.mwave[(b17latch76>>13)&0x1F]&7; int t2=amplitude[1]; @@ -459,13 +459,13 @@ static INLINE void ClockRise(void) b8shiftreg88=0x80 + adj; } else - { + { b8shiftreg88=0x80; } } else { - b19shiftreg60<<=1; + b19shiftreg60<<=1; b8shiftreg88>>=1; } // b24adder66=(b24latch68+b19shiftreg60)&0x3FFFFFF; @@ -495,7 +495,7 @@ dogk: if(fdso.envcount<=0) { fdso.envcount+=SPSG[0xA]*3; - DoEnv(); + DoEnv(); } } if(fdso.count>=32768) goto dogk; @@ -702,7 +702,7 @@ static int SubLoad(FCEUFILE *fp) } else return(0); - } + } else TotalSides=header[4]; @@ -752,7 +752,7 @@ static void PostSave(void) for(b=0; b<65500; b++) diskdata[x][b] ^= diskdatao[x][b]; - } + } } @@ -764,13 +764,13 @@ int FDSLoad(const char *name, FCEUFILE *fp) FCEU_fseek(fp,0,SEEK_SET); - if(!SubLoad(fp)) + if(!SubLoad(fp)) return(0); #ifndef GEKKO fn = strdup(FCEU_MakeFName(FCEUMKF_FDSROM,0,0).c_str()); - if(!(zp=FCEUD_UTF8fopen(fn,"rb"))) + if(!(zp=FCEUD_UTF8fopen(fn,"rb"))) { FCEU_PrintError("FDS BIOS ROM image missing!"); FreeFDSMemory(); @@ -802,7 +802,7 @@ if (!disableBatteryLoading) diskdatao[x]=(uint8 *)FCEU_malloc(65500); memcpy(diskdatao[x],diskdata[x],65500); } - +#ifndef GEKKO if((tp=FCEU_fopen(fn,0,"rb",0))) { FreeFDSMemory(); @@ -816,6 +816,7 @@ if (!disableBatteryLoading) DiskWritten=1; /* For save state handling. */ } free(fn); +#endif } GameInfo->type=GIT_FDS; @@ -829,7 +830,7 @@ if (!disableBatteryLoading) for(x=0;x