@@ -369,7 +369,7 @@ static DECLFW(Mapper5_write) {
|
||||
case 0x5126:
|
||||
case 0x5127:
|
||||
mmc5ABMode = 0;
|
||||
CHRBanksA[A & 7] = V;
|
||||
CHRBanksA[A & 7] = V | ((MMC50x5130 & 0x3) << 8);
|
||||
MMC5CHRA();
|
||||
break;
|
||||
case 0x5128:
|
||||
@@ -377,9 +377,10 @@ static DECLFW(Mapper5_write) {
|
||||
case 0x512a:
|
||||
case 0x512b:
|
||||
mmc5ABMode = 1;
|
||||
CHRBanksB[A & 3] = V;
|
||||
CHRBanksB[A & 3] = V | ((MMC50x5130 & 0x3) << 8);
|
||||
MMC5CHRB();
|
||||
break;
|
||||
case 0x5130: MMC50x5130 = V; break;
|
||||
case 0x5200: MMC5HackSPMode = V; break;
|
||||
case 0x5201: MMC5HackSPScroll = (V >> 3) & 0x1F; break;
|
||||
case 0x5202: MMC5HackSPPage = V & 0x3F; break;
|
||||
@@ -756,6 +757,7 @@ static void GenMMC5_Init(CartInfo *info, int wsize, int battery) {
|
||||
AddExState(&MMC5HackSPMode, 1, 0, "SPLM");
|
||||
AddExState(&MMC5HackSPScroll, 1, 0, "SPLS");
|
||||
AddExState(&MMC5HackSPPage, 1, 0, "SPLP");
|
||||
AddExState(&MMC50x5130, 1, 0, "5130");
|
||||
AddExState(MMC5_StateRegs, ~0, 0, 0);
|
||||
|
||||
MMC5WRAMsize = wsize / 8;
|
||||
|
||||
@@ -32,6 +32,7 @@ extern int MMC5Hack, PEC586Hack;
|
||||
extern uint8 *MMC5HackVROMPTR;
|
||||
extern uint8 MMC5HackCHRMode;
|
||||
extern uint8 MMC5HackSPMode;
|
||||
extern uint8 MMC50x5130;
|
||||
extern uint8 MMC5HackSPScroll;
|
||||
extern uint8 MMC5HackSPPage;
|
||||
|
||||
|
||||
@@ -100,6 +100,7 @@ uint8 *MMC5HackExNTARAMPtr = 0;
|
||||
uint8 *MMC5HackVROMPTR = 0;
|
||||
uint8 MMC5HackCHRMode = 0;
|
||||
uint8 MMC5HackSPMode = 0;
|
||||
uint8 MMC50x5130 = 0;
|
||||
uint8 MMC5HackSPScroll = 0;
|
||||
uint8 MMC5HackSPPage = 0;
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@ pshift[1] <<= 8;
|
||||
#ifdef PPUT_MMC5CHR1
|
||||
C = MMC5HackVROMPTR;
|
||||
C += (((MMC5HackExNTARAMPtr[RefreshAddr & 0x3ff]) & 0x3f & MMC5HackVROMMask) << 12) + (vadr & 0xfff);
|
||||
C += (MMC50x5130 & 0x3) << 18;
|
||||
#elif defined(PPUT_MMC5)
|
||||
C = MMC5BGVRAMADR(vadr);
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user