mapper 252 added

stack pointer initial value changed, fixed pirate san guo zhi bootup (can't say if it correct for the core actually), but nothing else changed, except maybe tas features or something...
This commit is contained in:
CaH4e3 2012-10-29 16:20:37 +00:00
parent 82add52a52
commit e08b2388bf
10 changed files with 587 additions and 481 deletions

134
src/boards/252.cpp Normal file
View File

@ -0,0 +1,134 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2009 CaH4e3
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* 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
*/
#include "mapinc.h"
static uint8 creg[8], preg[2];
static int32 IRQa, IRQCount, IRQClock, IRQLatch;
static uint8 *WRAM = NULL;
static uint32 WRAMSIZE;
static uint8 *CHRRAM = NULL;
static uint32 CHRRAMSIZE;
static SFORMAT StateRegs[] =
{
{ creg, 8, "CREG" },
{ preg, 2, "PREG" },
{ &IRQa, 4, "IRQA" },
{ &IRQCount, 4, "IRQC" },
{ &IRQLatch, 4, "IRQL" },
{ &IRQClock, 4, "IRQK" },
{ 0 }
};
static void Sync(void) {
uint8 i;
setprg8r(0x10, 0x6000, 0);
setprg8(0x8000, preg[0]);
setprg8(0xa000, preg[1]);
setprg8(0xc000, ~1);
setprg8(0xe000, ~0);
for (i = 0; i < 8; i++)
if ((creg[i] == 6) || (creg[i] == 7))
setchr1r(0x10, i << 10, creg[i] & 1);
else
setchr1(i << 10, creg[i]);
}
static DECLFW(M252Write) {
if ((A >= 0xB000) && (A <= 0xEFFF)) {
uint8 ind = ((((A & 8) | (A >> 8)) >> 3) + 2) & 7;
uint8 sar = A & 4;
creg[ind] = (creg[ind] & (0xF0 >> sar)) | ((V & 0x0F) << sar);
Sync();
} else
switch (A & 0xF00C) {
case 0x8000:
case 0x8004:
case 0x8008:
case 0x800C: preg[0] = V; Sync(); break;
case 0xA000:
case 0xA004:
case 0xA008:
case 0xA00C: preg[1] = V; Sync(); break;
case 0xF000: X6502_IRQEnd(FCEU_IQEXT); IRQLatch &= 0xF0; IRQLatch |= V & 0xF; break;
case 0xF004: X6502_IRQEnd(FCEU_IQEXT); IRQLatch &= 0x0F; IRQLatch |= V << 4; break;
case 0xF008: X6502_IRQEnd(FCEU_IQEXT); IRQClock = 0; IRQCount = IRQLatch; IRQa = V & 2; break;
}
}
static void M252Power(void) {
Sync();
SetReadHandler(0x6000, 0x7FFF, CartBR);
SetWriteHandler(0x6000, 0x7FFF, CartBW);
SetReadHandler(0x8000, 0xFFFF, CartBR);
SetWriteHandler(0x8000, 0xFFFF, M252Write);
}
static void M252IRQ(int a) {
#define LCYCS 341
if (IRQa) {
IRQClock += a * 3;
if (IRQClock >= LCYCS) {
while (IRQClock >= LCYCS) {
IRQClock -= LCYCS;
IRQCount++;
if (IRQCount & 0x100) {
X6502_IRQBegin(FCEU_IQEXT);
IRQCount = IRQLatch;
}
}
}
}
}
static void M252Close(void) {
if (WRAM)
FCEU_gfree(WRAM);
if (CHRRAM)
FCEU_gfree(CHRRAM);
WRAM = CHRRAM = NULL;
}
static void StateRestore(int version) {
Sync();
}
void Mapper252_Init(CartInfo *info) {
info->Power = M252Power;
info->Close = M252Close;
MapIRQHook = M252IRQ;
CHRRAMSIZE = 2048;
CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE);
SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1);
AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM");
WRAMSIZE = 8192;
WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE);
SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1);
AddExState(WRAM, WRAMSIZE, 0, "WRAM");
if (info->battery) {
info->SaveGame[0] = WRAM;
info->SaveGameLen[0] = WRAMSIZE;
}
GameStateRestore = StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -22,154 +22,129 @@
static uint8 chrlo[8], chrhi[8], prg[2], mirr, vlock; static uint8 chrlo[8], chrhi[8], prg[2], mirr, vlock;
static int32 IRQa, IRQCount, IRQLatch, IRQClock; static int32 IRQa, IRQCount, IRQLatch, IRQClock;
static uint8 *WRAM=NULL; static uint8 *WRAM = NULL;
static uint32 WRAMSIZE; static uint32 WRAMSIZE;
static uint8 *CHRRAM=NULL; static uint8 *CHRRAM = NULL;
static uint32 CHRRAMSIZE; static uint32 CHRRAMSIZE;
static SFORMAT StateRegs[]= static SFORMAT StateRegs[] =
{ {
{chrlo, 8, "CHRL"}, { chrlo, 8, "CHRL" },
{chrhi, 8, "CHRH"}, { chrhi, 8, "CHRH" },
{prg, 2, "PRGR"}, { prg, 2, "PRGR" },
{&mirr, 1, "MIRR"}, { &mirr, 1, "MIRR" },
{&vlock, 1, "VLCK"}, { &vlock, 1, "VLCK" },
{&IRQa, 4, "IRQA"}, { &IRQa, 4, "IRQA" },
{&IRQCount, 4, "IRQC"}, { &IRQCount, 4, "IRQC" },
{&IRQLatch, 4, "IRQL"}, { &IRQLatch, 4, "IRQL" },
{&IRQClock, 4, "IRQK"}, { &IRQClock, 4, "IRQK" },
{0} { 0 }
}; };
static void Sync(void) static void Sync(void) {
{ uint8 i;
uint8 i; setprg8r(0x10, 0x6000, 0);
setprg8r(0x10,0x6000,0); setprg8(0x8000, prg[0]);
setprg8(0x8000,prg[0]); setprg8(0xa000, prg[1]);
setprg8(0xa000,prg[1]); setprg8(0xc000, ~1);
setprg8(0xc000,~1); setprg8(0xe000, ~0);
setprg8(0xe000,~0); for (i = 0; i < 8; i++) {
for(i=0; i<8; i++) uint32 chr = chrlo[i] | (chrhi[i] << 8);
{ if (chrlo[i] == 0xc8) {
uint32 chr = chrlo[i]|(chrhi[i]<<8); vlock = 0;
if(chrlo[i]==0xc8) continue;
{ } else if (chrlo[i] == 0x88) {
vlock = 0; vlock = 1;
continue; continue;
} }
else if(chrlo[i]==0x88) if (((chrlo[i] == 4) || (chrlo[i] == 5)) && !vlock)
{ setchr1r(0x10, i << 10, chr & 1);
vlock = 1; else
continue; setchr1(i << 10, chr);
} }
if(((chrlo[i]==4)||(chrlo[i]==5))&&!vlock) switch (mirr) {
setchr1r(0x10,i<<10,chr&1); case 0: setmirror(MI_V); break;
else case 1: setmirror(MI_H); break;
setchr1(i<<10,chr); case 2: setmirror(MI_0); break;
} case 3: setmirror(MI_1); break;
switch(mirr) }
{
case 0: setmirror(MI_V); break;
case 1: setmirror(MI_H); break;
case 2: setmirror(MI_0); break;
case 3: setmirror(MI_1); break;
}
} }
static DECLFW(M253Write) static DECLFW(M253Write) {
{ if ((A >= 0xB000) && (A <= 0xE00C)) {
if((A>=0xB000)&&(A<=0xE00C)) uint8 ind = ((((A & 8) | (A >> 8)) >> 3) + 2) & 7;
{ uint8 sar = A & 4;
uint8 ind=((((A&8)|(A>>8))>>3)+2)&7; chrlo[ind] = (chrlo[ind] & (0xF0 >> sar)) | ((V & 0x0F) << sar);
uint8 sar=A&4; if (A & 4)
chrlo[ind]=(chrlo[ind]&(0xF0>>sar))|((V&0x0F)<<sar); chrhi[ind] = V >> 4;
if(A&4) Sync();
chrhi[ind]=V>>4; } else
Sync(); switch (A) {
} case 0x8010: prg[0] = V; Sync(); break;
else case 0xA010: prg[1] = V; Sync(); break;
switch(A) case 0x9400: mirr = V & 3; Sync(); break;
{ case 0xF000: X6502_IRQEnd(FCEU_IQEXT); IRQLatch &= 0xF0; IRQLatch |= V & 0xF; break;
case 0x8010: prg[0]=V; Sync(); break; case 0xF004: X6502_IRQEnd(FCEU_IQEXT); IRQLatch &= 0x0F; IRQLatch |= V << 4; break;
case 0xA010: prg[1]=V; Sync(); break; case 0xF008: X6502_IRQEnd(FCEU_IQEXT); IRQClock = 0; IRQCount = IRQLatch; IRQa = V & 2;break;
case 0x9400: mirr=V&3; Sync(); break; }
case 0xF000: IRQLatch = (IRQLatch & 0xF0) | (V & 0x0F); break;
case 0xF004: IRQLatch = (IRQLatch & 0x0F) | (V << 4); break;
case 0xF008:
IRQa = V&3;
if(IRQa&2)
{
IRQCount = IRQLatch;
IRQClock = 0;
}
X6502_IRQEnd(FCEU_IQEXT);
break;
}
} }
static void M253Power(void) static void M253Power(void) {
{ Sync();
Sync(); SetReadHandler(0x6000, 0x7FFF, CartBR);
SetReadHandler(0x6000,0x7FFF,CartBR); SetWriteHandler(0x6000, 0x7FFF, CartBW);
SetWriteHandler(0x6000,0x7FFF,CartBW); SetReadHandler(0x8000, 0xFFFF, CartBR);
SetReadHandler(0x8000,0xFFFF,CartBR); SetWriteHandler(0x8000, 0xFFFF, M253Write);
SetWriteHandler(0x8000,0xFFFF,M253Write);
} }
static void M253Close(void) static void M253Close(void) {
{ if (WRAM)
if(WRAM) FCEU_gfree(WRAM);
FCEU_gfree(WRAM); if (CHRRAM)
if(CHRRAM) FCEU_gfree(CHRRAM);
FCEU_gfree(CHRRAM); WRAM = CHRRAM = NULL;
WRAM=CHRRAM=NULL;
} }
static void M253IRQ(int cycles) static void M253IRQ(int a) {
{ #define LCYCS 341
if(IRQa&2) if (IRQa) {
{ IRQClock += a * 3;
if((IRQClock+=cycles)>=0x72) if (IRQClock >= LCYCS) {
{ while (IRQClock >= LCYCS) {
IRQClock -= 0x72; IRQClock -= LCYCS;
if(IRQCount==0xFF) IRQCount++;
{ if (IRQCount & 0x100) {
IRQCount = IRQLatch; X6502_IRQBegin(FCEU_IQEXT);
IRQa = IRQa|((IRQa&1)<<1); IRQCount = IRQLatch;
X6502_IRQBegin(FCEU_IQEXT); }
} }
else }
IRQCount++; }
}
}
} }
static void StateRestore(int version) static void StateRestore(int version) {
{ Sync();
Sync();
} }
void Mapper253_Init(CartInfo *info) void Mapper253_Init(CartInfo *info) {
{ info->Power = M253Power;
info->Power=M253Power; info->Close = M253Close;
info->Close=M253Close; MapIRQHook = M253IRQ;
MapIRQHook=M253IRQ; GameStateRestore = StateRestore;
GameStateRestore=StateRestore;
CHRRAMSIZE=4096; CHRRAMSIZE = 2048;
CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSIZE); CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE);
SetupCartCHRMapping(0x10,CHRRAM,CHRRAMSIZE,1); SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1);
AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM"); AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM");
WRAMSIZE=8192; WRAMSIZE = 8192;
WRAM=(uint8*)FCEU_gmalloc(WRAMSIZE); WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE);
SetupCartPRGMapping(0x10,WRAM,WRAMSIZE,1); SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1);
AddExState(WRAM, WRAMSIZE, 0, "WRAM"); AddExState(WRAM, WRAMSIZE, 0, "WRAM");
if(info->battery) if (info->battery) {
{ info->SaveGame[0] = WRAM;
info->SaveGame[0]=WRAM; info->SaveGameLen[0] = WRAMSIZE;
info->SaveGameLen[0]=WRAMSIZE; }
}
AddExState(&StateRegs, ~0, 0, 0); AddExState(&StateRegs, ~0, 0, 0);
} }

