Added mapper 441 submapper 1.

This commit is contained in:
NewRisingSun
2025-12-14 17:26:03 +01:00
parent 78b9d810e1
commit 0caa462190

View File

@@ -18,14 +18,17 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/* 850335C PCB */
/* 850335C PCB (submapper 0)
840415C/43-170 PCB (submapper 1) */
#include "mapinc.h"
#include "mmc3.h"
static uint8 submapper;
static void Mapper441_PRGWrap(uint32 A, uint8 V) {
int prgAND =EXPREGS[0] &0x08? 0x0F: 0x1F;
int prgOR =EXPREGS[0] <<4 &0x30;
int prgAND = EXPREGS[0] &0x08? 0x0F: 0x1F;
int prgOR = EXPREGS[0] <<4 &0x30;
if (EXPREGS[0] &0x04) {
if (~A &0x4000) {
setprg8(A, ~2 &V &prgAND | prgOR &~prgAND);
@@ -36,14 +39,17 @@ static void Mapper441_PRGWrap(uint32 A, uint8 V) {
}
static void Mapper441_CHRWrap(uint32 A, uint8 V) {
int chrAND =EXPREGS[0] &0x40? 0x7F: 0xFF;
int chrOR =EXPREGS[0] <<3 &0x180;
int chrAND = EXPREGS[0] &0x40? 0x7F: 0xFF;
int chrOR = EXPREGS[0] <<3 &0x180;
setchr1(A, V &chrAND | chrOR &~chrAND);
}
static DECLFW(Mapper441_Write) {
if (~EXPREGS[0] &0x80) {
EXPREGS[0] =V;
if (submapper == 1)
EXPREGS[0] = V &~4 | A &4;
else
EXPREGS[0] = V;
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
@@ -51,17 +57,18 @@ static DECLFW(Mapper441_Write) {
}
static void Mapper441_Reset(void) {
EXPREGS[0] =0;
EXPREGS[0] = 0;
MMC3RegReset();
}
static void Mapper441_Power(void) {
EXPREGS[0] =0;
EXPREGS[0] = 0;
GenMMC3Power();
SetWriteHandler(0x6000, 0x7FFF, Mapper441_Write);
}
void Mapper441_Init(CartInfo *info) {
submapper = info->submapper;
GenMMC3_Init(info, 256, 256, 8, 0);
cwrap = Mapper441_CHRWrap;
pwrap = Mapper441_PRGWrap;