X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=boards%2F43.c;h=94aa7b63403b32dec4280c1a1fc41838380db90e;hp=ee12dec6bd29695d36b3d214694c49114a6fabe0;hb=43725da7349c85fa13e828fdbf20cc7ac8d298d6;hpb=386f5371eb984fb9c2860c83e740890a75cd45c1 diff --git a/boards/43.c b/boards/43.c index ee12dec..94aa7b6 100644 --- a/boards/43.c +++ b/boards/43.c @@ -15,16 +15,16 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * FDS Conversion + * */ -//ccording to nestopia, BTL_SMB2_C, otherwise known as UNL-SMB2J - #include "mapinc.h" static uint8 reg; -static uint8 IRQa; -static uint32 IRQCount; +static uint32 IRQCount, IRQa; static SFORMAT StateRegs[]= { @@ -36,7 +36,7 @@ static SFORMAT StateRegs[]= static void Sync(void) { - setprg4(0x5000,16); + setprg4(0x5000,16); // Only YS-612 advdnced version setprg8(0x6000,2); setprg8(0x8000,1); setprg8(0xa000,0); @@ -47,11 +47,13 @@ static void Sync(void) static DECLFW(M43Write) { - int transo[8]={4,3,4,4,4,7,5,6}; +// int transo[8]={4,3,4,4,4,7,5,6}; + int transo[8]={4,3,5,3,6,3,7,3}; // According to hardware tests switch(A&0xf1ff) { case 0x4022: reg=transo[V&7]; Sync(); break; - case 0x8122: IRQa=V&1; IRQCount=0; break; + case 0x8122: // hacked version + case 0x4122: IRQa=V&1; X6502_IRQEnd(FCEU_IQEXT); IRQCount=0; break; // original version } } @@ -59,7 +61,6 @@ static void M43Power(void) { reg=0; Sync(); -// SetReadHandler(0x5000,0x5fff,CartBR); SetReadHandler(0x5000,0xffff,CartBR); SetWriteHandler(0x4020,0xffff,M43Write); } @@ -68,15 +69,15 @@ static void M43Reset(void) { } -static void M43IRQHook(int a) +static void FP_FASTAPASS(1) M43IRQHook(int a) { - IRQCount+=a; - if(IRQa) - if(IRQCount>=4096) - { - IRQa=0; - X6502_IRQBegin(FCEU_IQEXT); - } + IRQCount+=a; + if(IRQa) + if(IRQCount>=4096) + { + IRQa=0; + X6502_IRQBegin(FCEU_IQEXT); + } } static void StateRestore(int version)