Add BMC-JC-016-2
This commit is contained in:
@@ -1169,20 +1169,29 @@ void Mapper198_Init(CartInfo *info) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------- Mapper 205 ------------------------------ */
|
/* ---------------------------- Mapper 205 ------------------------------ */
|
||||||
/* https://wiki.nesdev.com/w/index.php/INES_Mapper_205 */
|
/* UNIF boardname BMC-JC-016-2
|
||||||
|
https://wiki.nesdev.com/w/index.php/INES_Mapper_205 */
|
||||||
|
static uint8 block[] = {0, 0, 1, 2};
|
||||||
|
|
||||||
static void M205PW(uint32 A, uint8 V) {
|
static void M205PW(uint32 A, uint8 V) {
|
||||||
setprg8(A, EXPREGS[0] & 0x30 | (V & (!(EXPREGS[0] & 0xC0) ? 0x1F : 0x0F)));
|
uint8 bank = V & ((EXPREGS[0] & 0x02) ? 0x0F : 0x1F);
|
||||||
|
if (PRGptr[1])
|
||||||
|
setprg8r(block[EXPREGS[0]], A, bank);
|
||||||
|
else
|
||||||
|
setprg8(A, EXPREGS[0] << 4 | bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M205CW(uint32 A, uint8 V) {
|
static void M205CW(uint32 A, uint8 V) {
|
||||||
uint16 reg = (uint16)EXPREGS[0] & 0x30;
|
uint8 bank = V & ((EXPREGS[0] & 0x02) ? 0x7F : 0xFF);
|
||||||
setchr1(A, (reg << 3) | V);
|
if (PRGptr[1])
|
||||||
|
setchr1r(block[EXPREGS[0]], A, bank);
|
||||||
|
else
|
||||||
|
setchr1(A, (EXPREGS[0] << 7) | bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DECLFW(M205Write0) {
|
static DECLFW(M205Write0) {
|
||||||
if (EXPREGS[1] == 0) {
|
if (EXPREGS[1] == 0) {
|
||||||
EXPREGS[0] = (V << 4) & 0x30;
|
EXPREGS[0] = V & 0x03;
|
||||||
EXPREGS[1] = A & 0x80;
|
EXPREGS[1] = A & 0x80;
|
||||||
FixMMC3PRG(MMC3_cmd);
|
FixMMC3PRG(MMC3_cmd);
|
||||||
FixMMC3CHR(MMC3_cmd);
|
FixMMC3CHR(MMC3_cmd);
|
||||||
@@ -1212,7 +1221,7 @@ static void M205Power(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Mapper205_Init(CartInfo *info) {
|
void Mapper205_Init(CartInfo *info) {
|
||||||
GenMMC3_Init(info, 128, 128, 8, 0);
|
GenMMC3_Init(info, 256, 128, 8, 0);
|
||||||
pwrap = M205PW;
|
pwrap = M205PW;
|
||||||
cwrap = M205CW;
|
cwrap = M205CW;
|
||||||
info->Power = M205Power;
|
info->Power = M205Power;
|
||||||
|
|||||||
@@ -493,6 +493,8 @@ static BMAPPING bmap[] = {
|
|||||||
{ "KS106C", BMCKS106C_Init, 0 },
|
{ "KS106C", BMCKS106C_Init, 0 },
|
||||||
{ "900218", BTL900218_Init, 0 },
|
{ "900218", BTL900218_Init, 0 },
|
||||||
|
|
||||||
|
{ "JC-016-2", Mapper205_Init, 0 },
|
||||||
|
|
||||||
#ifdef COPYFAMI
|
#ifdef COPYFAMI
|
||||||
{ "COPYFAMI_MMC3", MapperCopyFamiMMC3_Init, 0 },
|
{ "COPYFAMI_MMC3", MapperCopyFamiMMC3_Init, 0 },
|
||||||
{ "COPYFAMI", MapperCopyFami_Init, 0 },
|
{ "COPYFAMI", MapperCopyFami_Init, 0 },
|
||||||
|
|||||||
Reference in New Issue
Block a user