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:
parent
82add52a52
commit
e08b2388bf
|
@ -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);
|
||||
}
|
|
@ -22,154 +22,129 @@
|
|||
|
||||
static uint8 chrlo[8], chrhi[8], prg[2], mirr, vlock;
|
||||
static int32 IRQa, IRQCount, IRQLatch, IRQClock;
|
||||
static uint8 *WRAM=NULL;
|
||||
static uint8 *WRAM = NULL;
|
||||
static uint32 WRAMSIZE;
|
||||
static uint8 *CHRRAM=NULL;
|
||||
static uint8 *CHRRAM = NULL;
|
||||
static uint32 CHRRAMSIZE;
|
||||
|
||||
static SFORMAT StateRegs[]=
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{chrlo, 8, "CHRL"},
|
||||
{chrhi, 8, "CHRH"},
|
||||
{prg, 2, "PRGR"},
|
||||
{&mirr, 1, "MIRR"},
|
||||
{&vlock, 1, "VLCK"},
|
||||
{&IRQa, 4, "IRQA"},
|
||||
{&IRQCount, 4, "IRQC"},
|
||||
{&IRQLatch, 4, "IRQL"},
|
||||
{&IRQClock, 4, "IRQK"},
|
||||
{0}
|
||||
{ chrlo, 8, "CHRL" },
|
||||
{ chrhi, 8, "CHRH" },
|
||||
{ prg, 2, "PRGR" },
|
||||
{ &mirr, 1, "MIRR" },
|
||||
{ &vlock, 1, "VLCK" },
|
||||
{ &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,prg[0]);
|
||||
setprg8(0xa000,prg[1]);
|
||||
setprg8(0xc000,~1);
|
||||
setprg8(0xe000,~0);
|
||||
for(i=0; i<8; i++)
|
||||
{
|
||||
uint32 chr = chrlo[i]|(chrhi[i]<<8);
|
||||
if(chrlo[i]==0xc8)
|
||||
{
|
||||
vlock = 0;
|
||||
continue;
|
||||
}
|
||||
else if(chrlo[i]==0x88)
|
||||
{
|
||||
vlock = 1;
|
||||
continue;
|
||||
}
|
||||
if(((chrlo[i]==4)||(chrlo[i]==5))&&!vlock)
|
||||
setchr1r(0x10,i<<10,chr&1);
|
||||
else
|
||||
setchr1(i<<10,chr);
|
||||
}
|
||||
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 void Sync(void) {
|
||||
uint8 i;
|
||||
setprg8r(0x10, 0x6000, 0);
|
||||
setprg8(0x8000, prg[0]);
|
||||
setprg8(0xa000, prg[1]);
|
||||
setprg8(0xc000, ~1);
|
||||
setprg8(0xe000, ~0);
|
||||
for (i = 0; i < 8; i++) {
|
||||
uint32 chr = chrlo[i] | (chrhi[i] << 8);
|
||||
if (chrlo[i] == 0xc8) {
|
||||
vlock = 0;
|
||||
continue;
|
||||
} else if (chrlo[i] == 0x88) {
|
||||
vlock = 1;
|
||||
continue;
|
||||
}
|
||||
if (((chrlo[i] == 4) || (chrlo[i] == 5)) && !vlock)
|
||||
setchr1r(0x10, i << 10, chr & 1);
|
||||
else
|
||||
setchr1(i << 10, chr);
|
||||
}
|
||||
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)
|
||||
{
|
||||
if((A>=0xB000)&&(A<=0xE00C))
|
||||
{
|
||||
uint8 ind=((((A&8)|(A>>8))>>3)+2)&7;
|
||||
uint8 sar=A&4;
|
||||
chrlo[ind]=(chrlo[ind]&(0xF0>>sar))|((V&0x0F)<<sar);
|
||||
if(A&4)
|
||||
chrhi[ind]=V>>4;
|
||||
Sync();
|
||||
}
|
||||
else
|
||||
switch(A)
|
||||
{
|
||||
case 0x8010: prg[0]=V; Sync(); break;
|
||||
case 0xA010: prg[1]=V; Sync(); 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 DECLFW(M253Write) {
|
||||
if ((A >= 0xB000) && (A <= 0xE00C)) {
|
||||
uint8 ind = ((((A & 8) | (A >> 8)) >> 3) + 2) & 7;
|
||||
uint8 sar = A & 4;
|
||||
chrlo[ind] = (chrlo[ind] & (0xF0 >> sar)) | ((V & 0x0F) << sar);
|
||||
if (A & 4)
|
||||
chrhi[ind] = V >> 4;
|
||||
Sync();
|
||||
} else
|
||||
switch (A) {
|
||||
case 0x8010: prg[0] = V; Sync(); break;
|
||||
case 0xA010: prg[1] = V; Sync(); break;
|
||||
case 0x9400: mirr = V & 3; 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 M253Power(void)
|
||||
{
|
||||
Sync();
|
||||
SetReadHandler(0x6000,0x7FFF,CartBR);
|
||||
SetWriteHandler(0x6000,0x7FFF,CartBW);
|
||||
SetReadHandler(0x8000,0xFFFF,CartBR);
|
||||
SetWriteHandler(0x8000,0xFFFF,M253Write);
|
||||
static void M253Power(void) {
|
||||
Sync();
|
||||
SetReadHandler(0x6000, 0x7FFF, CartBR);
|
||||
SetWriteHandler(0x6000, 0x7FFF, CartBW);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M253Write);
|
||||
}
|
||||
|
||||
static void M253Close(void)
|
||||
{
|
||||
if(WRAM)
|
||||
FCEU_gfree(WRAM);
|
||||
if(CHRRAM)
|
||||
FCEU_gfree(CHRRAM);
|
||||
WRAM=CHRRAM=NULL;
|
||||
static void M253Close(void) {
|
||||
if (WRAM)
|
||||
FCEU_gfree(WRAM);
|
||||
if (CHRRAM)
|
||||
FCEU_gfree(CHRRAM);
|
||||
WRAM = CHRRAM = NULL;
|
||||
}
|
||||
|
||||
static void M253IRQ(int cycles)
|
||||
{
|
||||
if(IRQa&2)
|
||||
{
|
||||
if((IRQClock+=cycles)>=0x72)
|
||||
{
|
||||
IRQClock -= 0x72;
|
||||
if(IRQCount==0xFF)
|
||||
{
|
||||
IRQCount = IRQLatch;
|
||||
IRQa = IRQa|((IRQa&1)<<1);
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
else
|
||||
IRQCount++;
|
||||
}
|
||||
}
|
||||
static void M253IRQ(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 StateRestore(int version)
|
||||
{
|
||||
Sync();
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper253_Init(CartInfo *info)
|
||||
{
|
||||
info->Power=M253Power;
|
||||
info->Close=M253Close;
|
||||
MapIRQHook=M253IRQ;
|
||||
GameStateRestore=StateRestore;
|
||||
void Mapper253_Init(CartInfo *info) {
|
||||
info->Power = M253Power;
|
||||
info->Close = M253Close;
|
||||
MapIRQHook = M253IRQ;
|
||||
GameStateRestore = StateRestore;
|
||||
|
||||
CHRRAMSIZE=4096;
|
||||
CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSIZE);
|
||||
SetupCartCHRMapping(0x10,CHRRAM,CHRRAMSIZE,1);
|
||||
AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM");
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ my_list = Split("""
|
|||
235.cpp
|
||||
244.cpp
|
||||
246.cpp
|
||||
252.cpp
|
||||
253.cpp
|
||||
32.cpp
|
||||
33.cpp
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* 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
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* City Fighter IV sith Sound VRC4 hacked
|
||||
*/
|
||||
|
@ -28,107 +28,97 @@ static uint8 prg_reg, prg_mode, mirr;
|
|||
static uint8 chr_reg[8];
|
||||
static writefunc pcmwrite;
|
||||
|
||||
static SFORMAT StateRegs[]=
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{&IRQCount, 4, "IRQC"},
|
||||
{&IRQa, 1, "IRQA"},
|
||||
{&prg_reg, 1, "PREG"},
|
||||
{&prg_mode, 1, "PMOD"},
|
||||
{&mirr, 1, "MIRR"},
|
||||
{chr_reg, 8, "CREG"},
|
||||
{0}
|
||||
{ &IRQCount, 4, "IRQC" },
|
||||
{ &IRQa, 1, "IRQA" },
|
||||
{ &prg_reg, 1, "PREG" },
|
||||
{ &prg_mode, 1, "PMOD" },
|
||||
{ &mirr, 1, "MIRR" },
|
||||
{ chr_reg, 8, "CREG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void)
|
||||
{
|
||||
setprg32(0x8000,prg_reg>>2);
|
||||
if(!prg_mode)
|
||||
setprg8(0xC000,prg_reg);
|
||||
int i;
|
||||
for(i=0; i<8; i++)
|
||||
setchr1(i<<10,chr_reg[i]);
|
||||
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 void Sync(void) {
|
||||
setprg32(0x8000, prg_reg >> 2);
|
||||
if (!prg_mode)
|
||||
setprg8(0xC000, prg_reg);
|
||||
int i;
|
||||
for (i = 0; i < 8; i++)
|
||||
setchr1(i << 10, chr_reg[i]);
|
||||
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(UNLCITYFIGHTWrite)
|
||||
{
|
||||
//FCEU_printf("%04x %02x",A,V);
|
||||
switch(A&0xF00C)
|
||||
{
|
||||
case 0x9000: prg_reg=V&0xC; mirr=V&3; break;
|
||||
case 0x9004:
|
||||
case 0x9008:
|
||||
case 0x900C:
|
||||
if(A&0x800)
|
||||
pcmwrite(0x4011,(V&0xf)<<3);
|
||||
else
|
||||
prg_reg=V&0xC;
|
||||
break;
|
||||
case 0xC000:
|
||||
case 0xC004:
|
||||
case 0xC008:
|
||||
case 0xC00C: prg_mode=V&1; /*FCEU_printf(" mode %d\n", prg_mode);*/ break;
|
||||
case 0xD000: chr_reg[0]=(chr_reg[0]&0xF0)|(V&0x0F); /*FCEU_printf(" chr0 lo\n");*/ break;
|
||||
case 0xD004: chr_reg[0]=(chr_reg[0]&0x0F)|(V<<4); /*FCEU_printf(" chr0 hi %x\n", chr_reg[0]);*/ break;
|
||||
case 0xD008: chr_reg[1]=(chr_reg[1]&0xF0)|(V&0x0F); /*FCEU_printf(" chr1 lo\n");*/ break;
|
||||
case 0xD00C: chr_reg[1]=(chr_reg[1]&0x0F)|(V<<4); /*FCEU_printf(" chr1 hi %x\n", chr_reg[1]);*/ break;
|
||||
case 0xA000: chr_reg[2]=(chr_reg[2]&0xF0)|(V&0x0F); /*FCEU_printf(" chr2 lo\n");*/ break;
|
||||
case 0xA004: chr_reg[2]=(chr_reg[2]&0x0F)|(V<<4); /*FCEU_printf(" chr2 hi %x\n", chr_reg[2]);*/ break;
|
||||
case 0xA008: chr_reg[3]=(chr_reg[3]&0xF0)|(V&0x0F); /*FCEU_printf(" chr3 lo\n");*/ break;
|
||||
case 0xA00C: chr_reg[3]=(chr_reg[3]&0x0F)|(V<<4); /*FCEU_printf(" chr3 hi %x\n", chr_reg[3]);*/ break;
|
||||
case 0xB000: chr_reg[4]=(chr_reg[4]&0xF0)|(V&0x0F); /*FCEU_printf(" chr4 lo\n");*/ break;
|
||||
case 0xB004: chr_reg[4]=(chr_reg[4]&0x0F)|(V<<4); /*FCEU_printf(" chr4 hi %x\n", chr_reg[4]);*/ break;
|
||||
case 0xB008: chr_reg[5]=(chr_reg[5]&0xF0)|(V&0x0F); /*FCEU_printf(" chr5 lo\n");*/ break;
|
||||
case 0xB00C: chr_reg[5]=(chr_reg[5]&0x0F)|(V<<4); /*FCEU_printf(" chr5 hi %x\n", chr_reg[5]);*/ break;
|
||||
case 0xE000: chr_reg[6]=(chr_reg[6]&0xF0)|(V&0x0F); /*FCEU_printf(" chr6 lo\n");*/ break;
|
||||
case 0xE004: chr_reg[6]=(chr_reg[6]&0x0F)|(V<<4); /*FCEU_printf(" chr6 hi %x\n", chr_reg[6]);*/ break;
|
||||
case 0xE008: chr_reg[7]=(chr_reg[7]&0xF0)|(V&0x0F); /*FCEU_printf(" chr7 lo\n");*/ break;
|
||||
case 0xE00C: chr_reg[7]=(chr_reg[7]&0x0F)|(V<<4); /*FCEU_printf(" chr7 hi %x\n", chr_reg[7]);*/ break;
|
||||
case 0xF000: IRQCount=((IRQCount&0x1E0)|((V&0xF)<<1)); break;
|
||||
case 0xF004: IRQCount=((IRQCount&0x1E)|((V&0xF)<<5)); break;
|
||||
case 0xF008: IRQa=V&2; X6502_IRQEnd(FCEU_IQEXT); break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
Sync();
|
||||
static DECLFW(UNLCITYFIGHTWrite) {
|
||||
//FCEU_printf("%04x %02x",A,V);
|
||||
switch (A & 0xF00C) {
|
||||
case 0x9000: prg_reg = V & 0xC; mirr = V & 3; break;
|
||||
case 0x9004:
|
||||
case 0x9008:
|
||||
case 0x900C:
|
||||
if (A & 0x800)
|
||||
pcmwrite(0x4011, (V & 0xf) << 3);
|
||||
else
|
||||
prg_reg = V & 0xC;
|
||||
break;
|
||||
case 0xC000:
|
||||
case 0xC004:
|
||||
case 0xC008:
|
||||
case 0xC00C: prg_mode = V & 1; break;
|
||||
case 0xD000: chr_reg[0] = (chr_reg[0] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xD004: chr_reg[0] = (chr_reg[0] & 0x0F) | (V << 4); break;
|
||||
case 0xD008: chr_reg[1] = (chr_reg[1] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xD00C: chr_reg[1] = (chr_reg[1] & 0x0F) | (V << 4); break;
|
||||
case 0xA000: chr_reg[2] = (chr_reg[2] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xA004: chr_reg[2] = (chr_reg[2] & 0x0F) | (V << 4); break;
|
||||
case 0xA008: chr_reg[3] = (chr_reg[3] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xA00C: chr_reg[3] = (chr_reg[3] & 0x0F) | (V << 4); break;
|
||||
case 0xB000: chr_reg[4] = (chr_reg[4] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xB004: chr_reg[4] = (chr_reg[4] & 0x0F) | (V << 4); break;
|
||||
case 0xB008: chr_reg[5] = (chr_reg[5] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xB00C: chr_reg[5] = (chr_reg[5] & 0x0F) | (V << 4); break;
|
||||
case 0xE000: chr_reg[6] = (chr_reg[6] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xE004: chr_reg[6] = (chr_reg[6] & 0x0F) | (V << 4); break;
|
||||
case 0xE008: chr_reg[7] = (chr_reg[7] & 0xF0) | (V & 0x0F); break;
|
||||
case 0xE00C: chr_reg[7] = (chr_reg[7] & 0x0F) | (V << 4); break;
|
||||
case 0xF000: IRQCount = ((IRQCount & 0x1E0) | ((V & 0xF) << 1)); break;
|
||||
case 0xF004: IRQCount = ((IRQCount & 0x1E) | ((V & 0xF) << 5)); break;
|
||||
case 0xF008: IRQa = V & 2; X6502_IRQEnd(FCEU_IQEXT); break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void UNLCITYFIGHTIRQ(int a)
|
||||
{
|
||||
if(IRQa)
|
||||
{
|
||||
IRQCount-=a;
|
||||
if(IRQCount<=0)
|
||||
{
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
static void UNLCITYFIGHTIRQ(int a) {
|
||||
if (IRQa) {
|
||||
IRQCount -= a;
|
||||
if (IRQCount <= 0) {
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void UNLCITYFIGHTPower(void)
|
||||
{
|
||||
prg_reg = 0;
|
||||
Sync();
|
||||
pcmwrite=GetWriteHandler(0x4011);
|
||||
SetReadHandler(0x8000,0xFFFF,CartBR);
|
||||
SetWriteHandler(0x8000,0xFFFF,UNLCITYFIGHTWrite);
|
||||
static void UNLCITYFIGHTPower(void) {
|
||||
prg_reg = 0;
|
||||
Sync();
|
||||
pcmwrite = GetWriteHandler(0x4011);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, UNLCITYFIGHTWrite);
|
||||
}
|
||||
|
||||
static void StateRestore(int version)
|
||||
{
|
||||
Sync();
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void UNLCITYFIGHT_Init(CartInfo *info)
|
||||
{
|
||||
info->Power=UNLCITYFIGHTPower;
|
||||
MapIRQHook=UNLCITYFIGHTIRQ;
|
||||
GameStateRestore=StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
void UNLCITYFIGHT_Init(CartInfo *info) {
|
||||
info->Power = UNLCITYFIGHTPower;
|
||||
MapIRQHook = UNLCITYFIGHTIRQ;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ static DECLFW(VRC24Write) {
|
|||
chrreg[i] &= (0xF0) >> nibble;
|
||||
chrreg[i] |= (V & 0xF) << 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();
|
||||
} else
|
||||
|
@ -128,13 +128,13 @@ static DECLFW(VRC24Write) {
|
|||
}
|
||||
|
||||
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
|
||||
VRC24Write(A, V);
|
||||
}
|
||||
|
||||
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
|
||||
// we never know if it will not work for something else lol
|
||||
}
|
||||
|
|
512
src/ines.cpp
512
src/ines.cpp
|
@ -523,262 +523,262 @@ typedef struct {
|
|||
} BMAPPINGLocal;
|
||||
|
||||
static BMAPPINGLocal bmap[] = {
|
||||
{"NROM", 0, NROM_Init},
|
||||
{"MMC1", 1, Mapper1_Init},
|
||||
{"UNROM", 2, UNROM_Init},
|
||||
{"CNROM", 3, CNROM_Init},
|
||||
{"MMC3", 4, Mapper4_Init},
|
||||
{"MMC5", 5, Mapper5_Init},
|
||||
// {"", 6, Mapper6_Init},
|
||||
{"ANROM", 7, ANROM_Init},
|
||||
{"", 8, Mapper8_Init}, // Nogaems, it's worthless
|
||||
// {"", 9, Mapper9_Init},
|
||||
// {"", 10, Mapper10_Init},
|
||||
{"Color Dreams", 11, Mapper11_Init},
|
||||
{"", 12, Mapper12_Init},
|
||||
{"CPROM", 13, CPROM_Init},
|
||||
// {"", 14, Mapper14_Init},
|
||||
{"100-in-1", 15, Mapper15_Init},
|
||||
{"Bandai", 16, Mapper16_Init},
|
||||
{"", 17, Mapper17_Init},
|
||||
{"", 18, Mapper18_Init},
|
||||
{"Namcot 106", 19, Mapper19_Init},
|
||||
// {"", 20, Mapper20_Init},
|
||||
{"Konami VRC2/VRC4", 21, Mapper21_Init},
|
||||
{"Konami VRC2/VRC4", 22, Mapper22_Init},
|
||||
{"Konami VRC2/VRC4", 23, Mapper23_Init},
|
||||
// {"", 24, Mapper24_Init},
|
||||
{"Konami VRC2/VRC4", 25, Mapper25_Init},
|
||||
// {"", 26, Mapper26_Init},
|
||||
// {"", 27, Mapper27_Init}, // Deprecated, dupe for VRC2/VRC4 mapper
|
||||
// {"", 28, Mapper28_Init},
|
||||
// {"", 29, Mapper29_Init},
|
||||
// {"", 30, Mapper30_Init},
|
||||
// {"", 31, Mapper31_Init},
|
||||
{"IREM G-101", 32, Mapper32_Init},
|
||||
{"TC0190FMC/TC0350FMR", 33, Mapper33_Init},
|
||||
{"", 34, Mapper34_Init},
|
||||
{"Wario Land 2", 35, UNLSC127_Init}, // Wario Land 2
|
||||
{"TXC Policeman", 36, Mapper36_Init}, // TXC Policeman
|
||||
{"", 37, Mapper37_Init},
|
||||
{"Bit Corp.", 38, Mapper38_Init}, // Bit Corp. Crime Busters
|
||||
// {"", 39, Mapper39_Init},
|
||||
// {"", 40, Mapper40_Init},
|
||||
// {"", 41, Mapper41_Init},
|
||||
// {"", 42, Mapper42_Init},
|
||||
{"", 43, Mapper43_Init},
|
||||
{"", 44, Mapper44_Init},
|
||||
{"", 45, Mapper45_Init},
|
||||
// {"", 46, Mapper46_Init},
|
||||
{"", 47, Mapper47_Init},
|
||||
{"TAITO TCxxx", 48, Mapper48_Init},
|
||||
{"", 49, Mapper49_Init},
|
||||
// {"", 50, Mapper50_Init},
|
||||
// {"", 51, Mapper51_Init},
|
||||
{"", 52, Mapper52_Init},
|
||||
// {"", 53, Mapper53_Init},
|
||||
// {"", 54, Mapper54_Init},
|
||||
// {"", 55, Mapper55_Init},
|
||||
// {"", 56, Mapper56_Init},
|
||||
{"", 57, Mapper57_Init},
|
||||
{"", 58, BMCGK192_Init},
|
||||
{"", 59, Mapper59_Init}, // check this out
|
||||
{"", 60, BMCD1038_Init},
|
||||
// {"", 61, Mapper61_Init},
|
||||
// {"", 62, Mapper62_Init},
|
||||
// {"", 63, Mapper63_Init},
|
||||
// {"", 64, Mapper64_Init},
|
||||
// {"", 65, Mapper65_Init},
|
||||
{"MHOM", 66, MHROM_Init},
|
||||
// {"", 67, Mapper67_Init},
|
||||
{"Sunsoft Mapper #4", 68, Mapper68_Init},
|
||||
// {"", 69, Mapper69_Init},
|
||||
{"", 70, Mapper70_Init},
|
||||
// {"", 71, Mapper71_Init},
|
||||
// {"", 72, Mapper72_Init},
|
||||
// {"", 73, Mapper73_Init},
|
||||
{"", 74, Mapper74_Init},
|
||||
// {"", 75, Mapper75_Init},
|
||||
// {"", 76, Mapper76_Init},
|
||||
// {"", 77, Mapper77_Init},
|
||||
{"Irem 74HC161/32", 78, Mapper78_Init},
|
||||
// {"", 79, Mapper79_Init},
|
||||
// {"", 80, Mapper80_Init},
|
||||
// {"", 81, Mapper81_Init},
|
||||
{"", 82, Mapper82_Init},
|
||||
{"", 83, Mapper83_Init},
|
||||
// {"", 84, Mapper84_Init},
|
||||
// {"", 85, Mapper85_Init},
|
||||
{"", 86, Mapper86_Init},
|
||||
{"", 87, Mapper87_Init},
|
||||
{"", 88, Mapper88_Init},
|
||||
{"", 89, Mapper89_Init},
|
||||
{"", 90, Mapper90_Init},
|
||||
{"", 91, Mapper91_Init},
|
||||
{"", 92, Mapper92_Init},
|
||||
{"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init},
|
||||
{"", 94, Mapper94_Init},
|
||||
{"", 95, Mapper95_Init},
|
||||
{"", 96, Mapper96_Init},
|
||||
{"", 97, Mapper97_Init},
|
||||
// {"", 98, Mapper98_Init},
|
||||
{"", 99, Mapper99_Init},
|
||||
// {"", 100, Mapper100_Init},
|
||||
{"", 101, Mapper101_Init},
|
||||
// {"", 102, Mapper102_Init},
|
||||
{"", 103, Mapper103_Init},
|
||||
// {"", 104, Mapper104_Init},
|
||||
{"", 105, Mapper105_Init},
|
||||
{"", 106, Mapper106_Init},
|
||||
{"", 107, Mapper107_Init},
|
||||
{"", 108, Mapper108_Init},
|
||||
// {"", 109, Mapper109_Init},
|
||||
// {"", 110, Mapper110_Init},
|
||||
// {"", 111, Mapper111_Init},
|
||||
{"", 112, Mapper112_Init},
|
||||
{"", 113, Mapper113_Init},
|
||||
{"", 114, Mapper114_Init},
|
||||
{"", 115, Mapper115_Init},
|
||||
{"", 116, UNLSL12_Init},
|
||||
{"", 117, Mapper117_Init},
|
||||
{"TSKROM", 118, TKSROM_Init},
|
||||
{"", 119, Mapper119_Init},
|
||||
{"", 120, Mapper120_Init},
|
||||
{"", 121, Mapper121_Init},
|
||||
// {"", 122, Mapper122_Init},
|
||||
{"UNLH2288", 123, UNLH2288_Init},
|
||||
// {"", 124, Mapper124_Init},
|
||||
{"", 125, LH32_Init},
|
||||
// {"", 126, Mapper126_Init},
|
||||
// {"", 127, Mapper127_Init},
|
||||
// {"", 128, Mapper128_Init},
|
||||
// {"", 129, Mapper129_Init},
|
||||
// {"", 130, Mapper130_Init},
|
||||
// {"", 131, Mapper131_Init},
|
||||
{"UNL22211", 132, UNL22211_Init},
|
||||
{"SA72008", 133, SA72008_Init},
|
||||
{"", 134, Mapper134_Init},
|
||||
// {"", 135, Mapper135_Init},
|
||||
{"TCU02", 136, TCU02_Init},
|
||||
{"S8259D", 137, S8259D_Init},
|
||||
{"S8259B", 138, S8259B_Init},
|
||||
{"S8259C", 139, S8259C_Init},
|
||||
{"", 140, Mapper140_Init},
|
||||
{"S8259A", 141, S8259A_Init},
|
||||
{"UNLKS7032", 142, UNLKS7032_Init},
|
||||
{"TCA01", 143, TCA01_Init},
|
||||
{"", 144, Mapper144_Init},
|
||||
{"SA72007", 145, SA72007_Init},
|
||||
{"SA0161M", 146, SA0161M_Init},
|
||||
{"TCU01", 147, TCU01_Init},
|
||||
{"SA0037", 148, SA0037_Init},
|
||||
{"SA0036", 149, SA0036_Init},
|
||||
{"S74LS374N", 150, S74LS374N_Init},
|
||||
{"", 151, Mapper151_Init},
|
||||
{"", 152, Mapper152_Init},
|
||||
{"", 153, Mapper153_Init},
|
||||
{"", 154, Mapper154_Init},
|
||||
{"", 155, Mapper155_Init},
|
||||
{"", 156, Mapper156_Init},
|
||||
{"", 157, Mapper157_Init},
|
||||
// {"", 158, Mapper158_Init},
|
||||
// {"", 159, Mapper159_Init},
|
||||
{"SA009", 160, SA009_Init},
|
||||
// {"", 161, Mapper161_Init},
|
||||
{"", 162, UNLFS304_Init},
|
||||
{"", 163, Mapper163_Init},
|
||||
{"", 164, Mapper164_Init},
|
||||
{"", 165, Mapper165_Init},
|
||||
// {"", 166, Mapper166_Init},
|
||||
// {"", 167, Mapper167_Init},
|
||||
{"", 168, Mapper168_Init},
|
||||
// {"", 169, Mapper169_Init},
|
||||
{"", 170, Mapper170_Init},
|
||||
{"", 171, Mapper171_Init},
|
||||
{"", 172, Mapper172_Init},
|
||||
{"", 173, Mapper173_Init},
|
||||
// {"", 174, Mapper174_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.
|
||||
{"", 177, Mapper177_Init},
|
||||
{"", 178, Mapper178_Init},
|
||||
// {"", 179, Mapper179_Init},
|
||||
{"", 180, Mapper180_Init},
|
||||
{"", 181, Mapper181_Init},
|
||||
// {"", 182, Mapper182_Init}, // Removed
|
||||
{"", 183, Mapper183_Init},
|
||||
{"", 184, Mapper184_Init},
|
||||
{"", 185, Mapper185_Init},
|
||||
{"", 186, Mapper186_Init},
|
||||
{"", 187, Mapper187_Init},
|
||||
{"", 188, Mapper188_Init},
|
||||
{"", 189, Mapper189_Init},
|
||||
// {"", 190, Mapper190_Init},
|
||||
{"", 191, Mapper191_Init},
|
||||
{"", 192, Mapper192_Init},
|
||||
{"", 193, Mapper193_Init},
|
||||
{"", 194, Mapper194_Init},
|
||||
{"", 195, Mapper195_Init},
|
||||
{"", 196, Mapper196_Init},
|
||||
{"", 197, Mapper197_Init},
|
||||
{"", 198, Mapper198_Init},
|
||||
{"", 199, Mapper199_Init},
|
||||
{"", 200, Mapper200_Init},
|
||||
{"", 201, Mapper201_Init},
|
||||
{"", 202, Mapper202_Init},
|
||||
{"", 203, Mapper203_Init},
|
||||
{"", 204, Mapper204_Init},
|
||||
{"", 205, Mapper205_Init},
|
||||
{"DEIROM", 206, DEIROM_Init},
|
||||
// {"", 207, Mapper207_Init},
|
||||
{"", 208, Mapper208_Init},
|
||||
{"", 209, Mapper209_Init},
|
||||
{"", 210, Mapper210_Init},
|
||||
{"", 211, Mapper211_Init},
|
||||
{"", 212, Mapper212_Init},
|
||||
{"", 213, Mapper213_Init},
|
||||
{"", 214, Mapper214_Init},
|
||||
{"", 215, UNL8237_Init},
|
||||
{"", 216, Mapper216_Init},
|
||||
// {"", 217, UNL8237A_Init},
|
||||
// {"", 218, Mapper218_Init},
|
||||
{"UNLA9746", 219, UNLA9746_Init},
|
||||
{"Debug Mapper", 220, UNLKS7057_Init}, // DEBUG mapper
|
||||
{"UNLN625092", 221, UNLN625092_Init},
|
||||
{"", 222, Mapper222_Init},
|
||||
// {"", 223, Mapper223_Init},
|
||||
// {"", 224, Mapper224_Init},
|
||||
{"", 225, Mapper225_Init},
|
||||
{"BMC 22+20-in-1", 226, Mapper226_Init},
|
||||
{"", 227, Mapper227_Init},
|
||||
{"", 228, Mapper228_Init},
|
||||
{"", 229, Mapper229_Init},
|
||||
{"BMC 22-in-1+Contra", 230, Mapper230_Init},
|
||||
{"", 231, Mapper231_Init},
|
||||
{"BMC QUATTRO", 232, Mapper232_Init},
|
||||
{"BMC 22+20-in-1 RST", 233, Mapper233_Init},
|
||||
{"BMC MAXI", 234, Mapper234_Init},
|
||||
{"", 235, Mapper235_Init},
|
||||
// {"", 236, Mapper236_Init},
|
||||
// {"", 237, Mapper237_Init},
|
||||
{"UNL6035052", 238, UNL6035052_Init},
|
||||
// {"", 239, Mapper239_Init},
|
||||
{"", 240, Mapper240_Init},
|
||||
{"", 241, Mapper241_Init},
|
||||
{"", 242, Mapper242_Init},
|
||||
{"S74LS374NA", 243, S74LS374NA_Init},
|
||||
{"DECATHLON", 244, Mapper244_Init},
|
||||
{"", 245, Mapper245_Init},
|
||||
{"FONG SHEN BANG", 246, Mapper246_Init},
|
||||
// {"", 247, Mapper247_Init},
|
||||
// {"", 248, Mapper248_Init},
|
||||
{"", 249, Mapper249_Init},
|
||||
{"", 250, Mapper250_Init},
|
||||
// {"", 251, Mapper251_Init},
|
||||
// {"", 252, Mapper252_Init},
|
||||
{"", 253, Mapper253_Init},
|
||||
{"", 254, Mapper254_Init},
|
||||
// {"", 255, Mapper255_Init}, // doesn't have any good dump for this mapper
|
||||
{"NROM", 0, NROM_Init},
|
||||
{"MMC1", 1, Mapper1_Init},
|
||||
{"UNROM", 2, UNROM_Init},
|
||||
{"CNROM", 3, CNROM_Init},
|
||||
{"MMC3", 4, Mapper4_Init},
|
||||
{"MMC5", 5, Mapper5_Init},
|
||||
// {"", 6, Mapper6_Init},
|
||||
{"ANROM", 7, ANROM_Init},
|
||||
{"", 8, Mapper8_Init}, // Nogaems, it's worthless
|
||||
// {"", 9, Mapper9_Init},
|
||||
// {"", 10, Mapper10_Init},
|
||||
{"Color Dreams", 11, Mapper11_Init},
|
||||
{"", 12, Mapper12_Init},
|
||||
{"CPROM", 13, CPROM_Init},
|
||||
// {"", 14, Mapper14_Init},
|
||||
{"100-in-1", 15, Mapper15_Init},
|
||||
{"Bandai", 16, Mapper16_Init},
|
||||
{"", 17, Mapper17_Init},
|
||||
{"", 18, Mapper18_Init},
|
||||
{"Namcot 106", 19, Mapper19_Init},
|
||||
// {"", 20, Mapper20_Init},
|
||||
{"Konami VRC2/VRC4", 21, Mapper21_Init},
|
||||
{"Konami VRC2/VRC4", 22, Mapper22_Init},
|
||||
{"Konami VRC2/VRC4", 23, Mapper23_Init},
|
||||
// {"", 24, Mapper24_Init},
|
||||
{"Konami VRC2/VRC4", 25, Mapper25_Init},
|
||||
// {"", 26, Mapper26_Init},
|
||||
// {"", 27, Mapper27_Init}, // Deprecated, dupe for VRC2/VRC4 mapper
|
||||
// {"", 28, Mapper28_Init},
|
||||
// {"", 29, Mapper29_Init},
|
||||
// {"", 30, Mapper30_Init},
|
||||
// {"", 31, Mapper31_Init},
|
||||
{"IREM G-101", 32, Mapper32_Init},
|
||||
{"TC0190FMC/TC0350FMR", 33, Mapper33_Init},
|
||||
{"", 34, Mapper34_Init},
|
||||
{"Wario Land 2", 35, UNLSC127_Init},
|
||||
{"TXC Policeman", 36, Mapper36_Init},
|
||||
{"", 37, Mapper37_Init},
|
||||
{"Bit Corp.", 38, Mapper38_Init}, // Crime Busters
|
||||
// {"", 39, Mapper39_Init},
|
||||
// {"", 40, Mapper40_Init},
|
||||
// {"", 41, Mapper41_Init},
|
||||
// {"", 42, Mapper42_Init},
|
||||
{"", 43, Mapper43_Init},
|
||||
{"", 44, Mapper44_Init},
|
||||
{"", 45, Mapper45_Init},
|
||||
// {"", 46, Mapper46_Init},
|
||||
{"", 47, Mapper47_Init},
|
||||
{"TAITO TCxxx", 48, Mapper48_Init},
|
||||
{"", 49, Mapper49_Init},
|
||||
// {"", 50, Mapper50_Init},
|
||||
// {"", 51, Mapper51_Init},
|
||||
{"", 52, Mapper52_Init},
|
||||
// {"", 53, Mapper53_Init}, // iNES version of complex UNIF board, can't emulate properly as iNES
|
||||
// {"", 54, Mapper54_Init},
|
||||
// {"", 55, Mapper55_Init},
|
||||
// {"", 56, Mapper56_Init},
|
||||
{"", 57, Mapper57_Init},
|
||||
{"", 58, BMCGK192_Init},
|
||||
{"", 59, Mapper59_Init}, // Check this out
|
||||
{"", 60, BMCD1038_Init},
|
||||
// {"", 61, Mapper61_Init},
|
||||
// {"", 62, Mapper62_Init},
|
||||
// {"", 63, Mapper63_Init},
|
||||
// {"", 64, Mapper64_Init},
|
||||
// {"", 65, Mapper65_Init},
|
||||
{"MHOM", 66, MHROM_Init},
|
||||
// {"", 67, Mapper67_Init},
|
||||
{"Sunsoft Mapper #4", 68, Mapper68_Init},
|
||||
// {"", 69, Mapper69_Init},
|
||||
{"", 70, Mapper70_Init},
|
||||
// {"", 71, Mapper71_Init},
|
||||
// {"", 72, Mapper72_Init},
|
||||
// {"", 73, Mapper73_Init},
|
||||
{"", 74, Mapper74_Init},
|
||||
// {"", 75, Mapper75_Init},
|
||||
// {"", 76, Mapper76_Init},
|
||||
// {"", 77, Mapper77_Init},
|
||||
{"Irem 74HC161/32", 78, Mapper78_Init},
|
||||
// {"", 79, Mapper79_Init},
|
||||
// {"", 80, Mapper80_Init},
|
||||
// {"", 81, Mapper81_Init},
|
||||
{"", 82, Mapper82_Init},
|
||||
{"", 83, Mapper83_Init},
|
||||
// {"", 84, Mapper84_Init},
|
||||
// {"", 85, Mapper85_Init},
|
||||
{"", 86, Mapper86_Init},
|
||||
{"", 87, Mapper87_Init},
|
||||
{"", 88, Mapper88_Init},
|
||||
{"", 89, Mapper89_Init},
|
||||
{"", 90, Mapper90_Init},
|
||||
{"", 91, Mapper91_Init},
|
||||
{"", 92, Mapper92_Init},
|
||||
{"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init},
|
||||
{"", 94, Mapper94_Init},
|
||||
{"", 95, Mapper95_Init},
|
||||
{"", 96, Mapper96_Init},
|
||||
{"", 97, Mapper97_Init},
|
||||
// {"", 98, Mapper98_Init},
|
||||
{"", 99, Mapper99_Init},
|
||||
// {"", 100, Mapper100_Init},
|
||||
{"", 101, Mapper101_Init},
|
||||
// {"", 102, Mapper102_Init},
|
||||
{"", 103, Mapper103_Init},
|
||||
// {"", 104, Mapper104_Init},
|
||||
{"", 105, Mapper105_Init},
|
||||
{"", 106, Mapper106_Init},
|
||||
{"", 107, Mapper107_Init},
|
||||
{"", 108, Mapper108_Init},
|
||||
// {"", 109, Mapper109_Init},
|
||||
// {"", 110, Mapper110_Init},
|
||||
// {"", 111, Mapper111_Init},
|
||||
{"", 112, Mapper112_Init},
|
||||
{"", 113, Mapper113_Init},
|
||||
{"", 114, Mapper114_Init},
|
||||
{"", 115, Mapper115_Init},
|
||||
{"", 116, UNLSL12_Init},
|
||||
{"", 117, Mapper117_Init},
|
||||
{"TSKROM", 118, TKSROM_Init},
|
||||
{"", 119, Mapper119_Init},
|
||||
{"", 120, Mapper120_Init},
|
||||
{"", 121, Mapper121_Init},
|
||||
// {"", 122, Mapper122_Init},
|
||||
{"UNLH2288", 123, UNLH2288_Init},
|
||||
// {"", 124, Mapper124_Init},
|
||||
{"", 125, LH32_Init},
|
||||
// {"", 126, Mapper126_Init},
|
||||
// {"", 127, Mapper127_Init},
|
||||
// {"", 128, Mapper128_Init},
|
||||
// {"", 129, Mapper129_Init},
|
||||
// {"", 130, Mapper130_Init},
|
||||
// {"", 131, Mapper131_Init},
|
||||
{"UNL22211", 132, UNL22211_Init},
|
||||
{"SA72008", 133, SA72008_Init},
|
||||
{"", 134, Mapper134_Init},
|
||||
// {"", 135, Mapper135_Init},
|
||||
{"TCU02", 136, TCU02_Init},
|
||||
{"S8259D", 137, S8259D_Init},
|
||||
{"S8259B", 138, S8259B_Init},
|
||||
{"S8259C", 139, S8259C_Init},
|
||||
{"", 140, Mapper140_Init},
|
||||
{"S8259A", 141, S8259A_Init},
|
||||
{"UNLKS7032", 142, UNLKS7032_Init},
|
||||
{"TCA01", 143, TCA01_Init},
|
||||
{"", 144, Mapper144_Init},
|
||||
{"SA72007", 145, SA72007_Init},
|
||||
{"SA0161M", 146, SA0161M_Init},
|
||||
{"TCU01", 147, TCU01_Init},
|
||||
{"SA0037", 148, SA0037_Init},
|
||||
{"SA0036", 149, SA0036_Init},
|
||||
{"S74LS374N", 150, S74LS374N_Init},
|
||||
{"", 151, Mapper151_Init},
|
||||
{"", 152, Mapper152_Init},
|
||||
{"", 153, Mapper153_Init},
|
||||
{"", 154, Mapper154_Init},
|
||||
{"", 155, Mapper155_Init},
|
||||
{"", 156, Mapper156_Init},
|
||||
{"", 157, Mapper157_Init},
|
||||
// {"", 158, Mapper158_Init},
|
||||
// {"", 159, Mapper159_Init},
|
||||
{"SA009", 160, SA009_Init},
|
||||
// {"", 161, Mapper161_Init},
|
||||
{"", 162, UNLFS304_Init},
|
||||
{"", 163, Mapper163_Init},
|
||||
{"", 164, Mapper164_Init},
|
||||
{"", 165, Mapper165_Init},
|
||||
// {"", 166, Mapper166_Init},
|
||||
// {"", 167, Mapper167_Init},
|
||||
{"", 168, Mapper168_Init},
|
||||
// {"", 169, Mapper169_Init},
|
||||
{"", 170, Mapper170_Init},
|
||||
{"", 171, Mapper171_Init},
|
||||
{"", 172, Mapper172_Init},
|
||||
{"", 173, Mapper173_Init},
|
||||
// {"", 174, Mapper174_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.
|
||||
{"", 177, Mapper177_Init},
|
||||
{"", 178, Mapper178_Init},
|
||||
// {"", 179, Mapper179_Init},
|
||||
{"", 180, Mapper180_Init},
|
||||
{"", 181, Mapper181_Init},
|
||||
// {"", 182, Mapper182_Init}, // Deprecated, dupe
|
||||
{"", 183, Mapper183_Init},
|
||||
{"", 184, Mapper184_Init},
|
||||
{"", 185, Mapper185_Init},
|
||||
{"", 186, Mapper186_Init},
|
||||
{"", 187, Mapper187_Init},
|
||||
{"", 188, Mapper188_Init},
|
||||
{"", 189, Mapper189_Init},
|
||||
// {"", 190, Mapper190_Init},
|
||||
{"", 191, Mapper191_Init},
|
||||
{"", 192, Mapper192_Init},
|
||||
{"", 193, Mapper193_Init},
|
||||
{"", 194, Mapper194_Init},
|
||||
{"", 195, Mapper195_Init},
|
||||
{"", 196, Mapper196_Init},
|
||||
{"", 197, Mapper197_Init},
|
||||
{"", 198, Mapper198_Init},
|
||||
{"", 199, Mapper199_Init},
|
||||
{"", 200, Mapper200_Init},
|
||||
{"", 201, Mapper201_Init},
|
||||
{"", 202, Mapper202_Init},
|
||||
{"", 203, Mapper203_Init},
|
||||
{"", 204, Mapper204_Init},
|
||||
{"", 205, Mapper205_Init},
|
||||
{"DEIROM", 206, DEIROM_Init},
|
||||
// {"", 207, Mapper207_Init},
|
||||
{"", 208, Mapper208_Init},
|
||||
{"", 209, Mapper209_Init},
|
||||
{"", 210, Mapper210_Init},
|
||||
{"", 211, Mapper211_Init},
|
||||
{"", 212, Mapper212_Init},
|
||||
{"", 213, Mapper213_Init},
|
||||
{"", 214, Mapper214_Init},
|
||||
{"", 215, UNL8237_Init},
|
||||
{"", 216, Mapper216_Init},
|
||||
// {"", 217, UNL8237A_Init},
|
||||
// {"", 218, Mapper218_Init},
|
||||
{"UNLA9746", 219, UNLA9746_Init},
|
||||
{"Debug Mapper", 220, UNLKS7057_Init},
|
||||
{"UNLN625092", 221, UNLN625092_Init},
|
||||
{"", 222, Mapper222_Init},
|
||||
// {"", 223, Mapper223_Init},
|
||||
// {"", 224, Mapper224_Init},
|
||||
{"", 225, Mapper225_Init},
|
||||
{"BMC 22+20-in-1", 226, Mapper226_Init},
|
||||
{"", 227, Mapper227_Init},
|
||||
{"", 228, Mapper228_Init},
|
||||
{"", 229, Mapper229_Init},
|
||||
{"BMC 22-in-1+Contra", 230, Mapper230_Init},
|
||||
{"", 231, Mapper231_Init},
|
||||
{"BMC QUATTRO", 232, Mapper232_Init},
|
||||
{"BMC 22+20-in-1 RST", 233, Mapper233_Init},
|
||||
{"BMC MAXI", 234, Mapper234_Init},
|
||||
{"", 235, Mapper235_Init},
|
||||
// {"", 236, Mapper236_Init},
|
||||
// {"", 237, Mapper237_Init},
|
||||
{"UNL6035052", 238, UNL6035052_Init},
|
||||
// {"", 239, Mapper239_Init},
|
||||
{"", 240, Mapper240_Init},
|
||||
{"", 241, Mapper241_Init},
|
||||
{"", 242, Mapper242_Init},
|
||||
{"S74LS374NA", 243, S74LS374NA_Init},
|
||||
{"DECATHLON", 244, Mapper244_Init},
|
||||
{"", 245, Mapper245_Init},
|
||||
{"FONG SHEN BANG", 246, Mapper246_Init},
|
||||
// {"", 247, Mapper247_Init},
|
||||
// {"", 248, Mapper248_Init},
|
||||
{"", 249, Mapper249_Init},
|
||||
{"", 250, Mapper250_Init},
|
||||
// {"", 251, Mapper251_Init},
|
||||
{"SAN GUO ZHI PIRATE", 252, Mapper252_Init},
|
||||
{"DRAGON BALL PIRATE", 253, Mapper253_Init},
|
||||
{"", 254, Mapper254_Init},
|
||||
// {"", 255, Mapper255_Init}, // Doesn't have any good dump for this mapper
|
||||
{"", 0, NULL}
|
||||
};
|
||||
|
||||
|
|
|
@ -356,7 +356,7 @@ void Mapper245_init(void);
|
|||
void Mapper247_init(void);
|
||||
void Mapper249_init(void);
|
||||
void Mapper251_init(void);
|
||||
void Mapper252_init(void);
|
||||
//void Mapper252_init(void);
|
||||
//void Mapper253_init(void);
|
||||
//void Mapper255_init(void);
|
||||
|
||||
|
@ -507,6 +507,7 @@ void Mapper245_Init(CartInfo *);
|
|||
void Mapper246_Init(CartInfo *);
|
||||
void Mapper249_Init(CartInfo *);
|
||||
void Mapper250_Init(CartInfo *);
|
||||
void Mapper252_Init(CartInfo *);
|
||||
void Mapper253_Init(CartInfo *);
|
||||
void Mapper254_Init(CartInfo *);
|
||||
|
||||
|
|
|
@ -405,7 +405,8 @@ void X6502_Init(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;
|
||||
X6502_Reset();
|
||||
}
|
||||
|
|
|
@ -266,6 +266,7 @@
|
|||
<ClCompile Include="..\src\boards\235.cpp" />
|
||||
<ClCompile Include="..\src\boards\244.cpp" />
|
||||
<ClCompile Include="..\src\boards\246.cpp" />
|
||||
<ClCompile Include="..\src\boards\252.cpp" />
|
||||
<ClCompile Include="..\src\boards\253.cpp" />
|
||||
<ClCompile Include="..\src\boards\32.cpp" />
|
||||
<ClCompile Include="..\src\boards\33.cpp" />
|
||||
|
|
|
@ -961,6 +961,9 @@
|
|||
<ClCompile Include="..\src\boards\246.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\252.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\cart.h">
|
||||
|
|
Loading…
Reference in New Issue