Added mapper 441 submapper 1.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user