almost done with conversion...
This commit is contained in:
parent
ee4a3ec8c9
commit
814f7e1b68
|
@ -46,7 +46,7 @@ static SFORMAT StateRegs[] =
|
|||
static void Sync(void) {
|
||||
setprg32(0x8000, (reg[2] >> 2) & 1);
|
||||
if (is172)
|
||||
setchr8((((cmd ^ reg[2]) >> 3) & 2) | (((cmd ^ reg[2]) >> 5) & 1)); // 1991 DU MA Racing probably CHR bank sequence is WRONG, so it is possible to
|
||||
setchr8((((cmd ^ reg[2]) >> 3) & 2) | (((cmd ^ reg[2]) >> 5) & 1)); // 1991 DU MA Racing probably CHR bank sequence is WRONG, so it is possible to
|
||||
// rearrange CHR banks for normal UNIF board and mapper 172 is unneccessary
|
||||
else
|
||||
setchr8(reg[2] & 3);
|
||||
|
|
|
@ -23,98 +23,87 @@
|
|||
|
||||
static uint16 latchea;
|
||||
static uint8 latched;
|
||||
static uint8 *WRAM=NULL;
|
||||
static uint8 *WRAM = NULL;
|
||||
static uint32 WRAMSIZE;
|
||||
static SFORMAT StateRegs[]=
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{&latchea, 2, "AREG"},
|
||||
{&latched, 1, "DREG"},
|
||||
{0}
|
||||
{ &latchea, 2, "AREG" },
|
||||
{ &latched, 1, "DREG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void)
|
||||
{
|
||||
int i;
|
||||
setmirror(((latched>>6)&1)^1);
|
||||
switch(latchea)
|
||||
{
|
||||
case 0x8000:
|
||||
for(i=0;i<4;i++)
|
||||
setprg8(0x8000+(i<<13),(((latched&0x7F)<<1)+i)^(latched>>7));
|
||||
break;
|
||||
case 0x8002:
|
||||
for(i=0;i<4;i++)
|
||||
setprg8(0x8000+(i<<13),((latched&0x7F)<<1)+(latched>>7));
|
||||
break;
|
||||
case 0x8001:
|
||||
case 0x8003:
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
unsigned int b;
|
||||
b=latched&0x7F;
|
||||
if(i>=2 && !(latchea&0x2))
|
||||
b=0x7F;
|
||||
setprg8(0x8000+(i<<13),(i&1)+((b<<1)^(latched>>7)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
static void Sync(void) {
|
||||
int i;
|
||||
setmirror(((latched >> 6) & 1) ^ 1);
|
||||
switch (latchea) {
|
||||
case 0x8000:
|
||||
for (i = 0; i < 4; i++)
|
||||
setprg8(0x8000 + (i << 13), (((latched & 0x7F) << 1) + i) ^ (latched >> 7));
|
||||
break;
|
||||
case 0x8002:
|
||||
for (i = 0; i < 4; i++)
|
||||
setprg8(0x8000 + (i << 13), ((latched & 0x7F) << 1) + (latched >> 7));
|
||||
break;
|
||||
case 0x8001:
|
||||
case 0x8003:
|
||||
for (i = 0; i < 4; i++) {
|
||||
unsigned int b;
|
||||
b = latched & 0x7F;
|
||||
if (i >= 2 && !(latchea & 0x2))
|
||||
b = 0x7F;
|
||||
setprg8(0x8000 + (i << 13), (i & 1) + ((b << 1) ^ (latched >> 7)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static DECLFW(M15Write)
|
||||
{
|
||||
latchea=A;
|
||||
latched=V;
|
||||
// printf("%04X = %02X\n",A,V);
|
||||
Sync();
|
||||
static DECLFW(M15Write) {
|
||||
latchea = A;
|
||||
latched = V;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void StateRestore(int version)
|
||||
{
|
||||
Sync();
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M15Power(void)
|
||||
{
|
||||
latchea=0x8000;
|
||||
latched=0;
|
||||
setchr8(0);
|
||||
setprg8r(0x10,0x6000,0);
|
||||
SetReadHandler(0x6000,0x7FFF,CartBR);
|
||||
SetWriteHandler(0x6000,0x7FFF,CartBW);
|
||||
SetWriteHandler(0x8000,0xFFFF,M15Write);
|
||||
SetReadHandler(0x8000,0xFFFF,CartBR);
|
||||
Sync();
|
||||
static void M15Power(void) {
|
||||
latchea = 0x8000;
|
||||
latched = 0;
|
||||
setchr8(0);
|
||||
setprg8r(0x10, 0x6000, 0);
|
||||
SetReadHandler(0x6000, 0x7FFF, CartBR);
|
||||
SetWriteHandler(0x6000, 0x7FFF, CartBW);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M15Write);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M15Reset(void)
|
||||
{
|
||||
latchea=0x8000;
|
||||
latched=0;
|
||||
Sync();
|
||||
static void M15Reset(void) {
|
||||
latchea = 0x8000;
|
||||
latched = 0;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M15Close(void)
|
||||
{
|
||||
if(WRAM)
|
||||
FCEU_gfree(WRAM);
|
||||
WRAM=NULL;
|
||||
static void M15Close(void) {
|
||||
if (WRAM)
|
||||
FCEU_gfree(WRAM);
|
||||
WRAM = NULL;
|
||||
}
|
||||
|
||||
void Mapper15_Init(CartInfo *info)
|
||||
{
|
||||
info->Power=M15Power;
|
||||
info->Reset=M15Reset;
|
||||
info->Close=M15Close;
|
||||
GameStateRestore=StateRestore;
|
||||
WRAMSIZE=8192;
|
||||
WRAM=(uint8*)FCEU_gmalloc(WRAMSIZE);
|
||||
SetupCartPRGMapping(0x10,WRAM,WRAMSIZE,1);
|
||||
if(info->battery)
|
||||
{
|
||||
info->SaveGame[0]=WRAM;
|
||||
info->SaveGameLen[0]=WRAMSIZE;
|
||||
}
|
||||
AddExState(WRAM, WRAMSIZE, 0, "WRAM");
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
void Mapper15_Init(CartInfo *info) {
|
||||
info->Power = M15Power;
|
||||
info->Reset = M15Reset;
|
||||
info->Close = M15Close;
|
||||
GameStateRestore = StateRestore;
|
||||
WRAMSIZE = 8192;
|
||||
WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE);
|
||||
SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1);
|
||||
if (info->battery) {
|
||||
info->SaveGame[0] = WRAM;
|
||||
info->SaveGameLen[0] = WRAMSIZE;
|
||||
}
|
||||
AddExState(WRAM, WRAMSIZE, 0, "WRAM");
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 cmd;
|
||||
static uint8 DRegs[8];
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &cmd, 1, "CMD" },
|
||||
{ DRegs, 8, "DREG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setchr2(0x0000, DRegs[0]);
|
||||
setchr2(0x0800, DRegs[1]);
|
||||
int x;
|
||||
for (x = 0; x < 4; x++)
|
||||
setchr1(0x1000 + (x << 10), DRegs[2 + x]);
|
||||
setprg8(0x8000, DRegs[6]);
|
||||
setprg8(0xa000, DRegs[7]);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
static DECLFW(M206Write) {
|
||||
switch (A & 0x8001) {
|
||||
case 0x8000: cmd = V & 0x07; break;
|
||||
case 0x8001:
|
||||
if (cmd <= 0x05)
|
||||
V &= 0x3F;
|
||||
else
|
||||
V &= 0x0F;
|
||||
if (cmd <= 0x01) V >>= 1;
|
||||
DRegs[cmd & 0x07] = V;
|
||||
Sync();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void M206Power(void) {
|
||||
setprg8(0xc000, 0xE);
|
||||
setprg8(0xe000, 0xF);
|
||||
cmd = 0;
|
||||
memset(DRegs, 0, 8);
|
||||
Sync();
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M206Write);
|
||||
}
|
||||
|
||||
|
||||
void Mapper206_Init(CartInfo *info) {
|
||||
info->Power = M206Power;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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
|
||||
*
|
||||
* TXC/Micro Genius simplified mapper
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 latche;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &latche, 1, "LATC" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg32(0x8000, latche >> 4);
|
||||
setchr8(latche & 0xf);
|
||||
}
|
||||
|
||||
static DECLFW(M36Write) {
|
||||
latche = V;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static DECLFR(M36Read) {
|
||||
return latche; // Need by Strike Wolf, being simplified mapper, this cart still uses some TCX mapper features andrely on it
|
||||
}
|
||||
|
||||
static void M36Power(void) {
|
||||
latche = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x4100, 0x4100, M36Read);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFE, M36Write); // Actually, BUS conflict there preventing from triggering the wrong banks
|
||||
}
|
||||
|
||||
static void M36Restore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper36_Init(CartInfo *info) {
|
||||
info->Power = M36Power;
|
||||
GameStateRestore = M36Restore;
|
||||
AddExState(StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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
|
||||
*
|
||||
* FDS Conversion
|
||||
*
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 reg;
|
||||
static uint32 IRQCount, IRQa;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &IRQCount, 4, "IRQC" },
|
||||
{ &IRQa, 4, "IRQA" },
|
||||
{ ®, 1, "REG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg8(0x6000, ~1);
|
||||
setprg8(0x8000, ~3);
|
||||
setprg8(0xa000, ~2);
|
||||
setprg8(0xc000, reg);
|
||||
setprg8(0xe000, ~0);
|
||||
setchr8(0);
|
||||
}
|
||||
|
||||
static DECLFW(M40Write) {
|
||||
switch (A & 0xe000) {
|
||||
case 0x8000: IRQa = 0; IRQCount = 0; X6502_IRQEnd(FCEU_IQEXT); break;
|
||||
case 0xa000: IRQa = 1; break;
|
||||
case 0xe000: reg = V & 7; Sync(); break;
|
||||
}
|
||||
}
|
||||
|
||||
static void M40Power(void) {
|
||||
reg = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x6000, 0xffff, CartBR);
|
||||
SetWriteHandler(0x8000, 0xffff, M40Write);
|
||||
}
|
||||
|
||||
static void M40Reset(void) {
|
||||
}
|
||||
|
||||
static void M40IRQHook(int a) {
|
||||
if (IRQa) {
|
||||
if (IRQCount < 4096)
|
||||
IRQCount += a;
|
||||
else{
|
||||
IRQa = 0;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper40_Init(CartInfo *info) {
|
||||
info->Reset = M40Reset;
|
||||
info->Power = M40Power;
|
||||
MapIRQHook = M40IRQHook;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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 mainreg, chrreg, mirror;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &mainreg, 1, "MREG" },
|
||||
{ &chrreg, 1, "CREG" },
|
||||
{ &mirror, 1, "MIRR" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg32(0x8000, mainreg & 7);
|
||||
setchr8(chrreg);
|
||||
setmirror(mirror);
|
||||
}
|
||||
|
||||
static DECLFW(M41Write0) {
|
||||
mainreg = A & 0xFF;
|
||||
mirror = ((A >> 5) & 1) ^ 1;
|
||||
chrreg = (chrreg & 3) | ((A >> 1) & 0xC);
|
||||
Sync();
|
||||
}
|
||||
|
||||
static DECLFW(M41Write1) {
|
||||
if (mainreg & 0x4) {
|
||||
chrreg = (chrreg & 0xC) | (A & 3);
|
||||
Sync();
|
||||
}
|
||||
}
|
||||
|
||||
static void M41Power(void) {
|
||||
mainreg = chrreg = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x6000, 0x67FF, M41Write0);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M41Write1);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper41_Init(CartInfo *info) {
|
||||
info->Power = M41Power;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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
|
||||
*
|
||||
* FDS Conversion
|
||||
*
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 preg, creg, mirr;
|
||||
static uint32 IRQCount, IRQa;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &preg, 1, "PREG" },
|
||||
{ &creg, 1, "CREG" },
|
||||
{ &mirr, 1, "MIRR" },
|
||||
{ &IRQCount, 4, "IRQC" },
|
||||
{ &IRQa, 4, "IRQA" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg8(0x6000, preg);
|
||||
setprg32(0x8000, ~0);
|
||||
setchr8(creg);
|
||||
setmirror(mirr);
|
||||
}
|
||||
|
||||
static DECLFW(M42Write) {
|
||||
switch (A & 0xE003) {
|
||||
case 0x8000: creg = V; Sync(); break;
|
||||
case 0xE000: preg = V & 0x0F; Sync(); break;
|
||||
case 0xE001: mirr = ((V >> 3) & 1 ) ^ 1; Sync(); break;
|
||||
case 0xE002: IRQa = V & 2; if (!IRQa) IRQCount = 0; X6502_IRQEnd(FCEU_IQEXT); break;
|
||||
}
|
||||
}
|
||||
|
||||
static void M42Power(void) {
|
||||
preg = 0;
|
||||
mirr = 1; // Ai Senshi Nicol actually has fixed mirroring, but mapper forcing it's default value now
|
||||
Sync();
|
||||
SetReadHandler(0x6000, 0xffff, CartBR);
|
||||
SetWriteHandler(0x6000, 0xffff, M42Write);
|
||||
}
|
||||
|
||||
static void M42IRQHook(int a) {
|
||||
if (IRQa) {
|
||||
IRQCount += a;
|
||||
if (IRQCount >= 32768) IRQCount -= 32768;
|
||||
if (IRQCount >= 24576)
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
else
|
||||
X6502_IRQEnd(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper42_Init(CartInfo *info) {
|
||||
info->Power = M42Power;
|
||||
MapIRQHook = M42IRQHook;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -25,70 +25,61 @@
|
|||
static uint8 reg;
|
||||
static uint32 IRQCount, IRQa;
|
||||
|
||||
static SFORMAT StateRegs[]=
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{&IRQCount, 4, "IRQC"},
|
||||
{&IRQa, 1, "IRQA"},
|
||||
{®, 1, "REG"},
|
||||
{0}
|
||||
{ &IRQCount, 4, "IRQC" },
|
||||
{ &IRQa, 4, "IRQA" },
|
||||
{ ®, 1, "REG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void)
|
||||
{
|
||||
setprg4(0x5000,16); // Only YS-612 advdnced version
|
||||
setprg8(0x6000,2);
|
||||
setprg8(0x8000,1);
|
||||
setprg8(0xa000,0);
|
||||
setprg8(0xc000,reg);
|
||||
setprg8(0xe000,9);
|
||||
setchr8(0);
|
||||
static void Sync(void) {
|
||||
setprg4(0x5000, 16); // Only YS-612 advdnced version
|
||||
setprg8(0x6000, 2);
|
||||
setprg8(0x8000, 1);
|
||||
setprg8(0xa000, 0);
|
||||
setprg8(0xc000, reg);
|
||||
setprg8(0xe000, 9);
|
||||
setchr8(0);
|
||||
}
|
||||
|
||||
static DECLFW(M43Write)
|
||||
{
|
||||
// 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: // hacked version
|
||||
case 0x4122: IRQa=V&1; X6502_IRQEnd(FCEU_IQEXT); IRQCount=0; break; // original version
|
||||
}
|
||||
static DECLFW(M43Write) {
|
||||
// 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: // hacked version
|
||||
case 0x4122: IRQa = V & 1; X6502_IRQEnd(FCEU_IQEXT); IRQCount = 0; break; // original version
|
||||
}
|
||||
}
|
||||
|
||||
static void M43Power(void)
|
||||
{
|
||||
reg=0;
|
||||
Sync();
|
||||
SetReadHandler(0x5000,0xffff,CartBR);
|
||||
SetWriteHandler(0x4020,0xffff,M43Write);
|
||||
static void M43Power(void) {
|
||||
reg = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x5000, 0xffff, CartBR);
|
||||
SetWriteHandler(0x4020, 0xffff, M43Write);
|
||||
}
|
||||
|
||||
static void M43Reset(void)
|
||||
{
|
||||
static void M43Reset(void) {
|
||||
}
|
||||
|
||||
static void M43IRQHook(int a)
|
||||
{
|
||||
IRQCount+=a;
|
||||
if(IRQa)
|
||||
if(IRQCount>=4096)
|
||||
{
|
||||
IRQa=0;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
static void M43IRQHook(int a) {
|
||||
IRQCount += a;
|
||||
if (IRQa)
|
||||
if (IRQCount >= 4096) {
|
||||
IRQa = 0;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
|
||||
static void StateRestore(int version)
|
||||
{
|
||||
Sync();
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper43_Init(CartInfo *info)
|
||||
{
|
||||
info->Reset=M43Reset;
|
||||
info->Power=M43Power;
|
||||
MapIRQHook=M43IRQHook;
|
||||
GameStateRestore=StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
void Mapper43_Init(CartInfo *info) {
|
||||
info->Reset = M43Reset;
|
||||
info->Power = M43Power;
|
||||
MapIRQHook = M43IRQHook;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2002 Xodnizel
|
||||
* Copyright (C) 2012 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
|
||||
|
@ -20,56 +20,50 @@
|
|||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 reg0, reg1;
|
||||
|
||||
static void Mapper50IRQ(int a)
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
if(IRQa)
|
||||
{
|
||||
if(IRQCount<4096)
|
||||
IRQCount+=a;
|
||||
else
|
||||
{
|
||||
IRQa=0;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
{ ®0, 1, "REG0" },
|
||||
{ ®1, 1, "REG1" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg32(0x8000, (reg1 & 1) + ((reg0 & 0xF) << 1));
|
||||
setchr8(((reg1 >> 4) & 7) + ((reg0 & 0xF0) >> 1));
|
||||
}
|
||||
|
||||
static void M50Restore(int version)
|
||||
{
|
||||
setprg8(0xc000,mapbyte1[0]);
|
||||
static DECLFW(M46Write0) {
|
||||
reg0 = V;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static DECLFW(M50W)
|
||||
{
|
||||
if((A&0xD060)==0x4020)
|
||||
{
|
||||
if(A&0x100)
|
||||
{
|
||||
IRQa=V&1;
|
||||
if(!IRQa) IRQCount=0;
|
||||
X6502_IRQEnd(FCEU_IQEXT);
|
||||
}
|
||||
else
|
||||
{
|
||||
V=((V&1)<<2)|((V&2)>>1)|((V&4)>>1)|(V&8);
|
||||
mapbyte1[0]=V;
|
||||
setprg8(0xc000,V);
|
||||
}
|
||||
}
|
||||
static DECLFW(M46Write1) {
|
||||
reg1 = V;
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper50_init(void)
|
||||
{
|
||||
SetWriteHandler(0x4020,0x5fff,M50W);
|
||||
SetReadHandler(0x6000,0xffff,CartBR);
|
||||
MapStateRestore=M50Restore;
|
||||
MapIRQHook=Mapper50IRQ;
|
||||
|
||||
setprg8(0x6000,0xF);
|
||||
setprg8(0x8000,0x8);
|
||||
setprg8(0xa000,0x9);
|
||||
setprg8(0xc000,0x0);
|
||||
setprg8(0xe000,0xB);
|
||||
static void M46Power(void) {
|
||||
reg0 = reg1 = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x6000, 0x7FFF, M46Write0);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M46Write1);
|
||||
}
|
||||
|
||||
static void M46Reset(void) {
|
||||
reg0 = reg1 = 0;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper46_Init(CartInfo *info) {
|
||||
info->Power = M46Power;
|
||||
info->Reset = M46Reset;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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
|
||||
*
|
||||
* FDS Conversion
|
||||
*
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 reg;
|
||||
static uint32 IRQCount, IRQa;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &IRQCount, 4, "IRQC" },
|
||||
{ &IRQa, 4, "IRQA" },
|
||||
{ ®, 1, "REG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg8(0x6000, 0xF);
|
||||
setprg8(0x8000, 0x8);
|
||||
setprg8(0xa000, 0x9);
|
||||
setprg8(0xc000, reg);
|
||||
setprg8(0xe000, 0xB);
|
||||
setchr8(0);
|
||||
}
|
||||
|
||||
static DECLFW(M50Write) {
|
||||
switch (A & 0xD160) {
|
||||
case 0x4120: IRQa = V & 1; if (!IRQa) IRQCount = 0; X6502_IRQEnd(FCEU_IQEXT); break;
|
||||
case 0x4020: reg = ((V & 1) << 2) | ((V & 2) >> 1) | ((V & 4) >> 1) | (V & 8); Sync(); break;
|
||||
}
|
||||
}
|
||||
|
||||
static void M50Power(void) {
|
||||
reg = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x6000, 0xffff, CartBR);
|
||||
SetWriteHandler(0x4020, 0x5fff, M50Write);
|
||||
}
|
||||
|
||||
static void M50Reset(void) {
|
||||
}
|
||||
|
||||
static void M50IRQHook(int a) {
|
||||
if (IRQa) {
|
||||
if (IRQCount < 4096)
|
||||
IRQCount += a;
|
||||
else{
|
||||
IRQa = 0;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper50_Init(CartInfo *info) {
|
||||
info->Reset = M50Reset;
|
||||
info->Power = M50Power;
|
||||
MapIRQHook = M50IRQHook;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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 bank, mode;
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &bank, 1, "BANK" },
|
||||
{ &mode, 1, "MODE" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
if (mode & 2) {
|
||||
setprg8(0x6000, ((bank & 7) << 2) | 0x23);
|
||||
setprg16(0x8000, (bank << 1) | 0);
|
||||
setprg16(0xC000, (bank << 1) | 1);
|
||||
} else {
|
||||
setprg8(0x6000, ((bank & 4) << 2) | 0x2F);
|
||||
setprg16(0x8000, (bank << 1) | (mode >> 4));
|
||||
setprg16(0xC000, ((bank & 0xC) << 1) | 7);
|
||||
}
|
||||
if (mode == 0x12)
|
||||
setmirror(MI_H);
|
||||
else
|
||||
setmirror(MI_V);
|
||||
setchr8(0);
|
||||
}
|
||||
|
||||
static DECLFW(M51WriteMode) {
|
||||
mode = V & 0x12;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static DECLFW(M51WriteBank) {
|
||||
bank = V & 0x0F;
|
||||
if (A & 0x4000)
|
||||
mode = (mode & 2) | (V & 0x10);
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M51Power(void) {
|
||||
bank = 0;
|
||||
mode = 2;
|
||||
Sync();
|
||||
SetWriteHandler(0x6000, 0x7FFF, M51WriteMode);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M51WriteBank);
|
||||
SetReadHandler(0x6000, 0xFFFF, CartBR);
|
||||
}
|
||||
|
||||
static void M51Reset(void) {
|
||||
bank = 0;
|
||||
mode = 2;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper51_Init(CartInfo *info) {
|
||||
info->Power = M51Power;
|
||||
info->Reset = M51Reset;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
GameStateRestore = StateRestore;
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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 bank;
|
||||
static uint16 mode;
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &bank, 1, "BANK" },
|
||||
{ &mode, 2, "MODE" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setchr8(((mode & 0x1F) << 2) | (bank & 0x03));
|
||||
if (mode & 0x20) {
|
||||
setprg16(0x8000, (mode & 0x40) | ((mode >> 8) & 0x3F));
|
||||
setprg16(0xc000, (mode & 0x40) | ((mode >> 8) & 0x3F));
|
||||
} else
|
||||
setprg32(0x8000, ((mode & 0x40) | ((mode >> 8) & 0x3F)) >> 1);
|
||||
setmirror(((mode >> 7) & 1) ^ 1);
|
||||
}
|
||||
|
||||
static DECLFW(M62Write) {
|
||||
mode = A & 0x3FFF;
|
||||
bank = V & 3;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M62Power(void) {
|
||||
bank = mode = 0;
|
||||
Sync();
|
||||
SetWriteHandler(0x8000, 0xFFFF, M62Write);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
}
|
||||
|
||||
static void M62Reset(void) {
|
||||
bank = mode = 0;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper62_Init(CartInfo *info) {
|
||||
info->Power = M62Power;
|
||||
info->Reset = M62Reset;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
GameStateRestore = StateRestore;
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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 preg, mirr;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &preg, 1, "PREG" },
|
||||
{ &mirr, 1, "MIRR" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg16(0x8000, preg);
|
||||
setprg16(0xC000, ~0);
|
||||
setchr8(0);
|
||||
if(mirr)
|
||||
setmirror(mirr);
|
||||
}
|
||||
|
||||
static DECLFW(M71Write) {
|
||||
if ((A & 0xF000) == 0x9000)
|
||||
mirr = MI_0 + ((V >> 4) & 1); // 2-in-1, some carts are normal hardwire V/H mirror, some uses mapper selectable 0/1 mirror
|
||||
else
|
||||
preg = V;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M71Power(void) {
|
||||
mirr = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M71Write);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper71_Init(CartInfo *info) {
|
||||
info->Power = M71Power;
|
||||
GameStateRestore = StateRestore;
|
||||
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -1,66 +1,64 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
|
||||
#define mode mapbyte1[0]
|
||||
#define page mapbyte1[1]
|
||||
|
||||
static uint32 Get8K(uint32 A)
|
||||
{
|
||||
uint32 bank;
|
||||
|
||||
bank=(page<<2)|((A>>13)&1);
|
||||
|
||||
if(A&0x4000 && !(mode&1)) bank|=0xC;
|
||||
if(!(A&0x8000)) bank|=0x20;
|
||||
if(mode==2) bank|=2;
|
||||
else bank|=(A>>13)&2;
|
||||
return(bank);
|
||||
}
|
||||
|
||||
static void Synco(void)
|
||||
{
|
||||
uint32 x;
|
||||
if(mapbyte1[0]<=2)
|
||||
MIRROR_SET2(1);
|
||||
else
|
||||
MIRROR_SET2(0);
|
||||
for(x=0x6000;x<0x10000;x+=8192)
|
||||
ROM_BANK8(x,Get8K(x));
|
||||
}
|
||||
|
||||
static DECLFW(Write)
|
||||
{
|
||||
if(A&0x8000) mapbyte1[1]=V&0xF;
|
||||
else mapbyte1[0]=(mapbyte1[0]&2)|((V>>1)&1);
|
||||
|
||||
if(A&0x4000) mapbyte1[0]=(mapbyte1[0]&1)|((V>>3)&2);
|
||||
Synco();
|
||||
}
|
||||
|
||||
void Mapper51_init(void)
|
||||
{
|
||||
SetWriteHandler(0x6000,0xFFFF,Write);
|
||||
SetReadHandler(0x6000,0xFFFF,CartBR);
|
||||
mapbyte1[0]=1;
|
||||
mapbyte1[1]=0;
|
||||
Synco();
|
||||
}
|
||||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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
|
||||
*
|
||||
* Moero!! Pro Tennis have ADPCM codec on-board, PROM isn't dumped, emulation isn't
|
||||
* possible just now.
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 preg, creg;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &preg, 1, "PREG" },
|
||||
{ &creg, 1, "CREG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg16(0x8000, preg);
|
||||
setprg16(0xC000, ~0);
|
||||
setchr8(creg);
|
||||
}
|
||||
|
||||
static DECLFW(M72Write) {
|
||||
if (V & 0x80)
|
||||
preg = V & 0xF;
|
||||
if (V & 0x40)
|
||||
creg = V & 0xF;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M72Power(void) {
|
||||
Sync();
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x6000, 0xFFFF, M72Write);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper72_Init(CartInfo *info) {
|
||||
info->Power = M72Power;
|
||||
GameStateRestore = StateRestore;
|
||||
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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 latche;
|
||||
|
||||
static uint8 *CHRRAM=NULL;
|
||||
static uint32 CHRRAMSIZE;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &latche, 1, "LATC" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg32(0x8000, latche & 7);
|
||||
setchr2(0x0000, latche >> 4);
|
||||
setchr2r(0x10, 0x0800, 2);
|
||||
setchr4r(0x10, 0x1000, 0);
|
||||
}
|
||||
|
||||
static DECLFW(M77Write) {
|
||||
latche = V;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M77Power(void) {
|
||||
latche = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M77Write);
|
||||
}
|
||||
|
||||
static void M77Close(void)
|
||||
{
|
||||
if (CHRRAM)
|
||||
FCEU_gfree(CHRRAM);
|
||||
CHRRAM = NULL;
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper77_Init(CartInfo *info) {
|
||||
info->Power = M77Power;
|
||||
info->Close = M77Close;
|
||||
GameStateRestore = StateRestore;
|
||||
|
||||
CHRRAMSIZE = 6 * 1024;
|
||||
CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE);
|
||||
SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1);
|
||||
AddExState(CHRRAM, CHRRAMSIZE, 0, "CRAM");
|
||||
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
|
@ -1,54 +1,60 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
|
||||
/* Original code provided by LULU */
|
||||
|
||||
static DECLFW(Mapper77_write)
|
||||
{
|
||||
mapbyte1[0]=V;
|
||||
ROM_BANK32(V&0x7);
|
||||
VROM_BANK2(0x0000, (V&0xf0)>>4);
|
||||
}
|
||||
|
||||
static void Mapper77_StateRestore(int version)
|
||||
{
|
||||
int x;
|
||||
|
||||
if(version>=7200)
|
||||
{
|
||||
ROM_BANK32(mapbyte1[0]&0x7);
|
||||
VROM_BANK2(0x0000, (mapbyte1[0]&0xf0)>>4);
|
||||
}
|
||||
for(x=2;x<8;x++)
|
||||
VRAM_BANK1(x*0x400,x);
|
||||
}
|
||||
|
||||
void Mapper77_init(void)
|
||||
{
|
||||
int x;
|
||||
|
||||
ROM_BANK32(0);
|
||||
for(x=2;x<8;x++)
|
||||
VRAM_BANK1(x*0x400,x);
|
||||
SetWriteHandler(0x6000,0xffff,Mapper77_write);
|
||||
MapStateRestore=Mapper77_StateRestore;
|
||||
}
|
||||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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, preg;
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &creg, 1, "CREG" },
|
||||
{ &preg, 1, "PREG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg32(0x8000, preg);
|
||||
setchr8(creg);
|
||||
}
|
||||
|
||||
static DECLFW(M79Write) {
|
||||
if ((A < 0x8000) && ((A ^ 0x4100) == 0)) {
|
||||
preg = (V >> 3) & 1;
|
||||
}
|
||||
creg = V & 7;
|
||||
Sync();
|
||||
}
|
||||
|
||||
static void M79Power(void) {
|
||||
preg = ~0;
|
||||
Sync();
|
||||
SetWriteHandler(0x4100, 0x5FFF, M79Write);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M79Write);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper79_Init(CartInfo *info) {
|
||||
info->Power = M79Power;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
GameStateRestore = StateRestore;
|
||||
}
|
|
@ -0,0 +1,192 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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 preg[3], creg[6], isExMirr;
|
||||
static uint8 mirr, cmd, wram_enable, wram[256];
|
||||
static uint8 mcache[8];
|
||||
static uint32 lastppu;
|
||||
|
||||
static SFORMAT StateRegs80[] =
|
||||
{
|
||||
{ preg, 3, "PREG" },
|
||||
{ creg, 6, "CREG" },
|
||||
{ wram, 256, "WRAM" },
|
||||
{ &mirr, 1, "MIRR" },
|
||||
{ &wram_enable, 1, "WRME" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static SFORMAT StateRegs95[] =
|
||||
{
|
||||
{ &cmd, 1, "CMDR" },
|
||||
{ preg, 3, "PREG" },
|
||||
{ creg, 6, "CREG" },
|
||||
{ mcache, 8, "MCCH" },
|
||||
{ &lastppu, 4, "LPPU" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static SFORMAT StateRegs207[] =
|
||||
{
|
||||
{ preg, 3, "PREG" },
|
||||
{ creg, 6, "CREG" },
|
||||
{ mcache, 8, "MCCH" },
|
||||
{ &lastppu, 4, "LPPU" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg8(0x8000, preg[0]);
|
||||
setprg8(0xA000, preg[1]);
|
||||
setprg8(0xC000, preg[2]);
|
||||
setprg8(0xE000, ~0);
|
||||
setchr2(0x0000, (creg[0] >> 1) & 0x3F);
|
||||
setchr2(0x0800, (creg[1] >> 1) & 0x3F);
|
||||
setchr1(0x1000, creg[2]);
|
||||
setchr1(0x1400, creg[3]);
|
||||
setchr1(0x1800, creg[4]);
|
||||
setchr1(0x1C00, creg[5]);
|
||||
if (isExMirr) {
|
||||
setmirror(MI_0 + mcache[lastppu]);
|
||||
} else
|
||||
setmirror(mirr);
|
||||
}
|
||||
|
||||
static DECLFW(M80RamWrite) {
|
||||
if(wram_enable == 0xA3)
|
||||
wram[A & 0xFF] = V;
|
||||
}
|
||||
|
||||
static DECLFR(M80RamRead) {
|
||||
if(wram_enable == 0xA3)
|
||||
return wram[A & 0xFF];
|
||||
else
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
static DECLFW(M80Write) {
|
||||
switch (A) {
|
||||
case 0x7EF0: creg[0] = V; mcache[0] = mcache[1] = V >> 7; Sync(); break;
|
||||
case 0x7EF1: creg[1] = V; mcache[2] = mcache[3] = V >> 7; Sync(); break;
|
||||
case 0x7EF2: creg[2] = V; mcache[4] = V >> 7; Sync(); break;
|
||||
case 0x7EF3: creg[3] = V; mcache[5] = V >> 7; Sync(); break;
|
||||
case 0x7EF4: creg[4] = V; mcache[6] = V >> 7; Sync(); break;
|
||||
case 0x7EF5: creg[5] = V; mcache[7] = V >> 7; Sync(); break;
|
||||
case 0x7EF6: mirr = V & 1; Sync(); break;
|
||||
case 0x7EF8: wram_enable = V; break;
|
||||
case 0x7EFA:
|
||||
case 0x7EFB: preg[0] = V; Sync(); break;
|
||||
case 0x7EFC:
|
||||
case 0x7EFD: preg[1] = V; Sync(); break;
|
||||
case 0x7EFE:
|
||||
case 0x7EFF: preg[2] = V; Sync(); break;
|
||||
}
|
||||
}
|
||||
|
||||
static DECLFW(M95Write) {
|
||||
switch (A & 0xF001) {
|
||||
case 0x8000: cmd = V; break;
|
||||
case 0x8001:
|
||||
switch (cmd & 0x07) {
|
||||
case 0: creg[0] = V & 0x1F; mcache[0] = mcache[1] = (V >> 5) & 1; Sync(); break;
|
||||
case 1: creg[1] = V & 0x1F; mcache[2] = mcache[3] = (V >> 5) & 1; Sync(); break;
|
||||
case 2: creg[2] = V & 0x1F; mcache[4] = (V >> 5) & 1; Sync(); break;
|
||||
case 3: creg[3] = V & 0x1F; mcache[5] = (V >> 5) & 1; Sync(); break;
|
||||
case 4: creg[4] = V & 0x1F; mcache[6] = (V >> 5) & 1; Sync(); break;
|
||||
case 5: creg[5] = V & 0x1F; mcache[7] = (V >> 5) & 1; Sync(); break;
|
||||
case 6: preg[0] = V; Sync(); break;
|
||||
case 7: preg[1] = V; Sync(); break;
|
||||
}
|
||||
Sync();
|
||||
}
|
||||
}
|
||||
|
||||
static void MExMirrPPU(uint32 A) {
|
||||
static int8 lastmirr = -1, curmirr;
|
||||
if (A < 0x2000) {
|
||||
lastppu = A >> 10;
|
||||
curmirr = mcache[lastppu];
|
||||
if (curmirr != lastmirr) {
|
||||
setmirror(MI_0 + curmirr);
|
||||
lastmirr = curmirr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void M80Power(void) {
|
||||
wram_enable = 0xFF;
|
||||
Sync();
|
||||
SetReadHandler(0x7F00, 0x7FFF, M80RamRead);
|
||||
SetWriteHandler(0x7F00, 0x7FFF, M80RamWrite);
|
||||
SetWriteHandler(0x7EF0, 0x7EFF, M80Write);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
}
|
||||
|
||||
static void M207Power(void) {
|
||||
mcache[0] = mcache[1] = mcache[2] = mcache[3] = 0;
|
||||
mcache[4] = mcache[5] = mcache[6] = mcache[7] = 0;
|
||||
Sync();
|
||||
SetWriteHandler(0x7EF0, 0x7EFF, M80Write);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
}
|
||||
|
||||
static void M95Power(void) {
|
||||
preg[2] = ~1;
|
||||
mcache[0] = mcache[1] = mcache[2] = mcache[3] = 0;
|
||||
mcache[4] = mcache[5] = mcache[6] = mcache[7] = 0;
|
||||
Sync();
|
||||
SetWriteHandler(0x8000, 0xFFFF, M95Write);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper80_Init(CartInfo *info) {
|
||||
isExMirr = 0;
|
||||
info->Power = M80Power;
|
||||
GameStateRestore = StateRestore;
|
||||
|
||||
if (info->battery) {
|
||||
info->SaveGame[0] = wram;
|
||||
info->SaveGameLen[0] = 256;
|
||||
}
|
||||
|
||||
AddExState(&StateRegs80, ~0, 0, 0);
|
||||
}
|
||||
|
||||
void Mapper95_Init(CartInfo *info) {
|
||||
isExMirr = 1;
|
||||
info->Power = M95Power;
|
||||
PPU_hook = MExMirrPPU;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs95, ~0, 0, 0);
|
||||
}
|
||||
|
||||
void Mapper207_Init(CartInfo *info) {
|
||||
isExMirr = 1;
|
||||
info->Power = M207Power;
|
||||
PPU_hook = MExMirrPPU;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs207, ~0, 0, 0);
|
||||
}
|
|
@ -23,65 +23,58 @@
|
|||
static uint8 reg[8];
|
||||
static uint8 mirror, cmd, is154;
|
||||
|
||||
static SFORMAT StateRegs[]=
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{&cmd, 1, "CMD"},
|
||||
{&mirror, 1, "MIRR"},
|
||||
{reg, 8, "REGS"},
|
||||
{0}
|
||||
{ &cmd, 1, "CMD" },
|
||||
{ &mirror, 1, "MIRR" },
|
||||
{ reg, 8, "REGS" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void)
|
||||
{
|
||||
setchr2(0x0000,reg[0]>>1);
|
||||
setchr2(0x0800,reg[1]>>1);
|
||||
setchr1(0x1000,reg[2]|0x40);
|
||||
setchr1(0x1400,reg[3]|0x40);
|
||||
setchr1(0x1800,reg[4]|0x40);
|
||||
setchr1(0x1C00,reg[5]|0x40);
|
||||
setprg8(0x8000,reg[6]);
|
||||
setprg8(0xA000,reg[7]);
|
||||
static void Sync(void) {
|
||||
setchr2(0x0000, reg[0] >> 1);
|
||||
setchr2(0x0800, reg[1] >> 1);
|
||||
setchr1(0x1000, reg[2] | 0x40);
|
||||
setchr1(0x1400, reg[3] | 0x40);
|
||||
setchr1(0x1800, reg[4] | 0x40);
|
||||
setchr1(0x1C00, reg[5] | 0x40);
|
||||
setprg8(0x8000, reg[6]);
|
||||
setprg8(0xA000, reg[7]);
|
||||
setprg8(0xC000, ~1);
|
||||
setprg8(0xE000, ~0);
|
||||
}
|
||||
|
||||
static void MSync(void)
|
||||
{
|
||||
if(is154)setmirror(MI_0+(mirror&1));
|
||||
static void MSync(void) {
|
||||
if (is154) setmirror(MI_0 + (mirror & 1));
|
||||
}
|
||||
|
||||
static DECLFW(M88Write)
|
||||
{
|
||||
switch(A&0x8001)
|
||||
{
|
||||
case 0x8000: cmd=V&7; mirror=V>>6; MSync(); break;
|
||||
case 0x8001: reg[cmd]=V; Sync(); break;
|
||||
}
|
||||
static DECLFW(M88Write) {
|
||||
switch (A & 0x8001) {
|
||||
case 0x8000: cmd = V & 7; mirror = V >> 6; MSync(); break;
|
||||
case 0x8001: reg[cmd] = V; Sync(); break;
|
||||
}
|
||||
}
|
||||
|
||||
static void M88Power(void)
|
||||
{
|
||||
setprg16(0xC000,~0);
|
||||
SetReadHandler(0x8000,0xFFFF,CartBR);
|
||||
SetWriteHandler(0x8000,0xFFFF,M88Write);
|
||||
static void M88Power(void) {
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M88Write);
|
||||
}
|
||||
|
||||
static void StateRestore(int version)
|
||||
{
|
||||
Sync();
|
||||
MSync();
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
MSync();
|
||||
}
|
||||
|
||||
void Mapper88_Init(CartInfo *info)
|
||||
{
|
||||
is154=0;
|
||||
info->Power=M88Power;
|
||||
GameStateRestore=StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
void Mapper88_Init(CartInfo *info) {
|
||||
is154 = 0;
|
||||
info->Power = M88Power;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
||||
|
||||
void Mapper154_Init(CartInfo *info)
|
||||
{
|
||||
is154=1;
|
||||
info->Power=M88Power;
|
||||
GameStateRestore=StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
void Mapper154_Init(CartInfo *info) {
|
||||
is154 = 1;
|
||||
info->Power = M88Power;
|
||||
GameStateRestore = StateRestore;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
}
|
||||
|
|
|
@ -1,125 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
#include "../ines.h"
|
||||
|
||||
static uint8 lastA;
|
||||
static uint8 DRegs[8];
|
||||
static uint8 cmd;
|
||||
static uint8 MirCache[8];
|
||||
|
||||
static SFORMAT DB_StateRegs[]={
|
||||
{DRegs, 8, "DREG"},
|
||||
{&cmd, 1, "CMD"},
|
||||
{&lastA, 1, "LAST"},
|
||||
{0}
|
||||
};
|
||||
|
||||
static void toot(void)
|
||||
{
|
||||
int x;
|
||||
|
||||
MirCache[0]=MirCache[1]=(DRegs[0]>>4)&1;
|
||||
MirCache[2]=MirCache[3]=(DRegs[1]>>4)&1;
|
||||
|
||||
for(x=0;x<4;x++)
|
||||
MirCache[4+x]=(DRegs[2+x]>>5)&1;
|
||||
onemir(MirCache[lastA]);
|
||||
}
|
||||
|
||||
static void Sync()
|
||||
{
|
||||
setchr2(0x0000,DRegs[0]&0x1F);
|
||||
setchr2(0x0800,DRegs[1]&0x1F);
|
||||
setchr1(0x1000,DRegs[2]&0x1F);
|
||||
setchr1(0x1400,DRegs[3]&0x1F);
|
||||
setchr1(0x1800,DRegs[4]&0x1F);
|
||||
setchr1(0x1C00,DRegs[5]&0x1F);
|
||||
setprg8(0x8000,DRegs[6]&0x1F);
|
||||
setprg8(0xa000,DRegs[7]&0x1F);
|
||||
toot();
|
||||
}
|
||||
|
||||
static DECLFW(Mapper95_write)
|
||||
{
|
||||
switch(A&0xF001)
|
||||
{
|
||||
case 0x8000: cmd = V; break;
|
||||
case 0x8001:
|
||||
switch(cmd&0x07)
|
||||
{
|
||||
case 0: DRegs[0]=(V&0x3F)>>1; break;
|
||||
case 1: DRegs[1]=(V&0x3F)>>1; break;
|
||||
case 2: DRegs[2]=V&0x3F; break;
|
||||
case 3: DRegs[3]=V&0x3F; break;
|
||||
case 4: DRegs[4]=V&0x3F; break;
|
||||
case 5: DRegs[5]=V&0x3F; break;
|
||||
case 6: DRegs[6]=V&0x3F; break;
|
||||
case 7: DRegs[7]=V&0x3F; break;
|
||||
}
|
||||
Sync();
|
||||
}
|
||||
}
|
||||
|
||||
static void dragonbust_ppu(uint32 A)
|
||||
{
|
||||
static int last=-1;
|
||||
static uint8 z;
|
||||
|
||||
if(A>=0x2000) return;
|
||||
|
||||
A>>=10;
|
||||
lastA=A;
|
||||
z=MirCache[A];
|
||||
if(z!=last)
|
||||
{
|
||||
onemir(z);
|
||||
last=z;
|
||||
}
|
||||
}
|
||||
|
||||
static void DBPower(void)
|
||||
{
|
||||
memset(DRegs,0x3F,8);
|
||||
DRegs[0]=DRegs[1]=0x1F;
|
||||
|
||||
Sync();
|
||||
|
||||
setprg8(0xc000,0x3E);
|
||||
setprg8(0xe000,0x3F);
|
||||
|
||||
SetReadHandler(0x8000,0xffff,CartBR);
|
||||
SetWriteHandler(0x8000,0xffff,Mapper95_write);
|
||||
}
|
||||
|
||||
static void StateRestore(int version)
|
||||
{
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper95_Init(CartInfo *info)
|
||||
{
|
||||
info->Power=DBPower;
|
||||
AddExState(DB_StateRegs, ~0, 0, 0);
|
||||
PPU_hook=dragonbust_ppu;
|
||||
GameStateRestore=StateRestore;
|
||||
}
|
||||
|
|
@ -29,6 +29,7 @@ my_list = Split("""
|
|||
189.cpp
|
||||
193.cpp
|
||||
199.cpp
|
||||
206.cpp
|
||||
208.cpp
|
||||
222.cpp
|
||||
225.cpp
|
||||
|
@ -45,12 +46,25 @@ my_list = Split("""
|
|||
32.cpp
|
||||
33.cpp
|
||||
34.cpp
|
||||
36.cpp
|
||||
3d-block.cpp
|
||||
40.cpp
|
||||
41.cpp
|
||||
411120-c.cpp
|
||||
42.cpp
|
||||
43.cpp
|
||||
46.cpp
|
||||
50.cpp
|
||||
51.cpp
|
||||
57.cpp
|
||||
603-5052.cpp
|
||||
62.cpp
|
||||
68.cpp
|
||||
71.cpp
|
||||
72.cpp
|
||||
77.cpp
|
||||
79.cpp
|
||||
80.cpp
|
||||
8157.cpp
|
||||
82.cpp
|
||||
8237.cpp
|
||||
|
@ -58,7 +72,6 @@ my_list = Split("""
|
|||
88.cpp
|
||||
90.cpp
|
||||
91.cpp
|
||||
95.cpp
|
||||
96.cpp
|
||||
99.cpp
|
||||
a9711.cpp
|
||||
|
@ -124,7 +137,9 @@ t-262.cpp
|
|||
tengen.cpp
|
||||
tf-1201.cpp
|
||||
transformer.cpp
|
||||
vrc1.cpp
|
||||
vrc2and4.cpp
|
||||
vrc3.cpp
|
||||
vrc7.cpp
|
||||
yoko.cpp
|
||||
""")
|
||||
|
|
|
@ -46,8 +46,8 @@ static DECLFW(MNNNWrite) {
|
|||
}
|
||||
|
||||
static void MNNNPower(void) {
|
||||
// SetReadHandler(0x6000,0x7fff,CartBR);
|
||||
// SetWriteHandler(0x6000,0x7fff,CartBW);
|
||||
// SetReadHandler(0x6000, 0x7fff, CartBR);
|
||||
// SetWriteHandler(0x6000, 0x7fff, CartBW);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x8000, 0xFFFF, MNNNWrite);
|
||||
}
|
||||
|
|
|
@ -173,7 +173,7 @@ void BMCGK192_Init(CartInfo *info) {
|
|||
}
|
||||
|
||||
//------------------ Map 059 ---------------------------
|
||||
// One more forbidden mapper
|
||||
// One more forgotten mapper
|
||||
static void M59Sync(void) {
|
||||
setprg32(0x8000, (latche >> 4) & 7);
|
||||
setchr8(latche & 0x7);
|
||||
|
@ -191,6 +191,21 @@ void Mapper59_Init(CartInfo *info) {
|
|||
Latch_Init(info, M59Sync, M59Read, 0x0000, 0x8000, 0xFFFF, 0);
|
||||
}
|
||||
|
||||
//------------------ Map 061 ---------------------------
|
||||
static void M61Sync(void) {
|
||||
if (((latche & 0x10) << 1) ^ (latche & 0x20)) {
|
||||
setprg16(0x8000, ((latche & 0xF) << 1) | (((latche & 0x20) >> 4)));
|
||||
setprg16(0xC000, ((latche & 0xF) << 1) | (((latche & 0x20) >> 4)));
|
||||
} else
|
||||
setprg32(0x8000, latche & 0xF);
|
||||
setchr8(0);
|
||||
setmirror(((latche >> 7) & 1) ^ 1);
|
||||
}
|
||||
|
||||
void Mapper61_Init(CartInfo *info) {
|
||||
Latch_Init(info, M61Sync, NULL, 0x0000, 0x8000, 0xFFFF, 0);
|
||||
}
|
||||
|
||||
//------------------ Map 092 ---------------------------
|
||||
// Another two-in-one mapper, two Jaleco carts uses similar
|
||||
// hardware, but with different wiring.
|
||||
|
|
|
@ -153,7 +153,7 @@ void CNROM_Init(CartInfo *info) {
|
|||
//------------------ Map 7 ---------------------------
|
||||
|
||||
static void ANROMSync() {
|
||||
setprg32(0x8000, latche & 0xf);
|
||||
setprg32(0x8000, latche & 0xF);
|
||||
setmirror(MI_0 + ((latche >> 4) & 1));
|
||||
setchr8(0);
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ void Mapper8_Init(CartInfo *info) {
|
|||
//------------------ Map 11 ---------------------------
|
||||
|
||||
static void M11Sync(void) {
|
||||
setprg32(0x8000, latche & 0xf);
|
||||
setprg32(0x8000, latche & 0xF);
|
||||
setchr8(latche >> 4);
|
||||
}
|
||||
|
||||
|
@ -201,17 +201,6 @@ void CPROM_Init(CartInfo *info) {
|
|||
Latch_Init(info, CPROMSync, 0, 0x8000, 0xFFFF, 0, 0);
|
||||
}
|
||||
|
||||
//------------------ Map 36 ---------------------------
|
||||
|
||||
static void M36Sync(void) {
|
||||
setprg32(0x8000, latche >> 4);
|
||||
setchr8((latche) & 0xF);
|
||||
}
|
||||
|
||||
void Mapper36_Init(CartInfo *info) {
|
||||
Latch_Init(info, M36Sync, 0, 0x8400, 0xfffe, 0, 0);
|
||||
}
|
||||
|
||||
//------------------ Map 38 ---------------------------
|
||||
|
||||
static void M38Sync(void) {
|
||||
|
@ -228,7 +217,7 @@ void Mapper38_Init(CartInfo *info) {
|
|||
static void MHROMSync(void) {
|
||||
|
||||
setprg32(0x8000, latche >> 4);
|
||||
setchr8(latche & 0xf);
|
||||
setchr8(latche & 0xF);
|
||||
}
|
||||
|
||||
void MHROM_Init(CartInfo *info) {
|
||||
|
@ -432,7 +421,7 @@ void Mapper203_Init(CartInfo *info) {
|
|||
static void M240Sync(void) {
|
||||
setprg8r(0x10, 0x6000, 0);
|
||||
setprg32(0x8000, latche >> 4);
|
||||
setchr8(latche & 0xf);
|
||||
setchr8(latche & 0xF);
|
||||
}
|
||||
|
||||
void Mapper240_Init(CartInfo *info) {
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 cmd;
|
||||
static uint8 DRegs[8];
|
||||
|
||||
static SFORMAT DEI_StateRegs[]=
|
||||
{
|
||||
{&cmd, 1, "CMD"},
|
||||
{DRegs, 8, "DREG"},
|
||||
{0}
|
||||
};
|
||||
|
||||
static void Sync(void)
|
||||
{
|
||||
int x;
|
||||
setchr2(0x0000,DRegs[0]);
|
||||
setchr2(0x0800,DRegs[1]);
|
||||
for(x=0;x<4;x++)
|
||||
setchr1(0x1000+(x<<10),DRegs[2+x]);
|
||||
setprg8(0x8000,DRegs[6]);
|
||||
setprg8(0xa000,DRegs[7]);
|
||||
}
|
||||
|
||||
static void StateRestore(int version)
|
||||
{
|
||||
Sync();
|
||||
}
|
||||
|
||||
static DECLFW(DEIWrite)
|
||||
{
|
||||
switch(A&0x8001)
|
||||
{
|
||||
case 0x8000: cmd=V&0x07; break;
|
||||
case 0x8001: if(cmd<=0x05)
|
||||
V&=0x3F;
|
||||
else
|
||||
V&=0x0F;
|
||||
if(cmd<=0x01) V>>=1;
|
||||
DRegs[cmd&0x07]=V;
|
||||
Sync();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void DEIPower(void)
|
||||
{
|
||||
setprg8(0xc000,0xE);
|
||||
setprg8(0xe000,0xF);
|
||||
cmd=0;
|
||||
memset(DRegs,0,8);
|
||||
Sync();
|
||||
SetReadHandler(0x8000,0xFFFF,CartBR);
|
||||
SetWriteHandler(0x8000,0xFFFF,DEIWrite);
|
||||
}
|
||||
|
||||
|
||||
void DEIROM_Init(CartInfo *info)
|
||||
{
|
||||
info->Power=DEIPower;
|
||||
GameStateRestore=StateRestore;
|
||||
AddExState(&DEI_StateRegs, ~0, 0, 0);
|
||||
}
|
1881
src/boards/mmc3.cpp
1881
src/boards/mmc3.cpp
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,70 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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
|
||||
*
|
||||
* VRC-1
|
||||
*
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 preg[3], creg[2], mode;
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &mode, 1, "MODE" },
|
||||
{ creg, 2, "CREG" },
|
||||
{ preg, 3, "PREG" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg8(0x8000, preg[0]);
|
||||
setprg8(0xA000, preg[1]);
|
||||
setprg8(0xC000, preg[2]);
|
||||
setprg8(0xE000, ~0);
|
||||
setchr4(0x0000, creg[0] | ((mode & 2) << 3));
|
||||
setchr4(0x1000, creg[1] | ((mode & 4) << 2));
|
||||
setmirror((mode & 1) ^ 1);
|
||||
}
|
||||
|
||||
static DECLFW(M75Write) {
|
||||
switch (A & 0xF000) {
|
||||
case 0x8000: preg[0] = V; Sync(); break;
|
||||
case 0x9000: mode = V; Sync(); break;
|
||||
case 0xA000: preg[1] = V; Sync(); break;
|
||||
case 0xC000: preg[2] = V; Sync(); break;
|
||||
case 0xE000: creg[0] = V & 0xF; Sync(); break;
|
||||
case 0xF000: creg[1] = V & 0xF; Sync(); break;
|
||||
}
|
||||
}
|
||||
|
||||
static void M75Power(void) {
|
||||
Sync();
|
||||
SetWriteHandler(0x8000, 0xFFFF, M75Write);
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper75_Init(CartInfo *info) {
|
||||
info->Power = M75Power;
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
GameStateRestore = StateRestore;
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2012 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
|
||||
*
|
||||
* VRC-3
|
||||
*
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
static uint8 preg;
|
||||
static uint8 IRQx; //autoenable
|
||||
static uint8 IRQm; //mode
|
||||
static uint8 IRQa;
|
||||
static uint16 IRQReload, IRQCount;
|
||||
static uint8 *WRAM=NULL;
|
||||
static uint32 WRAMSIZE;
|
||||
|
||||
static SFORMAT StateRegs[] =
|
||||
{
|
||||
{ &preg, 1, "PREG" },
|
||||
{ &IRQa, 1, "IRQA" },
|
||||
{ &IRQx, 1, "IRQX" },
|
||||
{ &IRQm, 1, "IRQM" },
|
||||
{ &IRQReload, 2, "IRQR" },
|
||||
{ &IRQCount, 2, "IRQC" },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void Sync(void) {
|
||||
setprg8r(0x10, 0x6000, 0);
|
||||
setprg16(0x8000, preg);
|
||||
setprg16(0xC000, ~0);
|
||||
setchr8(0);
|
||||
}
|
||||
|
||||
static DECLFW(M73Write) {
|
||||
switch (A & 0xF000) {
|
||||
case 0x8000: IRQReload &= 0xFFF0; IRQReload |= (V & 0xF) << 0; break;
|
||||
case 0x9000: IRQReload &= 0xFF0F; IRQReload |= (V & 0xF) << 4; break;
|
||||
case 0xA000: IRQReload &= 0xF0FF; IRQReload |= (V & 0xF) << 8; break;
|
||||
case 0xB000: IRQReload &= 0x0FFF; IRQReload |= (V & 0xF) << 12; break;
|
||||
case 0xC000:
|
||||
IRQm = V & 4;
|
||||
IRQx = V & 1;
|
||||
IRQa = V & 2;
|
||||
if (IRQa) {
|
||||
if (IRQm) {
|
||||
IRQCount &= 0xFFFF;
|
||||
IRQCount |= (IRQReload & 0xFF);
|
||||
} else
|
||||
IRQCount = IRQReload;
|
||||
}
|
||||
X6502_IRQEnd(FCEU_IQEXT);
|
||||
break;
|
||||
case 0xD000: X6502_IRQEnd(FCEU_IQEXT); IRQa = IRQx; break;
|
||||
case 0xF000: preg = V; Sync(); break;
|
||||
}
|
||||
}
|
||||
|
||||
static void M73IRQHook(int a) {
|
||||
uint32 i;
|
||||
if (!IRQa) return;
|
||||
for (i = 0; i < a; i++) {
|
||||
if (IRQm) {
|
||||
uint16 temp = IRQCount;
|
||||
temp &= 0xFF;
|
||||
IRQCount &= 0xFF00;
|
||||
if (temp == 0xFF) {
|
||||
IRQCount = IRQReload;
|
||||
IRQCount |= (uint16)(IRQReload & 0xFF);
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
} else {
|
||||
temp++;
|
||||
IRQCount |= temp;
|
||||
}
|
||||
} else {
|
||||
//16 bit mode
|
||||
if (IRQCount == 0xFFFF) {
|
||||
IRQCount = IRQReload;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
} else
|
||||
IRQCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void M73Power(void) {
|
||||
IRQReload = IRQm = IRQx = 0;
|
||||
Sync();
|
||||
SetReadHandler(0x6000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x6000, 0x7FFF, CartBW);
|
||||
SetWriteHandler(0x8000, 0xFFFF, M73Write);
|
||||
}
|
||||
|
||||
static void M73Close(void)
|
||||
{
|
||||
if (WRAM)
|
||||
FCEU_gfree(WRAM);
|
||||
WRAM = NULL;
|
||||
}
|
||||
|
||||
static void StateRestore(int version) {
|
||||
Sync();
|
||||
}
|
||||
|
||||
void Mapper73_Init(CartInfo *info) {
|
||||
info->Power = M73Power;
|
||||
info->Close = M73Close;
|
||||
MapIRQHook = M73IRQHook;
|
||||
|
||||
WRAMSIZE = 8192;
|
||||
WRAM = (uint8*)FCEU_gmalloc(WRAMSIZE);
|
||||
SetupCartPRGMapping(0x10, WRAM, WRAMSIZE, 1);
|
||||
AddExState(WRAM, WRAMSIZE, 0, "WRAM");
|
||||
|
||||
AddExState(&StateRegs, ~0, 0, 0);
|
||||
GameStateRestore = StateRestore;
|
||||
}
|
36
src/fceu.cpp
36
src/fceu.cpp
|
@ -1,22 +1,22 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2003 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
|
||||
* 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
|
||||
*/
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2003 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
|
||||
* 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 <string>
|
||||
#include <string.h>
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
{0x82f204ae, -1, 1}, /* Liang Shan Ying Xiong (NJ023) (Ch) [!] */
|
||||
{0x684afccd, -1, 1}, /* Space Hunter (J) */
|
||||
{0xad9c63e2, -1, 1}, /* Space Shadow (J) */
|
||||
{0xaf5d7aa2, -1, 0}, /* Clu Clu Land */
|
||||
{0xcfb224e6, -1, 1}, /* Dragon Ninja (J) [p1][!].nes */
|
||||
{0x4f2f1846, -1, 1}, /* Famista '89 - Kaimaku Han!! (J) */
|
||||
{0xfcdaca80, 0, 0}, /* Elevator Action */
|
||||
{0xc05a365b, 0, 0}, /* Exed Exes (J) */
|
||||
{0x32fa246f, 0, 0}, /* Tag Team Pro Wrestling */
|
||||
|
@ -72,9 +75,6 @@
|
|||
{0xf518dd58, 7, 8}, /* Captain Skyhawk */
|
||||
{0x84382231, 9, 0}, /* Punch Out (J) */
|
||||
{0xbe939fce, 9, 1}, /* Punchout*/
|
||||
{0xaf5d7aa2, -1, 0}, /* Clu Clu Land */
|
||||
{0xcfb224e6, -1, 1}, /* Dragon Ninja (J) [p1][!].nes */
|
||||
{0x4f2f1846, -1, 1}, /* Famista '89 - Kaimaku Han!! (J) */
|
||||
{0x345d3a1a, 11, 1}, /* Castle of Deceit */
|
||||
{0x5e66eaea, 13, 1}, /* Videomation */
|
||||
{0xbfc7a2e9, 16, 8},
|
||||
|
@ -87,6 +87,7 @@
|
|||
{0x5555fca3, 32, 8},
|
||||
{0x283ad224, 32, 8}, /* Ai Sensei no Oshiete */
|
||||
{0x243a8735, 32, 0x10|4}, /* Major League */
|
||||
{0xbc7b1d0f, 33, -1}, /* Bakushou!! Jinsei Gekijou 2 (J) [!] */
|
||||
{0xc2730c30, 34, 0}, /* Deadly Towers */
|
||||
{0x4c7c1af3, 34, 1}, /* Caesar's Palace */
|
||||
{0x932ff06e, 34, 1}, /* Classic Concentration */
|
||||
|
@ -191,7 +192,7 @@
|
|||
{0xa9115bc1, 192, -1},
|
||||
{0x4c7bbb0e, 192, -1},
|
||||
{0x98c1cd4b, 192, -1}, /* Ying Lie Qun Xia Zhuan (Chinese) */
|
||||
{0xee810d55, 192, -1}, /* You Ling Xing Dong (China) (Unl) */
|
||||
{0xee810d55, 192, -1}, /* You Ling Xing Dong (Ch) */
|
||||
{0x442f1a29, 192, -1}, /* Young chivalry */
|
||||
{0x637134e8, 193, 1}, /* Fighting Hero */
|
||||
{0xa925226c, 194, -1}, /* Dai-2-Ji - Super Robot Taisen (As) */
|
||||
|
@ -228,21 +229,22 @@
|
|||
{0xd323b806, 210, 1}, /* Wagyan Land 3 */
|
||||
{0xbd523011, 210, 2}, /* Dream Master */
|
||||
{0x5daae69a, 211, -1}, /* Aladdin - Return of Jaffar, The (Unl) [!] */
|
||||
{0x046d70cc, 217, -1}, /* 500-in-1 (Anim Splash, Alt Mapper)[p1][!] */
|
||||
{0x12f86a4d, 217, -1}, /* 500-in-1 (Static Splash, Alt Mapper)[p1][!] */
|
||||
{0xd09f778d, 217, -1}, /* 9999999-in-1 (Static Splash, Alt Mapper)[p1][!] */
|
||||
{0x1ec1dfeb, 217, -1}, /* 255-in-1 (Cut version) [p1] */
|
||||
{0x046d70cc, 217, -1}, /* 500-in-1 (Anim Splash, Alt Mapper)[p1][!] */
|
||||
{0x12f86a4d, 217, -1}, /* 500-in-1 (Static Splash, Alt Mapper)[p1][!] */
|
||||
{0xd09f778d, 217, -1}, /* 9999999-in-1 (Static Splash, Alt Mapper)[p1][!] */
|
||||
{0x62ef6c79, 232, 8}, /* Quattro Sports -Aladdin */
|
||||
{0x2705eaeb, 234, -1}, /* Maxi 15 */
|
||||
{0x6f12afc5, 235, -1}, /* Golden Game 150-in-1 */
|
||||
{0xfb2b6b10, 241, -1}, /* Fan Kong Jing Ying (Ch) */
|
||||
{0xb5e83c9a, 241, -1}, /* Xing Ji Zheng Ba (Ch) */
|
||||
{0x2537b3e6, 241, -1}, /* Dance Xtreme - Prima (Unl) */
|
||||
{0x11611e89, 241, -1}, /* Darkseed (Unl) [p1] */
|
||||
{0x81a37827, 241, -1}, /* Darkseed (Unl) [p1][b1] */
|
||||
{0xc2730c30, 241, -1}, /* Deadly Towers (U) [!] */
|
||||
{0x368c19a8, 241, -1}, /* LIKO Study Cartridge 3-in-1 (Unl) [!] */
|
||||
{0xa21e675c, 241, -1}, /* Mashou (J) [!] */
|
||||
{0x54d98b79, 241, -1}, /* Titanic 1912 (Unl) */
|
||||
{0x2537b3e6, 241, -1}, /* Dance Xtreme - Prima (Unl) */
|
||||
{0x11611e89, 241, -1}, /* Darkseed (Unl) [p1] */
|
||||
{0x81a37827, 241, -1}, /* Darkseed (Unl) [p1][b1] */
|
||||
{0xc2730c30, 241, -1}, /* Deadly Towers (U) [!] */
|
||||
{0x368c19a8, 241, -1}, /* LIKO Study Cartridge 3-in-1 (Unl) [!] */
|
||||
{0xa21e675c, 241, -1}, /* Mashou (J) [!] */
|
||||
{0x54d98b79, 241, -1}, /* Titanic 1912 (Unl) */
|
||||
{0x6bea1235, 245, -1}, /* MMC3 cart, but with nobanking applied to CHR-RAM, so let it be there */
|
||||
{0x345ee51a, 245, -1}, /* DQ4c */
|
||||
{0x57514c6c, 245, -1}, /* Yong Zhe Dou E Long - Dragon Quest VI (Ch) */
|
||||
|
|
246
src/ines.cpp
246
src/ines.cpp
|
@ -1,23 +1,23 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 1998 BERO
|
||||
* 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
|
||||
* 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
|
||||
*/
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 1998 BERO
|
||||
* 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
|
||||
* 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 <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -322,55 +322,39 @@ static void CheckHInfo(void)
|
|||
|
||||
static uint64 savie[]=
|
||||
{
|
||||
0x498c10dc463cfe95LL, /* Battle Fleet */
|
||||
0x6917ffcaca2d8466LL, /* Famista '90 */
|
||||
|
||||
0xd63dcc68c2b20adcLL, /* Final Fantasy J */
|
||||
0x012df596e2b31174LL, /* Final Fantasy 1+2 */
|
||||
0xf6b359a720549ecdLL, /* Final Fantasy 2 */
|
||||
0x5a30da1d9b4af35dLL, /* Final Fantasy 3 */
|
||||
|
||||
0x2ee3417ba8b69706LL, /* Hydlide 3*/
|
||||
|
||||
0xebbce5a54cf3ecc0LL, /* Justbreed */
|
||||
|
||||
0x6a858da551ba239eLL, /* Kaijuu Monogatari */
|
||||
0xa40666740b7d22feLL, /* Mindseeker */
|
||||
|
||||
0x77b811b2760104b9LL, /* Mouryou Senki Madara */
|
||||
|
||||
0x11b69122efe86e8cLL, /* RPG Jinsei Game */
|
||||
|
||||
0xa70b495314f4d075LL, /* Ys 3 */
|
||||
|
||||
|
||||
0xc04361e499748382LL, /* AD&D Heroes of the Lance */
|
||||
0xb72ee2337ced5792LL, /* AD&D Hillsfar */
|
||||
0x2b7103b7a27bd72fLL, /* AD&D Pool of Radiance */
|
||||
|
||||
0x854d7947a3177f57LL, /* Crystalis */
|
||||
|
||||
0xb0bcc02c843c1b79LL, /* DW */
|
||||
0x4a1f5336b86851b6LL, /* DW */
|
||||
|
||||
0x2dcf3a98c7937c22LL, /* DW 2 */
|
||||
0x733026b6b72f2470LL, /* Dw 3 */
|
||||
0x98e55e09dfcc7533LL, /* DW 4*/
|
||||
0x8da46db592a1fcf4LL, /* Faria */
|
||||
0x91a6846d3202e3d6LL, /* Final Fantasy */
|
||||
0xedba17a2c4608d20LL, /* "" */
|
||||
|
||||
0x94b9484862a26cbaLL, /* Legend of Zelda */
|
||||
0x04a31647de80fdabLL, /* "" */
|
||||
|
||||
0x9aa1dc16c05e7de5LL, /* Startropics */
|
||||
0x1b084107d0878bd0LL, /* Startropics 2*/
|
||||
|
||||
0x836c0ff4f3e06e45LL, /* Zelda 2 */
|
||||
|
||||
0x82000965f04a71bbLL, /* Mirai Shinwa Jarvas */
|
||||
|
||||
0 /* Abandon all hope if the game has 0 in the lower 64-bits of its MD5 hash */
|
||||
0xc04361e499748382LL, /* AD&D Heroes of the Lance */
|
||||
0xb72ee2337ced5792LL, /* AD&D Hillsfar */
|
||||
0x2b7103b7a27bd72fLL, /* AD&D Pool of Radiance */
|
||||
0x498c10dc463cfe95LL, /* Battle Fleet */
|
||||
0x854d7947a3177f57LL, /* Crystalis */
|
||||
0x4a1f5336b86851b6LL, /* DW */
|
||||
0xb0bcc02c843c1b79LL, /* DW */
|
||||
0x2dcf3a98c7937c22LL, /* DW 2 */
|
||||
0x98e55e09dfcc7533LL, /* DW 4*/
|
||||
0x733026b6b72f2470LL, /* Dw 3 */
|
||||
0x6917ffcaca2d8466LL, /* Famista '90 */
|
||||
0x8da46db592a1fcf4LL, /* Faria */
|
||||
0xedba17a2c4608d20LL, /* Final Fantasy */
|
||||
0x91a6846d3202e3d6LL, /* Final Fantasy */
|
||||
0x012df596e2b31174LL, /* Final Fantasy 1+2 */
|
||||
0xf6b359a720549ecdLL, /* Final Fantasy 2 */
|
||||
0x5a30da1d9b4af35dLL, /* Final Fantasy 3 */
|
||||
0xd63dcc68c2b20adcLL, /* Final Fantasy J */
|
||||
0x2ee3417ba8b69706LL, /* Hydlide 3*/
|
||||
0xebbce5a54cf3ecc0LL, /* Justbreed */
|
||||
0x6a858da551ba239eLL, /* Kaijuu Monogatari */
|
||||
0x2db8f5d16c10b925LL, /* Kyonshiizu 2 */
|
||||
0x04a31647de80fdabLL, /* Legend of Zelda */
|
||||
0x94b9484862a26cbaLL, /* Legend of Zelda */
|
||||
0xa40666740b7d22feLL, /* Mindseeker */
|
||||
0x82000965f04a71bbLL, /* Mirai Shinwa Jarvas */
|
||||
0x77b811b2760104b9LL, /* Mouryou Senki Madara */
|
||||
0x11b69122efe86e8cLL, /* RPG Jinsei Game */
|
||||
0x9aa1dc16c05e7de5LL, /* Startropics */
|
||||
0x1b084107d0878bd0LL, /* Startropics 2*/
|
||||
0xa70b495314f4d075LL, /* Ys 3 */
|
||||
0x836c0ff4f3e06e45LL, /* Zelda 2 */
|
||||
0 /* Abandon all hope if the game has 0 in the lower 64-bits of its MD5 hash */
|
||||
};
|
||||
|
||||
static struct CHINF moo[]=
|
||||
|
@ -551,7 +535,7 @@ static BMAPPINGLocal bmap[] = {
|
|||
{"Konami VRC2/VRC4", 25, Mapper25_Init},
|
||||
// {"", 26, Mapper26_Init},
|
||||
// {"", 27, Mapper27_Init}, // Deprecated, dupe for VRC2/VRC4 mapper
|
||||
{"INL-ROM", 28, Mapper28_Init},
|
||||
// {"", 28, Mapper28_Init},
|
||||
// {"", 29, Mapper29_Init},
|
||||
// {"", 30, Mapper30_Init},
|
||||
// {"", 31, Mapper31_Init},
|
||||
|
@ -563,18 +547,18 @@ static BMAPPINGLocal bmap[] = {
|
|||
{"", 37, Mapper37_Init},
|
||||
{"Bit Corp.", 38, Mapper38_Init}, // Crime Busters
|
||||
// {"", 39, Mapper39_Init},
|
||||
// {"", 40, Mapper40_Init},
|
||||
// {"", 41, Mapper41_Init},
|
||||
// {"", 42, Mapper42_Init},
|
||||
{"SMB2j FDS", 40, Mapper40_Init},
|
||||
{"CALTRON 6-in-1", 41, Mapper41_Init},
|
||||
{"BIO MIRACLE FDS", 42, Mapper42_Init},
|
||||
{"", 43, Mapper43_Init},
|
||||
{"", 44, Mapper44_Init},
|
||||
{"", 45, Mapper45_Init},
|
||||
// {"", 46, Mapper46_Init},
|
||||
{"RUMBLESTATION 15-in-1",46, Mapper46_Init},
|
||||
{"", 47, Mapper47_Init},
|
||||
{"TAITO TCxxx", 48, Mapper48_Init},
|
||||
{"", 49, Mapper49_Init},
|
||||
// {"", 50, Mapper50_Init},
|
||||
// {"", 51, Mapper51_Init},
|
||||
{"SMB2j FDS REV A", 50, Mapper50_Init},
|
||||
{"11-in-1 BALL SERIES", 51, Mapper51_Init}, // 1993 year version
|
||||
{"", 52, Mapper52_Init},
|
||||
// {"", 53, Mapper53_Init}, // iNES version of complex UNIF board, can't emulate properly as iNES
|
||||
// {"", 54, Mapper54_Init},
|
||||
|
@ -584,8 +568,8 @@ static BMAPPINGLocal bmap[] = {
|
|||
{"", 58, BMCGK192_Init},
|
||||
{"", 59, Mapper59_Init}, // Check this out
|
||||
{"", 60, BMCD1038_Init},
|
||||
// {"", 61, Mapper61_Init},
|
||||
// {"", 62, Mapper62_Init},
|
||||
{"20-in-1 KAISER REV A", 61, Mapper61_Init},
|
||||
{"700-in-1", 62, Mapper62_Init},
|
||||
// {"", 63, Mapper63_Init},
|
||||
// {"", 64, Mapper64_Init},
|
||||
// {"", 65, Mapper65_Init},
|
||||
|
@ -594,16 +578,16 @@ static BMAPPINGLocal bmap[] = {
|
|||
{"Sunsoft Mapper #4", 68, Mapper68_Init},
|
||||
// {"", 69, Mapper69_Init},
|
||||
{"", 70, Mapper70_Init},
|
||||
// {"", 71, Mapper71_Init},
|
||||
// {"", 72, Mapper72_Init},
|
||||
// {"", 73, Mapper73_Init},
|
||||
{"CAMERICA BF9093", 71, Mapper71_Init},
|
||||
{"JALECO JF-17", 72, Mapper72_Init},
|
||||
{"KONAMI VRC3", 73, Mapper73_Init},
|
||||
{"", 74, Mapper74_Init},
|
||||
// {"", 75, Mapper75_Init},
|
||||
// {"", 76, Mapper76_Init},
|
||||
// {"", 77, Mapper77_Init},
|
||||
{"KONAMI VRC1", 75, Mapper75_Init},
|
||||
{"NAMCOT 108 VER. A", 76, Mapper76_Init},
|
||||
{"IREM LROG017", 77, Mapper77_Init},
|
||||
{"Irem 74HC161/32", 78, Mapper78_Init},
|
||||
// {"", 79, Mapper79_Init},
|
||||
// {"", 80, Mapper80_Init},
|
||||
{"AVE/C&E/TXC BOARD", 79, Mapper79_Init},
|
||||
{"TAITO X1-005 VER. A", 80, Mapper80_Init},
|
||||
// {"", 81, Mapper81_Init},
|
||||
{"", 82, Mapper82_Init},
|
||||
{"", 83, Mapper83_Init},
|
||||
|
@ -618,7 +602,7 @@ static BMAPPINGLocal bmap[] = {
|
|||
{"", 92, Mapper92_Init},
|
||||
{"Sunsoft UNROM", 93, SUNSOFT_UNROM_Init},
|
||||
{"", 94, Mapper94_Init},
|
||||
{"", 95, Mapper95_Init},
|
||||
{"NAMCOT 108 VER. B", 95, Mapper95_Init},
|
||||
{"", 96, Mapper96_Init},
|
||||
{"", 97, Mapper97_Init},
|
||||
// {"", 98, Mapper98_Init},
|
||||
|
@ -729,8 +713,8 @@ static BMAPPINGLocal bmap[] = {
|
|||
{"", 203, Mapper203_Init},
|
||||
{"", 204, Mapper204_Init},
|
||||
{"", 205, Mapper205_Init},
|
||||
{"DEIROM", 206, DEIROM_Init},
|
||||
// {"", 207, Mapper207_Init},
|
||||
{"NAMCOT 108 VER. C", 206, Mapper206_Init}, // Deprecated, Used to be "DEIROM" whatever it means, but actually simple version of MMC3
|
||||
{"TAITO X1-005 VER. B", 207, Mapper207_Init},
|
||||
{"", 208, Mapper208_Init},
|
||||
{"", 209, Mapper209_Init},
|
||||
{"", 210, Mapper210_Init},
|
||||
|
@ -816,22 +800,22 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode)
|
|||
// ROM_size = head.ROM_size;
|
||||
VROM_size = head.VROM_size;
|
||||
|
||||
int round = true;
|
||||
for (int i = 0; i != sizeof(not_power2)/sizeof(not_power2[0]); ++i)
|
||||
{
|
||||
//for games not to the power of 2, so we just read enough
|
||||
//prg rom from it, but we have to keep ROM_size to the power of 2
|
||||
//since PRGCartMapping wants ROM_size to be to the power of 2
|
||||
//so instead if not to power of 2, we just use head.ROM_size when
|
||||
//we use FCEU_read
|
||||
if (not_power2[i] == MapperNo)
|
||||
{
|
||||
round = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
int round = true;
|
||||
for (int i = 0; i != sizeof(not_power2)/sizeof(not_power2[0]); ++i)
|
||||
{
|
||||
//for games not to the power of 2, so we just read enough
|
||||
//prg rom from it, but we have to keep ROM_size to the power of 2
|
||||
//since PRGCartMapping wants ROM_size to be to the power of 2
|
||||
//so instead if not to power of 2, we just use head.ROM_size when
|
||||
//we use FCEU_read
|
||||
if (not_power2[i] == MapperNo)
|
||||
{
|
||||
round = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(VROM_size)
|
||||
if(VROM_size)
|
||||
VROM_size=uppow2(VROM_size);
|
||||
|
||||
|
||||
|
@ -860,9 +844,9 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode)
|
|||
ResetExState(0,0);
|
||||
|
||||
SetupCartPRGMapping(0,ROM,ROM_size*0x4000,0);
|
||||
// SetupCartPRGMapping(1,WRAM,8192,1);
|
||||
// SetupCartPRGMapping(1,WRAM,8192,1);
|
||||
|
||||
FCEU_fread(ROM,0x4000,(round) ? ROM_size : head.ROM_size,fp);
|
||||
FCEU_fread(ROM,0x4000,(round) ? ROM_size : head.ROM_size,fp);
|
||||
|
||||
if(VROM_size)
|
||||
FCEU_fread(VROM,0x2000,head.VROM_size,fp);
|
||||
|
@ -883,7 +867,7 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode)
|
|||
iNESCart.CRC32=iNESGameCRC32;
|
||||
|
||||
FCEU_printf(" PRG ROM: %3d x 16KiB\n CHR ROM: %3d x 8KiB\n ROM CRC32: 0x%08lx\n",
|
||||
(round) ? ROM_size : head.ROM_size, head.VROM_size,iNESGameCRC32);
|
||||
(round) ? ROM_size : head.ROM_size, head.VROM_size,iNESGameCRC32);
|
||||
|
||||
{
|
||||
int x;
|
||||
|
@ -908,7 +892,7 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode)
|
|||
|
||||
FCEU_printf(" Battery-backed: %s\n", (head.ROM_type&2)?"Yes":"No");
|
||||
FCEU_printf(" Trained: %s\n", (head.ROM_type&4)?"Yes":"No");
|
||||
// (head.ROM_type&8) = Mirroring: None(Four-screen)
|
||||
// (head.ROM_type&8) = Mirroring: None(Four-screen)
|
||||
|
||||
SetInput();
|
||||
CheckHInfo();
|
||||
|
@ -939,12 +923,12 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode)
|
|||
iNESCart.battery=(head.ROM_type&2)?1:0;
|
||||
iNESCart.mirror=Mirroring;
|
||||
|
||||
//if(MapperNo != 18) {
|
||||
// if(ROM) free(ROM);
|
||||
// if(VROM) free(VROM);
|
||||
// ROM=VROM=0;
|
||||
// return(0);
|
||||
// }
|
||||
// if(MapperNo != 18) {
|
||||
// if(ROM) free(ROM);
|
||||
// if(VROM) free(VROM);
|
||||
// ROM=VROM=0;
|
||||
// return(0);
|
||||
// }
|
||||
|
||||
|
||||
GameInfo->mappernum = MapperNo;
|
||||
|
@ -981,7 +965,7 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode)
|
|||
}
|
||||
|
||||
|
||||
//bbit edited: the whole function below was added
|
||||
// bbit edited: the whole function below was added
|
||||
int iNesSave(){
|
||||
FILE *fp;
|
||||
char name[2048];
|
||||
|
@ -1210,18 +1194,18 @@ void (*MapInitTab[256])(void)=
|
|||
0,
|
||||
0,
|
||||
0,
|
||||
Mapper40_init,
|
||||
Mapper41_init,
|
||||
Mapper42_init,
|
||||
0, //Mapper40_init,
|
||||
0, //Mapper41_init,
|
||||
0, //Mapper42_init,
|
||||
0, //Mapper43_init,
|
||||
0,
|
||||
0,
|
||||
Mapper46_init,
|
||||
0, //Mapper46_init,
|
||||
0,
|
||||
0, //Mapper48_init,
|
||||
0,
|
||||
Mapper50_init,
|
||||
Mapper51_init,
|
||||
0, //Mapper50_init,
|
||||
0, //Mapper51_init,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
@ -1231,8 +1215,8 @@ void (*MapInitTab[256])(void)=
|
|||
0, //Mapper58_init,
|
||||
0, //Mapper59_init,
|
||||
0, //Mapper60_init,
|
||||
Mapper61_init,
|
||||
Mapper62_init,
|
||||
0, //Mapper61_init,
|
||||
0, //Mapper62_init,
|
||||
0,
|
||||
Mapper64_init,
|
||||
Mapper65_init,
|
||||
|
@ -1241,16 +1225,16 @@ void (*MapInitTab[256])(void)=
|
|||
0, //Mapper68_init,
|
||||
Mapper69_init,
|
||||
0, //Mapper70_init,
|
||||
Mapper71_init,
|
||||
Mapper72_init,
|
||||
Mapper73_init,
|
||||
0, //Mapper71_init,
|
||||
0, //Mapper72_init,
|
||||
0, //Mapper73_init,
|
||||
0,
|
||||
Mapper75_init,
|
||||
Mapper76_init,
|
||||
Mapper77_init,
|
||||
0, //Mapper75_init,
|
||||
0, //Mapper76_init,
|
||||
0, //Mapper77_init,
|
||||
0, //Mapper78_init,
|
||||
Mapper79_init,
|
||||
Mapper80_init,
|
||||
0, //Mapper79_init,
|
||||
0, //Mapper80_init,
|
||||
0,
|
||||
0, //Mapper82_init,
|
||||
0, //Mapper83_init,
|
||||
|
@ -1377,7 +1361,7 @@ void (*MapInitTab[256])(void)=
|
|||
0, //Mapper204_init,
|
||||
0,
|
||||
0,
|
||||
Mapper207_init,
|
||||
0, //Mapper207_init,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
|
56
src/ines.h
56
src/ines.h
|
@ -185,26 +185,26 @@ void Mapper36_init(void);
|
|||
//void Mapper37_init(void);
|
||||
//void Mapper38_init(void);
|
||||
//void Mapper39_init(void);
|
||||
void Mapper40_init(void);
|
||||
void Mapper41_init(void);
|
||||
void Mapper42_init(void);
|
||||
//void Mapper40_init(void);
|
||||
//void Mapper41_init(void);
|
||||
//void Mapper42_init(void);
|
||||
//void Mapper43_init(void);
|
||||
void Mapper44_init(void);
|
||||
void Mapper45_init(void);
|
||||
void Mapper46_init(void);
|
||||
//void Mapper46_init(void);
|
||||
void Mapper47_init(void);
|
||||
//void Mapper48_init(void);
|
||||
void Mapper49_init(void);
|
||||
void Mapper50_init(void);
|
||||
void Mapper51_init(void);
|
||||
//void Mapper50_init(void);
|
||||
//void Mapper51_init(void);
|
||||
void Mapper53_init(void);
|
||||
void Mapper54_init(void);
|
||||
void Mapper55_init(void);
|
||||
void Mapper56_init(void);
|
||||
//void Mapper59_init(void);
|
||||
void Mapper60_init(void);
|
||||
void Mapper61_init(void);
|
||||
void Mapper62_init(void);
|
||||
//void Mapper61_init(void);
|
||||
//void Mapper62_init(void);
|
||||
void Mapper63_init(void);
|
||||
void Mapper64_init(void);
|
||||
void Mapper65_init(void);
|
||||
|
@ -213,16 +213,16 @@ void Mapper67_init(void);
|
|||
//void Mapper68_init(void);
|
||||
void Mapper69_init(void);
|
||||
//void Mapper70_init(void);
|
||||
void Mapper71_init(void);
|
||||
void Mapper72_init(void);
|
||||
void Mapper73_init(void);
|
||||
void Mapper74_init(void);
|
||||
void Mapper75_init(void);
|
||||
void Mapper76_init(void);
|
||||
void Mapper77_init(void);
|
||||
//void Mapper71_init(void);
|
||||
//void Mapper72_init(void);
|
||||
//void Mapper73_init(void);
|
||||
//void Mapper74_init(void);
|
||||
//void Mapper75_init(void);
|
||||
//void Mapper76_init(void);
|
||||
//void Mapper77_init(void);
|
||||
//void Mapper78_init(void);
|
||||
void Mapper79_init(void);
|
||||
void Mapper80_init(void);
|
||||
//void Mapper79_init(void);
|
||||
//void Mapper80_init(void);
|
||||
void Mapper81_init(void);
|
||||
//void Mapper82_init(void);
|
||||
void Mapper83_init(void);
|
||||
|
@ -320,7 +320,7 @@ void Mapper199_init(void);
|
|||
//void Mapper202_init(void);
|
||||
//void Mapper203_init(void);
|
||||
//void Mapper204_init(void);
|
||||
void Mapper207_init(void);
|
||||
//void Mapper207_init(void);
|
||||
//void Mapper211_init(void);
|
||||
//void Mapper212_init(void);
|
||||
//void Mapper213_init(void);
|
||||
|
@ -389,19 +389,35 @@ void Mapper34_Init(CartInfo *);
|
|||
void Mapper36_Init(CartInfo *);
|
||||
void Mapper37_Init(CartInfo *);
|
||||
void Mapper38_Init(CartInfo *);
|
||||
void Mapper40_Init(CartInfo *);
|
||||
void Mapper41_Init(CartInfo *);
|
||||
void Mapper42_Init(CartInfo *);
|
||||
void Mapper43_Init(CartInfo *);
|
||||
void Mapper44_Init(CartInfo *);
|
||||
void Mapper45_Init(CartInfo *);
|
||||
void Mapper46_Init(CartInfo *);
|
||||
void Mapper47_Init(CartInfo *);
|
||||
void Mapper48_Init(CartInfo *);
|
||||
void Mapper49_Init(CartInfo *);
|
||||
void Mapper50_Init(CartInfo *);
|
||||
void Mapper51_Init(CartInfo *);
|
||||
void Mapper52_Init(CartInfo *);
|
||||
void Mapper57_Init(CartInfo *);
|
||||
void Mapper59_Init(CartInfo *);
|
||||
void Mapper61_Init(CartInfo *);
|
||||
void Mapper62_Init(CartInfo *);
|
||||
void Mapper68_Init(CartInfo *);
|
||||
void Mapper70_Init(CartInfo *);
|
||||
void Mapper71_Init(CartInfo *);
|
||||
void Mapper72_Init(CartInfo *);
|
||||
void Mapper73_Init(CartInfo *);
|
||||
void Mapper74_Init(CartInfo *);
|
||||
void Mapper75_Init(CartInfo *);
|
||||
void Mapper76_Init(CartInfo *);
|
||||
void Mapper77_Init(CartInfo *);
|
||||
void Mapper78_Init(CartInfo *);
|
||||
void Mapper79_Init(CartInfo *);
|
||||
void Mapper80_Init(CartInfo *);
|
||||
void Mapper82_Init(CartInfo *);
|
||||
void Mapper83_Init(CartInfo *);
|
||||
void Mapper86_Init(CartInfo *);
|
||||
|
@ -475,8 +491,10 @@ void Mapper200_Init(CartInfo *);
|
|||
void Mapper201_Init(CartInfo *);
|
||||
void Mapper202_Init(CartInfo *);
|
||||
void Mapper203_Init(CartInfo *);
|
||||
void Mapper205_Init(CartInfo *);
|
||||
void Mapper204_Init(CartInfo *);
|
||||
void Mapper205_Init(CartInfo *);
|
||||
void Mapper206_Init(CartInfo *);
|
||||
void Mapper207_Init(CartInfo *);
|
||||
void Mapper208_Init(CartInfo *);
|
||||
void Mapper209_Init(CartInfo *);
|
||||
void Mapper210_Init(CartInfo *);
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 DECLFW(Mapper40_write)
|
||||
{
|
||||
switch(A&0xe000)
|
||||
{
|
||||
case 0x8000:IRQa=0;IRQCount=0;X6502_IRQEnd(FCEU_IQEXT);break;
|
||||
case 0xa000:IRQa=1;break;
|
||||
case 0xe000:ROM_BANK8(0xc000,V&7);break;
|
||||
}
|
||||
}
|
||||
|
||||
static void Mapper40IRQ(int a)
|
||||
{
|
||||
if(IRQa)
|
||||
{
|
||||
if(IRQCount<4096)
|
||||
IRQCount+=a;
|
||||
else
|
||||
{
|
||||
IRQa=0;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Mapper40_init(void)
|
||||
{
|
||||
ROM_BANK8(0x6000,(~0)-1);
|
||||
ROM_BANK8(0x8000,(~0)-3);
|
||||
ROM_BANK8(0xa000,(~0)-2);
|
||||
SetWriteHandler(0x8000,0xffff,Mapper40_write);
|
||||
SetReadHandler(0x6000,0x7fff,CartBR);
|
||||
MapIRQHook=Mapper40IRQ;
|
||||
}
|
||||
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
|
||||
|
||||
#define calreg mapbyte1[0]
|
||||
#define calchr mapbyte1[1]
|
||||
|
||||
DECLFW(Mapper41_write)
|
||||
{
|
||||
if(A<0x8000)
|
||||
{
|
||||
ROM_BANK32(A&7);
|
||||
MIRROR_SET((A>>5)&1);
|
||||
calreg=A;
|
||||
calchr&=0x3;
|
||||
calchr|=(A>>1)&0xC;
|
||||
VROM_BANK8(calchr);
|
||||
}
|
||||
else if(calreg&0x4)
|
||||
{
|
||||
calchr&=0xC;
|
||||
calchr|=A&3;
|
||||
VROM_BANK8(calchr);
|
||||
}
|
||||
}
|
||||
|
||||
static void M41Reset(void)
|
||||
{
|
||||
calreg=calchr=0;
|
||||
}
|
||||
|
||||
void Mapper41_init(void)
|
||||
{
|
||||
MapperReset=M41Reset;
|
||||
ROM_BANK32(0);
|
||||
SetWriteHandler(0x8000,0xffff,Mapper41_write);
|
||||
SetWriteHandler(0x6000,0x67ff,Mapper41_write);
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 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;X6502_IRQEnd(FCEU_IQEXT);break;
|
||||
}
|
||||
}
|
||||
|
||||
static void Mapper42IRQ(int a)
|
||||
{
|
||||
if(IRQa)
|
||||
{
|
||||
IRQCount+=a;
|
||||
if(IRQCount>=32768) IRQCount-=32768;
|
||||
if(IRQCount>=24576)
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
else
|
||||
X6502_IRQEnd(FCEU_IQEXT);
|
||||
}
|
||||
}
|
||||
|
||||
static void Mapper42_StateRestore(int version)
|
||||
{
|
||||
ROM_BANK8(0x6000,mapbyte1[0]&0xF);
|
||||
}
|
||||
|
||||
|
||||
void Mapper42_init(void)
|
||||
{
|
||||
ROM_BANK8(0x6000,0);
|
||||
ROM_BANK32(~0);
|
||||
SetWriteHandler(0x6000,0xffff,Mapper42_write);
|
||||
SetReadHandler(0x6000,0x7fff,CartBR);
|
||||
MapStateRestore=Mapper42_StateRestore;
|
||||
MapIRQHook=Mapper42IRQ;
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
|
||||
|
||||
|
||||
#define A64reg mapbyte1[0]
|
||||
#define A64wr mapbyte1[1]
|
||||
|
||||
DECLFW(Mapper46_writel)
|
||||
{
|
||||
A64reg=V;
|
||||
ROM_BANK32((A64wr&1)+((A64reg&0xF)<<1));
|
||||
VROM_BANK8(((A64wr>>4)&7)+((A64reg&0xF0)>>1));
|
||||
}
|
||||
|
||||
DECLFW(Mapper46_write)
|
||||
{
|
||||
A64wr=V;
|
||||
ROM_BANK32((V&1)+((A64reg&0xF)<<1));
|
||||
VROM_BANK8(((V>>4)&7)+((A64reg&0xF0)>>1));
|
||||
}
|
||||
|
||||
void Mapper46_init(void)
|
||||
{
|
||||
MIRROR_SET(0);
|
||||
ROM_BANK32(0);
|
||||
SetWriteHandler(0x8000,0xffff,Mapper46_write);
|
||||
SetWriteHandler(0x6000,0x7fff,Mapper46_writel);
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 DECLFW(Mapper61_write)
|
||||
{
|
||||
// printf("$%04x:$%02x\n",A,V);
|
||||
switch(A&0x30)
|
||||
{
|
||||
case 0x00:
|
||||
case 0x30:
|
||||
ROM_BANK32(A&0xF);
|
||||
break;
|
||||
case 0x20:
|
||||
case 0x10:
|
||||
ROM_BANK16(0x8000,((A&0xF)<<1)| (((A&0x20)>>4)) );
|
||||
ROM_BANK16(0xC000,((A&0xF)<<1)| (((A&0x20)>>4)) );
|
||||
break;
|
||||
}
|
||||
#ifdef moo
|
||||
if(!(A&0x10))
|
||||
ROM_BANK32(A&0xF);
|
||||
else
|
||||
{
|
||||
ROM_BANK16(0x8000,((A&0xF)<<1)| (((A&0x10)>>4)^1) );
|
||||
ROM_BANK16(0xC000,((A&0xF)<<1)| (((A&0x10)>>4)^1) );
|
||||
}
|
||||
#endif
|
||||
MIRROR_SET((A&0x80)>>7);
|
||||
}
|
||||
|
||||
void Mapper61_init(void)
|
||||
{
|
||||
SetWriteHandler(0x8000,0xffff,Mapper61_write);
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* Copyright (C) 2003 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 DECLFW(Mapper62_write)
|
||||
{
|
||||
VROM_BANK8(((A&0x1F)<<2)|(V&0x03));
|
||||
if(A&0x20) {
|
||||
ROM_BANK16(0x8000,(A&0x40)|((A>>8)&0x3F));
|
||||
ROM_BANK16(0xc000,(A&0x40)|((A>>8)&0x3F));
|
||||
}
|
||||
else
|
||||
ROM_BANK32(((A&0x40)|((A>>8)&0x3F))>>1);
|
||||
MIRROR_SET((A&0x80)>>7);
|
||||
}
|
||||
|
||||
void Mapper62_init(void)
|
||||
{
|
||||
SetWriteHandler(0x8000,0xffff, Mapper62_write);
|
||||
ROM_BANK32(0);
|
||||
}
|
||||
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
|
||||
|
||||
|
||||
DECLFW(Mapper71_write)
|
||||
{
|
||||
switch(A&0xF000)
|
||||
{
|
||||
case 0xF000:
|
||||
case 0xE000:
|
||||
case 0xD000:
|
||||
case 0xC000:ROM_BANK16(0x8000,V);break;
|
||||
case 0x9000:onemir((V>>3)&2);break;
|
||||
}
|
||||
}
|
||||
|
||||
void Mapper71_init(void)
|
||||
{
|
||||
SetWriteHandler(0x4020,0xffff,Mapper71_write);
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
|
||||
|
||||
DECLFW(Mapper72_write)
|
||||
{
|
||||
mapbyte1[0]=V;
|
||||
if(V&0x80)
|
||||
ROM_BANK16(0x8000,V&0xF);
|
||||
if(V&0x40)
|
||||
VROM_BANK8(V&0xF);
|
||||
}
|
||||
|
||||
void Mapper72_init(void)
|
||||
{
|
||||
SetWriteHandler(0x6000,0xffff,Mapper72_write);
|
||||
}
|
||||
|
|
@ -1,115 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 IRQx; //autoenable
|
||||
static uint8 IRQm; //mode
|
||||
static uint16 IRQr; //reload
|
||||
|
||||
static DECLFW(Mapper73_write)
|
||||
{
|
||||
//printf("$%04x:$%02x\n",A,V);
|
||||
|
||||
switch(A&0xF000)
|
||||
{
|
||||
case 0x8000:
|
||||
IRQr&=0xFFF0;IRQr|=(V&0xF);
|
||||
break;
|
||||
case 0x9000:
|
||||
IRQr&=0xFF0F;IRQr|=(V&0xF)<<4;
|
||||
break;
|
||||
case 0xa000:
|
||||
IRQr&=0xF0FF;IRQr|=(V&0xF)<<8;
|
||||
break;
|
||||
case 0xb000:
|
||||
IRQr&=0x0FFF;IRQr|=(V&0xF)<<12;
|
||||
break;
|
||||
case 0xc000:
|
||||
IRQm=V&4;
|
||||
IRQx=V&1;
|
||||
IRQa=V&2;
|
||||
if(IRQa)
|
||||
{
|
||||
if(IRQm)
|
||||
{
|
||||
IRQCount&=0xFFFF;
|
||||
IRQCount|=(IRQr&0xFF);
|
||||
}
|
||||
else
|
||||
{
|
||||
IRQCount=IRQr;
|
||||
}
|
||||
}
|
||||
X6502_IRQEnd(FCEU_IQEXT);
|
||||
break;
|
||||
case 0xd000:
|
||||
X6502_IRQEnd(FCEU_IQEXT);
|
||||
IRQa=IRQx;
|
||||
break;
|
||||
|
||||
case 0xf000:ROM_BANK16(0x8000,V);break;
|
||||
}
|
||||
}
|
||||
|
||||
static void Mapper73IRQHook(int a)
|
||||
{
|
||||
for(int i=0;i<a;i++)
|
||||
{
|
||||
if(!IRQa) return;
|
||||
if(IRQm)
|
||||
{
|
||||
uint16 temp = IRQCount;
|
||||
temp &= 0xFF;
|
||||
IRQCount &= 0xFF00;
|
||||
if (temp == 0xFF)
|
||||
{
|
||||
IRQCount = IRQr;
|
||||
IRQCount |= (uint16)(IRQr & 0xFF);
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
else
|
||||
{
|
||||
temp++;
|
||||
IRQCount |= temp;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//16 bit mode
|
||||
if (IRQCount == 0xFFFF)
|
||||
{
|
||||
IRQCount = IRQr;
|
||||
X6502_IRQBegin(FCEU_IQEXT);
|
||||
}
|
||||
else
|
||||
IRQCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Mapper73_init(void)
|
||||
{
|
||||
SetWriteHandler(0x8000,0xffff,Mapper73_write);
|
||||
MapIRQHook=Mapper73IRQHook;
|
||||
IRQr = IRQm = IRQx = 0;
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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"
|
||||
|
||||
|
||||
#define map75sel mapbyte1[0]
|
||||
#define map75ar mapbyte2
|
||||
|
||||
DECLFW(Mapper75_write)
|
||||
{
|
||||
switch(A&0xF000)
|
||||
{
|
||||
case 0x8000:ROM_BANK8(0x8000,V);break;
|
||||
case 0x9000:
|
||||
VROM_BANK4(0x0000,map75ar[0]|((V&2)<<3));
|
||||
VROM_BANK4(0x1000,map75ar[1]|((V&4)<<2));
|
||||
map75sel=V;MIRROR_SET(V&1);break;
|
||||
case 0xa000:ROM_BANK8(0xa000,V);break;
|
||||
case 0xc000:ROM_BANK8(0xc000,V);break;
|
||||
case 0xe000:V&=0xF;map75ar[0]=V;V|=(map75sel&2)<<3;VROM_BANK4(0x0000,V);break;
|
||||
case 0xf000:V&=0xF;map75ar[1]=V;V|=(map75sel&4)<<2;VROM_BANK4(0x1000,V);break;
|
||||
}
|
||||
}
|
||||
|
||||
void Mapper75_init(void)
|
||||
{
|
||||
SetWriteHandler(0x8000,0xffff,Mapper75_write);
|
||||
}
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 MMC3_cmd;
|
||||
|
||||
static DECLFW(Mapper76_write)
|
||||
{
|
||||
switch(A&0xE001){
|
||||
case 0x8000:
|
||||
MMC3_cmd = V;
|
||||
break;
|
||||
case 0x8001:
|
||||
switch(MMC3_cmd&0x07){
|
||||
case 2: VROM_BANK2(0x000,V);break;
|
||||
case 3: VROM_BANK2(0x800,V);break;
|
||||
case 4: VROM_BANK2(0x1000,V);break;
|
||||
case 5: VROM_BANK2(0x1800,V);break;
|
||||
case 6:
|
||||
if(MMC3_cmd&0x40) ROM_BANK8(0xC000,V);
|
||||
else ROM_BANK8(0x8000,V);
|
||||
break;
|
||||
case 7: ROM_BANK8(0xA000,V);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0xA000:
|
||||
MIRROR_SET(V&1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Mapper76_init(void)
|
||||
{
|
||||
SetWriteHandler(0x8000,0xffff,Mapper76_write);
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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
|
||||
* TXC mapper variation, F-15 City War
|
||||
*/
|
||||
|
||||
#include "mapinc.h"
|
||||
|
||||
|
||||
|
||||
DECLFW(Mapper79_write)
|
||||
{
|
||||
if(A<0x8000 && ((A^0x4100)==0))
|
||||
{
|
||||
ROM_BANK32((V>>3)&1);
|
||||
}
|
||||
VROM_BANK8(V);
|
||||
}
|
||||
|
||||
void Mapper79_init(void)
|
||||
{
|
||||
ROM_BANK32(~0);
|
||||
SetWriteHandler(0x8000,0xffff,Mapper79_write);
|
||||
SetWriteHandler(0x4020,0x5fff,Mapper79_write);
|
||||
}
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
/* FCE Ultra - NES/Famicom Emulator
|
||||
*
|
||||
* Copyright notice for this file:
|
||||
* 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
|
||||
* 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 uint32 lastA;
|
||||
static int isfu;
|
||||
static uint8 CCache[8];
|
||||
|
||||
static void Fudou_PPU(uint32 A)
|
||||
{
|
||||
static int last=-1;
|
||||
static uint8 z;
|
||||
|
||||
if(A>=0x2000) return;
|
||||
|
||||
A>>=10;
|
||||
lastA=A;
|
||||
|
||||
z=CCache[A];
|
||||
if(z!=last)
|
||||
{
|
||||
onemir(z);
|
||||
last=z;
|
||||
}
|
||||
}
|
||||
|
||||
static void mira()
|
||||
{
|
||||
if(isfu)
|
||||
{
|
||||
int x;
|
||||
CCache[0]=CCache[1]=mapbyte2[0]>>7;
|
||||
CCache[2]=CCache[3]=mapbyte2[1]>>7;
|
||||
|
||||
for(x=0;x<4;x++)
|
||||
CCache[4+x]=mapbyte2[2+x]>>7;
|
||||
|
||||
onemir(CCache[lastA]);
|
||||
}
|
||||
else
|
||||
MIRROR_SET2(mapbyte1[0]&1);
|
||||
}
|
||||
|
||||
static DECLFW(Mapper80_write)
|
||||
{
|
||||
switch(A)
|
||||
{
|
||||
case 0x7ef0: mapbyte2[0]=V;VROM_BANK2(0x0000,(V>>1)&0x3F);mira();break;
|
||||
case 0x7ef1: mapbyte2[1]=V;VROM_BANK2(0x0800,(V>>1)&0x3f);mira();break;
|
||||
|
||||
case 0x7ef2: mapbyte2[2]=V;VROM_BANK1(0x1000,V);mira();break;
|
||||
case 0x7ef3: mapbyte2[3]=V;VROM_BANK1(0x1400,V);mira();break;
|
||||
case 0x7ef4: mapbyte2[4]=V;VROM_BANK1(0x1800,V);mira();break;
|
||||
case 0x7ef5: mapbyte2[5]=V;VROM_BANK1(0x1c00,V);mira();break;
|
||||
case 0x7ef6: mapbyte1[0]=V;mira();break;
|
||||
case 0x7efa:
|
||||
case 0x7efb: ROM_BANK8(0x8000,V);break;
|
||||
case 0x7efd:
|
||||
case 0x7efc: ROM_BANK8(0xA000,V);break;
|
||||
case 0x7efe:
|
||||
case 0x7eff: ROM_BANK8(0xC000,V);break;
|
||||
}
|
||||
}
|
||||
|
||||
static void booga(int version)
|
||||
{
|
||||
mira();
|
||||
}
|
||||
|
||||
void Mapper80_init(void)
|
||||
{
|
||||
SetWriteHandler(0x4020,0x7eff,Mapper80_write);// 7f00-7fff battery backed ram inside mapper chip,
|
||||
// controlled by 7ef8 register, A8 - enable, FF - disable (?)
|
||||
MapStateRestore=booga;
|
||||
isfu=0;
|
||||
}
|
||||
|
||||
void Mapper207_init(void)
|
||||
{
|
||||
Mapper80_init();
|
||||
isfu=1;
|
||||
PPU_hook=Fudou_PPU;
|
||||
}
|
|
@ -1,27 +1,10 @@
|
|||
my_list = Split("""
|
||||
24and26.cpp
|
||||
40.cpp
|
||||
41.cpp
|
||||
42.cpp
|
||||
46.cpp
|
||||
50.cpp
|
||||
51.cpp
|
||||
6.cpp
|
||||
61.cpp
|
||||
62.cpp
|
||||
65.cpp
|
||||
67.cpp
|
||||
69.cpp
|
||||
71.cpp
|
||||
72.cpp
|
||||
73.cpp
|
||||
75.cpp
|
||||
76.cpp
|
||||
77.cpp
|
||||
79.cpp
|
||||
80.cpp
|
||||
85.cpp
|
||||
emu2413.c
|
||||
mmc2and4.cpp
|
||||
""")
|
||||
#
|
||||
|
|
|
@ -45,7 +45,6 @@ void BMCT2271_Init(CartInfo *info);
|
|||
void BMCT262_Init(CartInfo *info);
|
||||
void CNROM_Init(CartInfo *info);
|
||||
void CPROM_Init(CartInfo *info);
|
||||
void DEIROM_Init(CartInfo *info);
|
||||
void DreamTech01_Init(CartInfo *info);
|
||||
void EKROM_Init(CartInfo *info);
|
||||
void ELROM_Init(CartInfo *info);
|
||||
|
@ -86,7 +85,7 @@ void SLROM_Init(CartInfo *info);
|
|||
void SNROM_Init(CartInfo *info);
|
||||
void SOROM_Init(CartInfo *info);
|
||||
void SSSNROM_Init(CartInfo *info);
|
||||
void SUNSOFT_UNROM_Init(CartInfo *info); // "Shanghi" original version mapper
|
||||
void SUNSOFT_UNROM_Init(CartInfo *info); // "Shanghi" original version mapper
|
||||
void Super24_Init(CartInfo *info);
|
||||
void Supervision16_Init(CartInfo *info);
|
||||
void TBROM_Init(CartInfo *info);
|
||||
|
|
|
@ -256,6 +256,7 @@
|
|||
<ClCompile Include="..\src\boards\189.cpp" />
|
||||
<ClCompile Include="..\src\boards\193.cpp" />
|
||||
<ClCompile Include="..\src\boards\199.cpp" />
|
||||
<ClCompile Include="..\src\boards\206.cpp" />
|
||||
<ClCompile Include="..\src\boards\208.cpp" />
|
||||
<ClCompile Include="..\src\boards\222.cpp" />
|
||||
<ClCompile Include="..\src\boards\225.cpp" />
|
||||
|
@ -272,12 +273,25 @@
|
|||
<ClCompile Include="..\src\boards\32.cpp" />
|
||||
<ClCompile Include="..\src\boards\33.cpp" />
|
||||
<ClCompile Include="..\src\boards\34.cpp" />
|
||||
<ClCompile Include="..\src\boards\36.cpp" />
|
||||
<ClCompile Include="..\src\boards\3d-block.cpp" />
|
||||
<ClCompile Include="..\src\boards\40.cpp" />
|
||||
<ClCompile Include="..\src\boards\41.cpp" />
|
||||
<ClCompile Include="..\src\boards\411120-c.cpp" />
|
||||
<ClCompile Include="..\src\boards\42.cpp" />
|
||||
<ClCompile Include="..\src\boards\43.cpp" />
|
||||
<ClCompile Include="..\src\boards\46.cpp" />
|
||||
<ClCompile Include="..\src\boards\50.cpp" />
|
||||
<ClCompile Include="..\src\boards\51.cpp" />
|
||||
<ClCompile Include="..\src\boards\57.cpp" />
|
||||
<ClCompile Include="..\src\boards\603-5052.cpp" />
|
||||
<ClCompile Include="..\src\boards\62.cpp" />
|
||||
<ClCompile Include="..\src\boards\68.cpp" />
|
||||
<ClCompile Include="..\src\boards\71.cpp" />
|
||||
<ClCompile Include="..\src\boards\72.cpp" />
|
||||
<ClCompile Include="..\src\boards\77.cpp" />
|
||||
<ClCompile Include="..\src\boards\79.cpp" />
|
||||
<ClCompile Include="..\src\boards\80.cpp" />
|
||||
<ClCompile Include="..\src\boards\8157.cpp" />
|
||||
<ClCompile Include="..\src\boards\82.cpp" />
|
||||
<ClCompile Include="..\src\boards\8237.cpp" />
|
||||
|
@ -285,7 +299,6 @@
|
|||
<ClCompile Include="..\src\boards\88.cpp" />
|
||||
<ClCompile Include="..\src\boards\90.cpp" />
|
||||
<ClCompile Include="..\src\boards\91.cpp" />
|
||||
<ClCompile Include="..\src\boards\95.cpp" />
|
||||
<ClCompile Include="..\src\boards\96.cpp" />
|
||||
<ClCompile Include="..\src\boards\99.cpp" />
|
||||
<ClCompile Include="..\src\boards\ac-08.cpp" />
|
||||
|
@ -307,7 +320,9 @@
|
|||
<ClCompile Include="..\src\boards\pec-586.cpp" />
|
||||
<ClCompile Include="..\src\boards\sa-9602b.cpp" />
|
||||
<ClCompile Include="..\src\boards\transformer.cpp" />
|
||||
<ClCompile Include="..\src\boards\vrc1.cpp" />
|
||||
<ClCompile Include="..\src\boards\vrc2and4.cpp" />
|
||||
<ClCompile Include="..\src\boards\vrc3.cpp" />
|
||||
<ClCompile Include="..\src\boards\vrc7.cpp" />
|
||||
<ClCompile Include="..\src\boards\yoko.cpp" />
|
||||
<ClCompile Include="..\src\boards\__dummy_mapper.cpp">
|
||||
|
@ -324,7 +339,6 @@
|
|||
<ClCompile Include="..\src\boards\bonza.cpp" />
|
||||
<ClCompile Include="..\src\boards\bs-5.cpp" />
|
||||
<ClCompile Include="..\src\boards\datalatch.cpp" />
|
||||
<ClCompile Include="..\src\boards\deirom.cpp" />
|
||||
<ClCompile Include="..\src\boards\dream.cpp" />
|
||||
<ClCompile Include="..\src\boards\edu2000.cpp" />
|
||||
<ClCompile Include="..\src\boards\fk23c.cpp" />
|
||||
|
@ -580,26 +594,10 @@
|
|||
<ClCompile Include="..\src\input\toprider.cpp" />
|
||||
<ClCompile Include="..\src\input\zapper.cpp" />
|
||||
<ClCompile Include="..\src\mappers\24and26.cpp" />
|
||||
<ClCompile Include="..\src\mappers\40.cpp" />
|
||||
<ClCompile Include="..\src\mappers\41.cpp" />
|
||||
<ClCompile Include="..\src\mappers\42.cpp" />
|
||||
<ClCompile Include="..\src\mappers\46.cpp" />
|
||||
<ClCompile Include="..\src\mappers\50.cpp" />
|
||||
<ClCompile Include="..\src\mappers\51.cpp" />
|
||||
<ClCompile Include="..\src\mappers\6.cpp" />
|
||||
<ClCompile Include="..\src\mappers\61.cpp" />
|
||||
<ClCompile Include="..\src\mappers\62.cpp" />
|
||||
<ClCompile Include="..\src\mappers\65.cpp" />
|
||||
<ClCompile Include="..\src\mappers\67.cpp" />
|
||||
<ClCompile Include="..\src\mappers\69.cpp" />
|
||||
<ClCompile Include="..\src\mappers\71.cpp" />
|
||||
<ClCompile Include="..\src\mappers\72.cpp" />
|
||||
<ClCompile Include="..\src\mappers\73.cpp" />
|
||||
<ClCompile Include="..\src\mappers\75.cpp" />
|
||||
<ClCompile Include="..\src\mappers\76.cpp" />
|
||||
<ClCompile Include="..\src\mappers\77.cpp" />
|
||||
<ClCompile Include="..\src\mappers\79.cpp" />
|
||||
<ClCompile Include="..\src\mappers\80.cpp" />
|
||||
<ClCompile Include="..\src\mappers\85.cpp" />
|
||||
<ClCompile Include="..\src\mappers\emu2413.c">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
|
||||
|
|
|
@ -160,9 +160,6 @@
|
|||
<ClCompile Include="..\src\boards\90.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\95.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\a9746.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
|
@ -196,9 +193,6 @@
|
|||
<ClCompile Include="..\src\boards\datalatch.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\deirom.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\dream.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
|
@ -647,33 +641,9 @@
|
|||
<ClCompile Include="..\src\mappers\24and26.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\40.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\41.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\42.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\46.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\50.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\51.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\6.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\61.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\62.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\65.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
|
@ -683,30 +653,6 @@
|
|||
<ClCompile Include="..\src\mappers\69.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\71.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\72.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\73.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\75.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\76.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\77.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\79.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\80.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\mappers\85.cpp">
|
||||
<Filter>mappers</Filter>
|
||||
</ClCompile>
|
||||
|
@ -967,6 +913,54 @@
|
|||
<ClCompile Include="..\src\boards\28.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\36.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\40.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\41.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\42.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\46.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\50.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\51.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\62.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\71.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\72.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\77.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\79.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\80.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\206.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\vrc1.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\boards\vrc3.cpp">
|
||||
<Filter>boards</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\cart.h">
|
||||
|
|
Loading…
Reference in New Issue