X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mappers%2F42.c;h=0687807701e7cc40e15a32a0c98a0713aa98f599;hb=5bd16b94320afa9dfba4985f5d69c2d84bae4c33;hp=27002277d410bcc3ec15bbd4c2fa625dfb577b7b;hpb=c62d28102c77e19c291c78bf6bf7f0a81abd54b9;p=fceu.git diff --git a/mappers/42.c b/mappers/42.c index 2700227..0687807 100644 --- a/mappers/42.c +++ b/mappers/42.c @@ -1,7 +1,7 @@ /* FCE Ultra - NES/Famicom Emulator * * Copyright notice for this file: - * Copyright (C) 2002 Ben Parnell + * Copyright (C) 2002 Xodnizel * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +16,9 @@ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * FDS Conversion + * */ #include "mapinc.h" @@ -23,11 +26,13 @@ static DECLFW(Mapper42_write) { +// FCEU_printf("%04x:%04x\n",A,V); switch(A&0xe003) { + case 0x8000:VROM_BANK8(V);break; case 0xe000:mapbyte1[0]=V;ROM_BANK8(0x6000,V&0xF);break; case 0xe001:MIRROR_SET((V>>3)&1);break; - case 0xe002:IRQa=V&2;if(!IRQa) IRQCount=0;break; + case 0xe002:IRQa=V&2;if(!IRQa) IRQCount=0;X6502_IRQEnd(FCEU_IQEXT);break; } } @@ -35,13 +40,12 @@ static void FP_FASTAPASS(1) Mapper42IRQ(int a) { if(IRQa) { - if(IRQCount<24576) - IRQCount+=a; + IRQCount+=a; + if(IRQCount>=32768) IRQCount-=32768; + if(IRQCount>=24576) + X6502_IRQBegin(FCEU_IQEXT); else - { - IRQa=0; - TriggerIRQ(); - } + X6502_IRQEnd(FCEU_IQEXT); } } @@ -55,7 +59,7 @@ void Mapper42_init(void) { ROM_BANK8(0x6000,0); ROM_BANK32(~0); - SetWriteHandler(0xe000,0xffff,Mapper42_write); + SetWriteHandler(0x6000,0xffff,Mapper42_write); SetReadHandler(0x6000,0x7fff,CartBR); MapStateRestore=Mapper42_StateRestore; MapIRQHook=Mapper42IRQ;