Add mapper 52 submapper 13 (CHR-ROM+CHR-RAM)

This commit is contained in:
NewRisingSun 2022-08-06 17:29:24 +02:00
parent 24bc7a43bd
commit 6d13706e53

View File

@ -659,7 +659,10 @@ 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! */
setchr1(A, bank | (V & mask));
if (CHRRAM && (EXPREGS[0] &3) ==3)
setchr1r(0x10, A, bank | (V & mask));
else
setchr1(A, bank | (V & mask));
}
static DECLFW(M52Write) {
@ -691,6 +694,12 @@ void Mapper52_Init(CartInfo *info) {
info->Reset = M52Reset;
info->Power = M52Power;
AddExState(EXPREGS, 2, 0, "EXPR");
if (info->iNES2 && info->submapper ==13) {
CHRRAMSIZE = 8192;
CHRRAM = (uint8*)FCEU_gmalloc(CHRRAMSIZE);
SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1);
AddExState(CHRRAM, CHRRAMSIZE, 0, "CHRR");
}
}
/* ---------------------------- Mapper 76 ------------------------------- */