M052: Add submapper 14.
This commit is contained in:
@@ -657,7 +657,6 @@ static void M52PW(uint32 A, uint8 V) {
|
||||
|
||||
static void M52CW(uint32 A, uint8 V) {
|
||||
uint32 mask = 0xFF ^ ((EXPREGS[0] & 0x40) << 1);
|
||||
/* uint32 bank = (((EXPREGS[0]>>3)&4)|((EXPREGS[0]>>1)&2)|((EXPREGS[0]>>6)&(EXPREGS[0]>>4)&1))<<7; */
|
||||
uint32 bank = (((EXPREGS[0] >> 4) & 2) | (EXPREGS[0] & 4) | ((EXPREGS[0] >> 6) & (EXPREGS[0] >> 4) & 1)) << 7; /* actually 256K CHR banks index bits is inverted! */
|
||||
if (CHRRAM && (EXPREGS[0] &3) ==3)
|
||||
setchr1r(0x10, A, bank | (V & mask));
|
||||
@@ -665,6 +664,15 @@ static void M52CW(uint32 A, uint8 V) {
|
||||
setchr1(A, bank | (V & mask));
|
||||
}
|
||||
|
||||
static void M52S14CW(uint32 A, uint8 V) {
|
||||
uint32 mask = 0xFF ^ ((EXPREGS[0] & 0x40) << 1);
|
||||
uint32 bank = EXPREGS[0] <<3 &0x80 | EXPREGS[0] <<7 &0x300;
|
||||
if (EXPREGS[0] &0x20)
|
||||
setchr1r(0x10, A, bank | (V & mask));
|
||||
else
|
||||
setchr1(A, bank | (V & mask));
|
||||
}
|
||||
|
||||
static DECLFW(M52Write) {
|
||||
if (EXPREGS[1]) {
|
||||
WRAM[A - 0x6000] = V;
|
||||
@@ -689,12 +697,12 @@ static void M52Power(void) {
|
||||
|
||||
void Mapper52_Init(CartInfo *info) {
|
||||
GenMMC3_Init(info, 256, 256, 8, info->battery);
|
||||
cwrap = M52CW;
|
||||
cwrap = info->submapper ==14? M52S14CW: M52CW;
|
||||
pwrap = M52PW;
|
||||
info->Reset = M52Reset;
|
||||
info->Power = M52Power;
|
||||
AddExState(EXPREGS, 2, 0, "EXPR");
|
||||
if (info->iNES2 && info->submapper ==13) {
|
||||
if (info->iNES2 && (info->submapper ==13 || info->submapper ==14)) {
|
||||
CHRRAMSIZE = 8192;
|
||||
CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE);
|
||||
SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1);
|
||||
|
||||
Reference in New Issue
Block a user