X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=boards%2F23.c;fp=boards%2F23.c;h=5e596fc353e24959feaab687b3bf1b0357ab9201;hp=8760d505ff40338f0cca81d765431c395776c857;hb=43725da7349c85fa13e828fdbf20cc7ac8d298d6;hpb=386f5371eb984fb9c2860c83e740890a75cd45c1 diff --git a/boards/23.c b/boards/23.c index 8760d50..5e596fc 100644 --- a/boards/23.c +++ b/boards/23.c @@ -15,7 +15,10 @@ * * 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 + * + * VRC-2/VRC-4 Konami + * VRC-4 Pirate */ #include "mapinc.h" @@ -33,13 +36,13 @@ static uint32 WRAMSIZE; static SFORMAT StateRegs[]= { - {prgreg, 2, "PRGREGS"}, - {chrreg, 8, "CHRREGS"}, - {®cmd, 1, "REGCMD"}, - {&irqcmd, 1, "IRQCMD"}, + {prgreg, 2, "PREG"}, + {chrreg, 8, "CREG"}, + {®cmd, 1, "CMDR"}, + {&irqcmd, 1, "CMDI"}, {&mirr, 1, "MIRR"}, {&big_bank, 1, "BIGB"}, - {&IRQCount, 2, "IRCN"}, + {&IRQCount, 2, "IRQC"}, {&IRQLatch, 1, "IRQL"}, {&IRQa, 1, "IRQA"}, {0} @@ -87,7 +90,7 @@ static DECLFW(M23Write) if(UNIFchrrama) big_bank=(V&8)<<2; // my personally many-in-one feature ;) just for support pirate cart 2-in-1 else - { + { uint16 i=((A>>1)&1)|((A-0xB000)>>11); chrreg[i]&=(0xF0)>>((A&1)<<2); chrreg[i]|=(V&0xF)<<((A&1)<<2); @@ -97,18 +100,18 @@ static DECLFW(M23Write) else switch(A&0xF003) { - case 0x8000: - case 0x8001: - case 0x8002: - case 0x8003: if(is23) - prgreg[0]=V&0x1F; - Sync(); + case 0x8000: + case 0x8001: + case 0x8002: + case 0x8003: if(is23) + prgreg[0]=V&0x1F; + Sync(); break; - case 0xA000: - case 0xA001: - case 0xA002: - case 0xA003: if(is23) - prgreg[1]=V&0x1F; + case 0xA000: + case 0xA001: + case 0xA002: + case 0xA003: if(is23) + prgreg[1]=V&0x1F; else { prgreg[0]=(V<<1)&0x1F; @@ -118,7 +121,7 @@ static DECLFW(M23Write) break; case 0x9000: case 0x9001: if(V!=0xFF) mirr=V; Sync(); break; - case 0x9002: + case 0x9002: case 0x9003: regcmd=V; Sync(); break; case 0xF000: X6502_IRQEnd(FCEU_IQEXT); IRQLatch&=0xF0; IRQLatch|=V&0xF; break; case 0xF001: X6502_IRQEnd(FCEU_IQEXT); IRQLatch&=0x0F; IRQLatch|=V<<4; break; @@ -129,7 +132,7 @@ static DECLFW(M23Write) static void M23Power(void) { - big_bank=0x20; + big_bank=0x20; Sync(); setprg8r(0x10,0x6000,0); // another many-in-one code, WRAM actually contain only WaiWaiWorld game SetReadHandler(0x6000,0x7FFF,CartBR); @@ -138,11 +141,7 @@ static void M23Power(void) SetWriteHandler(0x8000,0xFFFF,M23Write); } -static void M23Reset(void) -{ -} - -void M23IRQHook(int a) +void FP_FASTAPASS(1) M23IRQHook(int a) { #define LCYCS 341 if(IRQa) @@ -154,7 +153,7 @@ void M23IRQHook(int a) { acount-=LCYCS; IRQCount++; - if(IRQCount&0x100) + if(IRQCount&0x100) { X6502_IRQBegin(FCEU_IQEXT); IRQCount=IRQLatch;