View File

@ -39,6 +39,7 @@ my_list = Split("""
235.cpp 235.cpp
244.cpp 244.cpp
246.cpp 246.cpp
252.cpp
253.cpp 253.cpp
32.cpp 32.cpp
33.cpp 33.cpp

View File

@ -15,7 +15,7 @@
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* *
* City Fighter IV sith Sound VRC4 hacked * City Fighter IV sith Sound VRC4 hacked
*/ */
@ -28,107 +28,97 @@ static uint8 prg_reg, prg_mode, mirr;
static uint8 chr_reg[8]; static uint8 chr_reg[8];
static writefunc pcmwrite; static writefunc pcmwrite;
static SFORMAT StateRegs[]= static SFORMAT StateRegs[] =
{ {
{&IRQCount, 4, "IRQC"}, { &IRQCount, 4, "IRQC" },
{&IRQa, 1, "IRQA"}, { &IRQa, 1, "IRQA" },
{&prg_reg, 1, "PREG"}, { &prg_reg, 1, "PREG" },
{&prg_mode, 1, "PMOD"}, { &prg_mode, 1, "PMOD" },
{&mirr, 1, "MIRR"}, { &mirr, 1, "MIRR" },
{chr_reg, 8, "CREG"}, { chr_reg, 8, "CREG" },
{0} { 0 }
}; };
static void Sync(void) static void Sync(void) {
{ setprg32(0x8000, prg_reg >> 2);
setprg32(0x8000,prg_reg>>2); if (!prg_mode)
if(!prg_mode) setprg8(0xC000, prg_reg);
setprg8(0xC000,prg_reg); int i;
int i; for (i = 0; i < 8; i++)
for(i=0; i<8; i++) setchr1(i << 10, chr_reg[i]);
setchr1(i<<10,chr_reg[i]); switch (mirr) {
switch (mirr) case 0: setmirror(MI_V); break;
{ case 1: setmirror(MI_H); break;
case 0: setmirror(MI_V); break; case 2: setmirror(MI_0); break;
case 1: setmirror(MI_H); break; case 3: setmirror(MI_1); break;
case 2: setmirror(MI_0); break; }
case 3: setmirror(MI_1); break;
}
} }
static DECLFW(UNLCITYFIGHTWrite) static DECLFW(UNLCITYFIGHTWrite) {
{ //FCEU_printf("%04x %02x",A,V);
//FCEU_printf("%04x %02x",A,V); switch (A & 0xF00C) {
switch(A&0xF00C) case 0x9000: prg_reg = V & 0xC; mirr = V & 3; break;
{ case 0x9004:
case 0x9000: prg_reg=V&0xC; mirr=V&3; break; case 0x9008:
case 0x9004: case 0x900C:
case 0x9008: if (A & 0x800)
case 0x900C: pcmwrite(0x4011, (V & 0xf) << 3);
if(A&0x800) else
pcmwrite(0x4011,(V&0xf)<<3); prg_reg = V & 0xC;
else break;
prg_reg=V&0xC; case 0xC000:
break; case 0xC004:
case 0xC000: case 0xC008:
case 0xC004: case 0xC00C: prg_mode = V & 1; break;
case 0xC008: case 0xD000: chr_reg[0] = (chr_reg[0] & 0xF0) | (V & 0x0F); break;
case 0xC00C: prg_mode=V&1; /*FCEU_printf(" mode %d\n", prg_mode);*/ break; case 0xD004: chr_reg[0] = (chr_reg[0] & 0x0F) | (V << 4); break;
case 0xD000: chr_reg[0]=(chr_reg[0]&0xF0)|(V&0x0F); /*FCEU_printf(" chr0 lo\n");*/ break; case 0xD008: chr_reg[1] = (chr_reg[1] & 0xF0) | (V & 0x0F); break;
case 0xD004: chr_reg[0]=(chr_reg[0]&0x0F)|(V<<4); /*FCEU_printf(" chr0 hi %x\n", chr_reg[0]);*/ break; case 0xD00C: chr_reg[1] = (chr_reg[1] & 0x0F) | (V << 4); break;
case 0xD008: chr_reg[1]=(chr_reg[1]&0xF0)|(V&0x0F); /*FCEU_printf(" chr1 lo\n");*/ break; case 0xA000: chr_reg[2] = (chr_reg[2] & 0xF0) | (V & 0x0F); break;
case 0xD00C: chr_reg[1]=(chr_reg[1]&0x0F)|(V<<4); /*FCEU_printf(" chr1 hi %x\n", chr_reg[1]);*/ break; case 0xA004: chr_reg[2] = (chr_reg[2] & 0x0F) | (V << 4); break;
case 0xA000: chr_reg[2]=(chr_reg[2]&0xF0)|(V&0x0F); /*FCEU_printf(" chr2 lo\n");*/ break; case 0xA008: chr_reg[3] = (chr_reg[3] & 0xF0) | (V & 0x0F); break;
case 0xA004: chr_reg[2]=(chr_reg[2]&0x0F)|(V<<4); /*FCEU_printf(" chr2 hi %x\n", chr_reg[2]);*/ break; case 0xA00C: chr_reg[3] = (chr_reg[3] & 0x0F) | (V << 4); break;
case 0xA008: chr_reg[3]=(chr_reg[3]&0xF0)|(V&0x0F); /*FCEU_printf(" chr3 lo\n");*/ break; case 0xB000: chr_reg[4] = (chr_reg[4] & 0xF0) | (V & 0x0F); break;
case 0xA00C: chr_reg[3]=(chr_reg[3]&0x0F)|(V<<4); /*FCEU_printf(" chr3 hi %x\n", chr_reg[3]);*/ break; case 0xB004: chr_reg[4] = (chr_reg[4] & 0x0F) | (V << 4); break;
case 0xB000: chr_reg[4]=(chr_reg[4]&0xF0)|(V&0x0F); /*FCEU_printf(" chr4 lo\n");*/ break; case 0xB008: chr_reg[5] = (chr_reg[5] & 0xF0) | (V & 0x0F); break;
case 0xB004: chr_reg[4]=(chr_reg[4]&0x0F)|(V<<4); /*FCEU_printf(" chr4 hi %x\n", chr_reg[4]);*/ break; case 0xB00C: chr_reg[5] = (chr_reg[5] & 0x0F) | (V << 4); break;
case 0xB008: chr_reg[5]=(chr_reg[5]&0xF0)|(V&0x0F); /*FCEU_printf(" chr5 lo\n");*/ break; case 0xE000: chr_reg[6] = (chr_reg[6] & 0xF0) | (V & 0x0F); break;
case 0xB00C: chr_reg[5]=(chr_reg[5]&0x0F)|(V<<4); /*FCEU_printf(" chr5 hi %x\n", chr_reg[5]);*/ break; case 0xE004: chr_reg[6] = (chr_reg[6] & 0x0F) | (V << 4); break;
case 0xE000: chr_reg[6]=(chr_reg[6]&0xF0)|(V&0x0F); /*FCEU_printf(" chr6 lo\n");*/ break; case 0xE008: chr_reg[7] = (chr_reg[7] & 0xF0) | (V & 0x0F); break;
case 0xE004: chr_reg[6]=(chr_reg[6]&0x0F)|(V<<4); /*FCEU_printf(" chr6 hi %x\n", chr_reg[6]);*/ break; case 0xE00C: chr_reg[7] = (chr_reg[7] & 0x0F) | (V << 4); break;
case 0xE008: chr_reg[7]=(chr_reg[7]&0xF0)|(V&0x0F); /*FCEU_printf(" chr7 lo\n");*/ break; case 0xF000: IRQCount = ((IRQCount & 0x1E0) | ((V & 0xF) << 1)); break;
case 0xE00C: chr_reg[7]=(chr_reg[7]&0x0F)|(V<<4); /*FCEU_printf(" chr7 hi %x\n", chr_reg[7]);*/ break; case 0xF004: IRQCount = ((IRQCount & 0x1E) | ((V & 0xF) << 5)); break;
case 0xF000: IRQCount=((IRQCount&0x1E0)|((V&0xF)<<1)); break; case 0xF008: IRQa = V & 2; X6502_IRQEnd(FCEU_IQEXT); break;
case 0xF004: IRQCount=((IRQCount&0x1E)|((V&0xF)<<5)); break; default:
case 0xF008: IRQa=V&2; X6502_IRQEnd(FCEU_IQEXT); break; break;
default: }
break; Sync();
}
Sync();
} }
static void UNLCITYFIGHTIRQ(int a) static void UNLCITYFIGHTIRQ(int a) {
{ if (IRQa) {
if(IRQa) IRQCount -= a;
{ if (IRQCount <= 0) {
IRQCount-=a; X6502_IRQBegin(FCEU_IQEXT);
if(IRQCount<=0) }
{ }
X6502_IRQBegin(FCEU_IQEXT);
}
}
} }
static void UNLCITYFIGHTPower(void) static void UNLCITYFIGHTPower(void) {
{ prg_reg = 0;
prg_reg = 0; Sync();
Sync(); pcmwrite = GetWriteHandler(0x4011);
pcmwrite=GetWriteHandler(0x4011); SetReadHandler(0x8000, 0xFFFF, CartBR);
SetReadHandler(0x8000,0xFFFF,CartBR); SetWriteHandler(0x8000, 0xFFFF, UNLCITYFIGHTWrite);
SetWriteHandler(0x8000,0xFFFF,UNLCITYFIGHTWrite);
} }
static void StateRestore(int version) static void StateRestore(int version) {
{ Sync();
Sync();
} }
void UNLCITYFIGHT_Init(CartInfo *info) void UNLCITYFIGHT_Init(CartInfo *info) {
{ info->Power = UNLCITYFIGHTPower;
info->Power=UNLCITYFIGHTPower; MapIRQHook = UNLCITYFIGHTIRQ;
MapIRQHook=UNLCITYFIGHTIRQ; GameStateRestore = StateRestore;
GameStateRestore=StateRestore; AddExState(&StateRegs, ~0, 0, 0);
AddExState(&StateRegs, ~0, 0, 0);
} }

View File

@ -90,7 +90,7 @@ static DECLFW(VRC24Write) {
chrreg[i] &= (0xF0) >> nibble; chrreg[i] &= (0xF0) >> nibble;
chrreg[i] |= (V & 0xF) << nibble; chrreg[i] |= (V & 0xF) << nibble;
if(nibble) if(nibble)
chrhi[i] = (V & 0x10) << 4; // another one many in one feature from pirate carts chrhi[i] = (V & 0x10) << 4; // another one many in one feature from pirate carts
} }
Sync(); Sync();
} else } else
@ -128,13 +128,13 @@ static DECLFW(VRC24Write) {
} }
static DECLFW(M21Write) { static DECLFW(M21Write) {
A = (A & 0xF000) | ((A >> 1) & 0x3); // Ganbare Goemon Gaiden 2 - Tenka no Zaihou (J) [!] isn't mapper 21 actually, A = (A & 0xF000) | ((A >> 1) & 0x3); // Ganbare Goemon Gaiden 2 - Tenka no Zaihou (J) [!] isn't mapper 21 actually,
// it's mapper 23 by wirings // it's mapper 23 by wirings
VRC24Write(A, V); VRC24Write(A, V);
} }
static DECLFW(M22Write) { static DECLFW(M22Write) {
if (A == 0xC007) { // Ganbare Goemon Gaiden does strange things!!! at the end credits if (A == 0xC007) { // Ganbare Goemon Gaiden does strange things!!! at the end credits
weirdo = 8; // quick dirty hack, seems there is no other games with such PCB, so weirdo = 8; // quick dirty hack, seems there is no other games with such PCB, so
// we never know if it will not work for something else lol // we never know if it will not work for something else lol
} }

View File

@ -523,262 +523,262 @@ typedef struct {
} BMAPPINGLocal; } BMAPPINGLocal;
static BMAPPINGLocal bmap[] = { static BMAPPINGLocal bmap[] = {
{"NROM", 0, NROM_Init}, {"NROM", 0, NROM_Init},
{"MMC1", 1, Mapper1_Init}, {"MMC1", 1, Mapper1_Init},
{"UNROM", 2, UNROM_Init}, {"UNROM", 2, UNROM_Init},
{"CNROM", 3, CNROM_Init}, {"CNROM", 3, CNROM_Init},
{"MMC3", 4, Mapper4_Init}, {"MMC3", 4, Mapper4_Init},
{"MMC5", 5, Mapper5_Init}, {"MMC5", 5, Mapper5_Init},
// {"", 6, Mapper6_Init}, // {"", 6, Mapper6_Init},
{"ANROM", 7, ANROM_Init}, {"ANROM", 7, ANROM_Init},
{"", 8, Mapper8_Init}, // Nogaems, it's worthless {"", 8, Mapper8_Init}, // Nogaems, it's worthless
// {"", 9, Mapper9_Init}, // {"", 9, Mapper9_Init},
// {"", 10, Mapper10_Init}, // {"", 10, Mapper10_Init},
{"Color Dreams", 11, Mapper11_Init}, {"Color Dreams", 11, Mapper11_Init},
{"", 12, Mapper12_Init}, {"", 12, Mapper12_Init},
{"CPROM", 13, CPROM_Init}, {"CPROM", 13, CPROM_Init},
// {"", 14, Mapper14_Init}, // {"", 14, Mapper14_Init},
{"100-in-1", 15, Mapper15_Init}, {"100-in-1", 15, Mapper15_Init},
{"Bandai", 16, Mapper16_Init}, {"Bandai", 16, Mapper16_Init},
{"", 17, Mapper17_Init}, {"", 17, Mapper17_Init},
{"", 18, Mapper18_Init}, {"", 18, Mapper18_Init},
{"Namcot 106", 19, Mapper19_Init}, {"Namcot 106", 19, Mapper19_Init},
// {"", 20, Mapper20_Init}, // {"", 20, Mapper20_Init},
{"Konami VRC2/VRC4", 21, Mapper21_Init}, {"Konami VRC2/VRC4", 21, Mapper21_Init},
{"Konami VRC2/VRC4", 22, Mapper22_Init}, {"Konami VRC2/VRC4", 22, Mapper22_Init},
{"Konami VRC2/VRC4", 23, Mapper23_Init}, {"Konami VRC2/VRC4", 23, Mapper23_Init},
// {"", 24, Mapper24_Init}, // {"", 24, Mapper24_Init},
{"Konami VRC2/VRC4", 25, Mapper25_Init}, {"Konami VRC2/VRC4", 25, Mapper25_Init},
// {"", 26, Mapper26_Init}, // {"", 26, Mapper26_Init},
// {"", 27, Mapper27_Init}, // Deprecated, dupe for VRC2/VRC4 mapper // {"", 27, Mapper27_Init}, // Deprecated, dupe for VRC2/VRC4 mapper
// {"", 28, Mapper28_Init}, // {"", 28, Mapper28_Init},
// {"", 29, Mapper29_Init}, // {"", 29, Mapper29_Init},
// {"", 30, Mapper30_Init}, // {"", 30, Mapper30_Init},
// {"", 31, Mapper31_Init}, // {"", 31, Mapper31_Init},
{"IREM G-101", 32, Mapper32_Init}, {"IREM G-101", 32, Mapper32_Init},
{"TC0190FMC/TC0350FMR", 33, Mapper33_Init}, {"TC0190FMC/TC0350FMR", 33, Mapper33_Init},
{"", 34, Mapper34_Init}, {"", 34, Mapper34_Init},
{"Wario Land 2", 35, UNLSC127_Init}, // Wario Land 2 {"Wario Land 2", 35, UNLSC127_Init},
{"TXC Policeman", 36, Mapper36_Init}, // TXC Policeman {"TXC Policeman", 36, Mapper36_Init},
{"", 37, Mapper37_Init}, {"", 37, Mapper37_Init},
{"Bit Corp.", 38, Mapper38_Init}, // Bit Corp. Crime Busters {"Bit Corp.", 38, Mapper38_Init}, // Crime Busters
// {"", 39, Mapper39_Init}, // {"", 39, Mapper39_Init},
// {"", 40, Mapper40_Init}, // {"", 40, Mapper40_Init},
// {"", 41, Mapper41_Init}, // {"", 41, Mapper41_Init},
// {"", 42, Mapper42_Init}, // {"", 42, Mapper42_Init},
{"", 43, Mapper43_Init}, {"", 43, Mapper43_Init},
{"", 44, Mapper44_Init}, {"", 44, Mapper44_Init},
{"", 45, Mapper45_Init}, {"", 45, Mapper45_Init},
// {"", 46, Mapper46_Init}, // {"", 46, Mapper46_Init},
{"", 47, Mapper47_Init}, {"", 47, Mapper47_Init},
{"TAITO TCxxx", 48, Mapper48_Init}, {"TAITO TCxxx", 48, Mapper48_Init},
{"", 49, Mapper49_Init}, {"", 49, Mapper49_Init},
// {"", 50, Mapper50_Init}, // {"", 50, Mapper50_Init},
// {"", 51, Mapper51_Init}, // {"", 51, Mapper51_Init},
{"", 52, Mapper52_Init}, {"", 52, Mapper52_Init},
// {"", 53, Mapper53_Init}, // {"", 53, Mapper53_Init}, // iNES version of complex UNIF board, can't emulate properly as iNES
// {"", 54, Mapper54_Init}, // {"", 54, Mapper54_Init},
// {"", 55, Mapper55_Init}, // {"", 55, Mapper55_Init},
// {"", 56, Mapper56_Init}, // {"", 56, Mapper56_Init},
{"", 57, Mapper57_Init}, {"", 57, Mapper57_Init},
{"", 58, BMCGK192_Init}, {"", 58, BMCGK192_Init},
{"", 59, Mapper59_Init}, // check this out {"", 59, Mapper59_Init}, // Check this out
{"", 60, BMCD1038_Init}, {"", 60, BMCD1038_Init},
// {"", 61, Mapper61_Init}, // {"", 61, Mapper61_Init},
// {"", 62, Mapper62_Init}, // {"", 62, Mapper62_Init},
// {"", 63, Mapper63_Init}, // {"", 63, Mapper63_Init},
// {"", 64, Mapper64_Init}, // {"", 64, Mapper64_Init},
// {"", 65, Mapper65_Init}, // {"", 65, Mapper65_Init},
{"MHOM", 66, MHROM_Init}, {"MHOM", 66, MHROM_Init},
// {"", 67, Mapper67_Init}, // {"", 67, Mapper67_Init},
{"Sunsoft Mapper #4", 68, Mapper68_Init}, {"Sunsoft Mapper #4", 68, Mapper68_Init},
// {"", 69, Mapper69_Init}, // {"", 69, Mapper69_Init},
{"", 70, Mapper70_Init}, {"", 70, Mapper70_Init},
// {"", 71, Mapper71_Init}, // {"", 71, Mapper71_Init},
// {"", 72, Mapper72_Init}, // {"", 72, Mapper72_Init},
// {"", 73, Mapper73_Init}, // {"", 73, Mapper73_Init},
{"", 74, Mapper74_Init}, {"", 74, Mapper74_Init},
// {"", 75, Mapper75_Init}, // {"", 75, Mapper75_Init},
// {"", 76, Mapper76_Init}, // {"", 76, Mapper76_Init},
// {"", 77, Mapper77_Init}, // {"", 77, Mapper77_Init},
{"Irem 74HC161/32", 78, Mapper78_Init}, {"Irem 74HC161/32", 78, Mapper78_Init},
// {"", 79, Mapper79_Init}, // {"", 79, Mapper79_Init},
// {"", 80, Mapper80_Init}, // {"", 80, Mapper80_Init},
// {"", 81, Mapper81_Init}, // {"", 81, Mapper81_Init},
{"", 82, Mapper82_Init}, {"", 82, Mapper82_Init},
{"", 83, Mapper83_Init}, {"", 83, Mapper83_Init},
// {"", 84, Mapper84_Init}, // {"", 84, Mapper84_Init},
// {"", 85, Mapper85_Init}, // {"", 85, Mapper85_Init},
{"", 86, Mapper86_Init}, {"", 86, Mapper86_Init},
{"", 87, Mapper87_Init}, {"", 87, Mapper87_Init},
{"", 88, Mapper88_Init}, {"", 88, Mapper88_Init},
{"", 89, Mapper89_Init}, {"", 89, Mapper89_Init},
{"", 90, Mapper90_Init}, {"", 90, Mapper90_Init},
{"", 91, Mapper91_Init}, {"", 91, Mapper91_Init},
{"", 92, Mapper92_Init}, {"", 92, Mapper92_Init},
{"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init}, {"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init},
{"", 94, Mapper94_Init}, {"", 94, Mapper94_Init},
{"", 95, Mapper95_Init}, {"", 95, Mapper95_Init},
{"", 96, Mapper96_Init}, {"", 96, Mapper96_Init},
{"", 97, Mapper97_Init}, {"", 97, Mapper97_Init},
// {"", 98, Mapper98_Init}, // {"", 98, Mapper98_Init},
{"", 99, Mapper99_Init}, {"", 99, Mapper99_Init},
// {"", 100, Mapper100_Init}, // {"", 100, Mapper100_Init},
{"", 101, Mapper101_Init}, {"", 101, Mapper101_Init},
// {"", 102, Mapper102_Init}, // {"", 102, Mapper102_Init},
{"", 103, Mapper103_Init}, {"", 103, Mapper103_Init},
// {"", 104, Mapper104_Init}, // {"", 104, Mapper104_Init},
{"", 105, Mapper105_Init}, {"", 105, Mapper105_Init},
{"", 106, Mapper106_Init}, {"", 106, Mapper106_Init},
{"", 107, Mapper107_Init}, {"", 107, Mapper107_Init},
{"", 108, Mapper108_Init}, {"", 108, Mapper108_Init},
// {"", 109, Mapper109_Init}, // {"", 109, Mapper109_Init},
// {"", 110, Mapper110_Init}, // {"", 110, Mapper110_Init},
// {"", 111, Mapper111_Init}, // {"", 111, Mapper111_Init},
{"", 112, Mapper112_Init}, {"", 112, Mapper112_Init},
{"", 113, Mapper113_Init}, {"", 113, Mapper113_Init},
{"", 114, Mapper114_Init}, {"", 114, Mapper114_Init},
{"", 115, Mapper115_Init}, {"", 115, Mapper115_Init},
{"", 116, UNLSL12_Init}, {"", 116, UNLSL12_Init},
{"", 117, Mapper117_Init}, {"", 117, Mapper117_Init},
{"TSKROM", 118, TKSROM_Init}, {"TSKROM", 118, TKSROM_Init},
{"", 119, Mapper119_Init}, {"", 119, Mapper119_Init},
{"", 120, Mapper120_Init}, {"", 120, Mapper120_Init},
{"", 121, Mapper121_Init}, {"", 121, Mapper121_Init},
// {"", 122, Mapper122_Init}, // {"", 122, Mapper122_Init},
{"UNLH2288", 123, UNLH2288_Init}, {"UNLH2288", 123, UNLH2288_Init},
// {"", 124, Mapper124_Init}, // {"", 124, Mapper124_Init},
{"", 125, LH32_Init}, {"", 125, LH32_Init},
// {"", 126, Mapper126_Init}, // {"", 126, Mapper126_Init},
// {"", 127, Mapper127_Init}, // {"", 127, Mapper127_Init},
// {"", 128, Mapper128_Init}, // {"", 128, Mapper128_Init},
// {"", 129, Mapper129_Init}, // {"", 129, Mapper129_Init},
// {"", 130, Mapper130_Init}, // {"", 130, Mapper130_Init},
// {"", 131, Mapper131_Init}, // {"", 131, Mapper131_Init},
{"UNL22211", 132, UNL22211_Init}, {"UNL22211", 132, UNL22211_Init},
{"SA72008", 133, SA72008_Init}, {"SA72008", 133, SA72008_Init},
{"", 134, Mapper134_Init}, {"", 134, Mapper134_Init},
// {"", 135, Mapper135_Init}, // {"", 135, Mapper135_Init},
{"TCU02", 136, TCU02_Init}, {"TCU02", 136, TCU02_Init},
{"S8259D", 137, S8259D_Init}, {"S8259D", 137, S8259D_Init},
{"S8259B", 138, S8259B_Init}, {"S8259B", 138, S8259B_Init},
{"S8259C", 139, S8259C_Init}, {"S8259C", 139, S8259C_Init},
{"", 140, Mapper140_Init}, {"", 140, Mapper140_Init},
{"S8259A", 141, S8259A_Init}, {"S8259A", 141, S8259A_Init},
{"UNLKS7032", 142, UNLKS7032_Init}, {"UNLKS7032", 142, UNLKS7032_Init},
{"TCA01", 143, TCA01_Init}, {"TCA01", 143, TCA01_Init},
{"", 144, Mapper144_Init}, {"", 144, Mapper144_Init},
{"SA72007", 145, SA72007_Init}, {"SA72007", 145, SA72007_Init},
{"SA0161M", 146, SA0161M_Init}, {"SA0161M", 146, SA0161M_Init},
{"TCU01", 147, TCU01_Init}, {"TCU01", 147, TCU01_Init},
{"SA0037", 148, SA0037_Init}, {"SA0037", 148, SA0037_Init},
{"SA0036", 149, SA0036_Init}, {"SA0036", 149, SA0036_Init},
{"S74LS374N", 150, S74LS374N_Init}, {"S74LS374N", 150, S74LS374N_Init},
{"", 151, Mapper151_Init}, {"", 151, Mapper151_Init},
{"", 152, Mapper152_Init}, {"", 152, Mapper152_Init},
{"", 153, Mapper153_Init}, {"", 153, Mapper153_Init},
{"", 154, Mapper154_Init}, {"", 154, Mapper154_Init},
{"", 155, Mapper155_Init}, {"", 155, Mapper155_Init},
{"", 156, Mapper156_Init}, {"", 156, Mapper156_Init},
{"", 157, Mapper157_Init}, {"", 157, Mapper157_Init},
// {"", 158, Mapper158_Init}, // {"", 158, Mapper158_Init},
// {"", 159, Mapper159_Init}, // {"", 159, Mapper159_Init},
{"SA009", 160, SA009_Init}, {"SA009", 160, SA009_Init},
// {"", 161, Mapper161_Init}, // {"", 161, Mapper161_Init},
{"", 162, UNLFS304_Init}, {"", 162, UNLFS304_Init},
{"", 163, Mapper163_Init}, {"", 163, Mapper163_Init},
{"", 164, Mapper164_Init}, {"", 164, Mapper164_Init},
{"", 165, Mapper165_Init}, {"", 165, Mapper165_Init},
// {"", 166, Mapper166_Init}, // {"", 166, Mapper166_Init},
// {"", 167, Mapper167_Init}, // {"", 167, Mapper167_Init},
{"", 168, Mapper168_Init}, {"", 168, Mapper168_Init},
// {"", 169, Mapper169_Init}, // {"", 169, Mapper169_Init},
{"", 170, Mapper170_Init}, {"", 170, Mapper170_Init},
{"", 171, Mapper171_Init}, {"", 171, Mapper171_Init},
{"", 172, Mapper172_Init}, {"", 172, Mapper172_Init},
{"", 173, Mapper173_Init}, {"", 173, Mapper173_Init},
// {"", 174, Mapper174_Init}, // {"", 174, Mapper174_Init},
{"", 175, Mapper175_Init}, {"", 175, Mapper175_Init},
{"BMCFK23C", 176, BMCFK23C_Init}, //zero 26-may-2012 - well, i have some WXN junk games that use 176 for instance ????. i dont know what game uses this BMCFK23C as mapper 176. we'll have to make a note when we find it. {"BMCFK23C", 176, BMCFK23C_Init}, //zero 26-may-2012 - well, i have some WXN junk games that use 176 for instance ????. i dont know what game uses this BMCFK23C as mapper 176. we'll have to make a note when we find it.
{"", 177, Mapper177_Init}, {"", 177, Mapper177_Init},
{"", 178, Mapper178_Init}, {"", 178, Mapper178_Init},
// {"", 179, Mapper179_Init}, // {"", 179, Mapper179_Init},
{"", 180, Mapper180_Init}, {"", 180, Mapper180_Init},
{"", 181, Mapper181_Init}, {"", 181, Mapper181_Init},
// {"", 182, Mapper182_Init}, // Removed // {"", 182, Mapper182_Init}, // Deprecated, dupe
{"", 183, Mapper183_Init}, {"", 183, Mapper183_Init},
{"", 184, Mapper184_Init}, {"", 184, Mapper184_Init},
{"", 185, Mapper185_Init}, {"", 185, Mapper185_Init},
{"", 186, Mapper186_Init}, {"", 186, Mapper186_Init},
{"", 187, Mapper187_Init}, {"", 187, Mapper187_Init},
{"", 188, Mapper188_Init}, {"", 188, Mapper188_Init},
{"", 189, Mapper189_Init}, {"", 189, Mapper189_Init},
// {"", 190, Mapper190_Init}, // {"", 190, Mapper190_Init},
{"", 191, Mapper191_Init}, {"", 191, Mapper191_Init},
{"", 192, Mapper192_Init}, {"", 192, Mapper192_Init},
{"", 193, Mapper193_Init}, {"", 193, Mapper193_Init},
{"", 194, Mapper194_Init}, {"", 194, Mapper194_Init},
{"", 195, Mapper195_Init}, {"", 195, Mapper195_Init},
{"", 196, Mapper196_Init}, {"", 196, Mapper196_Init},
{"", 197, Mapper197_Init}, {"", 197, Mapper197_Init},
{"", 198, Mapper198_Init}, {"", 198, Mapper198_Init},
{"", 199, Mapper199_Init}, {"", 199, Mapper199_Init},
{"", 200, Mapper200_Init}, {"", 200, Mapper200_Init},
{"", 201, Mapper201_Init}, {"", 201, Mapper201_Init},
{"", 202, Mapper202_Init}, {"", 202, Mapper202_Init},
{"", 203, Mapper203_Init}, {"", 203, Mapper203_Init},
{"", 204, Mapper204_Init}, {"", 204, Mapper204_Init},
{"", 205, Mapper205_Init}, {"", 205, Mapper205_Init},
{"DEIROM", 206, DEIROM_Init}, {"DEIROM", 206, DEIROM_Init},
// {"", 207, Mapper207_Init}, // {"", 207, Mapper207_Init},
{"", 208, Mapper208_Init}, {"", 208, Mapper208_Init},
{"", 209, Mapper209_Init}, {"", 209, Mapper209_Init},
{"", 210, Mapper210_Init}, {"", 210, Mapper210_Init},
{"", 211, Mapper211_Init}, {"", 211, Mapper211_Init},
{"", 212, Mapper212_Init}, {"", 212, Mapper212_Init},
{"", 213, Mapper213_Init}, {"", 213, Mapper213_Init},
{"", 214, Mapper214_Init}, {"", 214, Mapper214_Init},
{"", 215, UNL8237_Init}, {"", 215, UNL8237_Init},
{"", 216, Mapper216_Init}, {"", 216, Mapper216_Init},
// {"", 217, UNL8237A_Init}, // {"", 217, UNL8237A_Init},
// {"", 218, Mapper218_Init}, // {"", 218, Mapper218_Init},
{"UNLA9746", 219, UNLA9746_Init}, {"UNLA9746", 219, UNLA9746_Init},
{"Debug Mapper", 220, UNLKS7057_Init}, // DEBUG mapper {"Debug Mapper", 220, UNLKS7057_Init},
{"UNLN625092", 221, UNLN625092_Init}, {"UNLN625092", 221, UNLN625092_Init},
{"", 222, Mapper222_Init}, {"", 222, Mapper222_Init},
// {"", 223, Mapper223_Init}, // {"", 223, Mapper223_Init},
// {"", 224, Mapper224_Init}, // {"", 224, Mapper224_Init},
{"", 225, Mapper225_Init}, {"", 225, Mapper225_Init},
{"BMC 22+20-in-1", 226, Mapper226_Init}, {"BMC 22+20-in-1", 226, Mapper226_Init},
{"", 227, Mapper227_Init}, {"", 227, Mapper227_Init},
{"", 228, Mapper228_Init}, {"", 228, Mapper228_Init},
{"", 229, Mapper229_Init}, {"", 229, Mapper229_Init},
{"BMC 22-in-1+Contra", 230, Mapper230_Init}, {"BMC 22-in-1+Contra", 230, Mapper230_Init},
{"", 231, Mapper231_Init}, {"", 231, Mapper231_Init},
{"BMC QUATTRO", 232, Mapper232_Init}, {"BMC QUATTRO", 232, Mapper232_Init},
{"BMC 22+20-in-1 RST", 233, Mapper233_Init}, {"BMC 22+20-in-1 RST", 233, Mapper233_Init},
{"BMC MAXI", 234, Mapper234_Init}, {"BMC MAXI", 234, Mapper234_Init},
{"", 235, Mapper235_Init}, {"", 235, Mapper235_Init},
// {"", 236, Mapper236_Init}, // {"", 236, Mapper236_Init},
// {"", 237, Mapper237_Init}, // {"", 237, Mapper237_Init},
{"UNL6035052", 238, UNL6035052_Init}, {"UNL6035052", 238, UNL6035052_Init},
// {"", 239, Mapper239_Init}, // {"", 239, Mapper239_Init},
{"", 240, Mapper240_Init}, {"", 240, Mapper240_Init},
{"", 241, Mapper241_Init}, {"", 241, Mapper241_Init},
{"", 242, Mapper242_Init}, {"", 242, Mapper242_Init},
{"S74LS374NA", 243, S74LS374NA_Init}, {"S74LS374NA", 243, S74LS374NA_Init},
{"DECATHLON", 244, Mapper244_Init}, {"DECATHLON", 244, Mapper244_Init},
{"", 245, Mapper245_Init}, {"", 245, Mapper245_Init},
{"FONG SHEN BANG", 246, Mapper246_Init}, {"FONG SHEN BANG", 246, Mapper246_Init},
// {"", 247, Mapper247_Init}, // {"", 247, Mapper247_Init},
// {"", 248, Mapper248_Init}, // {"", 248, Mapper248_Init},
{"", 249, Mapper249_Init}, {"", 249, Mapper249_Init},
{"", 250, Mapper250_Init}, {"", 250, Mapper250_Init},
// {"", 251, Mapper251_Init}, // {"", 251, Mapper251_Init},
// {"", 252, Mapper252_Init}, {"SAN GUO ZHI PIRATE", 252, Mapper252_Init},
{"", 253, Mapper253_Init}, {"DRAGON BALL PIRATE", 253, Mapper253_Init},
{"", 254, Mapper254_Init}, {"", 254, Mapper254_Init},
// {"", 255, Mapper255_Init}, // doesn't have any good dump for this mapper // {"", 255, Mapper255_Init}, // Doesn't have any good dump for this mapper
{"", 0, NULL} {"", 0, NULL}
}; };

View File

@ -356,7 +356,7 @@ void Mapper245_init(void);
void Mapper247_init(void); void Mapper247_init(void);
void Mapper249_init(void); void Mapper249_init(void);
void Mapper251_init(void); void Mapper251_init(void);
void Mapper252_init(void); //void Mapper252_init(void);
//void Mapper253_init(void); //void Mapper253_init(void);
//void Mapper255_init(void); //void Mapper255_init(void);
@ -507,6 +507,7 @@ void Mapper245_Init(CartInfo *);
void Mapper246_Init(CartInfo *); void Mapper246_Init(CartInfo *);
void Mapper249_Init(CartInfo *); void Mapper249_Init(CartInfo *);
void Mapper250_Init(CartInfo *); void Mapper250_Init(CartInfo *);
void Mapper252_Init(CartInfo *);
void Mapper253_Init(CartInfo *); void Mapper253_Init(CartInfo *);
void Mapper254_Init(CartInfo *); void Mapper254_Init(CartInfo *);

View File

@ -405,7 +405,8 @@ void X6502_Init(void)
void X6502_Power(void) void X6502_Power(void)
{ {
_count=_tcount=_IRQlow=_PC=_A=_X=_Y=_S=_P=_PI=_DB=_jammed=0; _count=_tcount=_IRQlow=_PC=_A=_X=_Y=_P=_PI=_DB=_jammed=0;
_S=0xFF;
timestamp=0; timestamp=0;
X6502_Reset(); X6502_Reset();
} }

View File

@ -266,6 +266,7 @@
<ClCompile Include="..\src\boards\235.cpp" /> <ClCompile Include="..\src\boards\235.cpp" />
<ClCompile Include="..\src\boards\244.cpp" /> <ClCompile Include="..\src\boards\244.cpp" />
<ClCompile Include="..\src\boards\246.cpp" /> <ClCompile Include="..\src\boards\246.cpp" />
<ClCompile Include="..\src\boards\252.cpp" />
<ClCompile Include="..\src\boards\253.cpp" /> <ClCompile Include="..\src\boards\253.cpp" />
<ClCompile Include="..\src\boards\32.cpp" /> <ClCompile Include="..\src\boards\32.cpp" />
<ClCompile Include="..\src\boards\33.cpp" /> <ClCompile Include="..\src\boards\33.cpp" />

View File

@ -961,6 +961,9 @@
<ClCompile Include="..\src\boards\246.cpp"> <ClCompile Include="..\src\boards\246.cpp">
<Filter>boards</Filter> <Filter>boards</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\boards\252.cpp">
<Filter>boards</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\src\cart.h"> <ClInclude Include="..\src\cart.h">