Add support for Jncota variant, mapper 523
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
|
||||
/* Mappers:
|
||||
176 - Standard
|
||||
523 - Jncota KT-xxx (1 KiB->2 KiB, 2 KiB->4 KiB CHR, hard-wired nametable mirroring)
|
||||
523 - Jncota KT-xxx, re-release of 封神榜꞉ 伏魔三太子: 1 KiB->2 KiB, 2 KiB->4 KiB CHR, hard-wired nametable mirroring)
|
||||
|
||||
Submappers:
|
||||
0 - Standard
|
||||
@@ -101,15 +101,22 @@ static void cwrap(uint32 A, uint32 V)
|
||||
{
|
||||
int bank = 0;
|
||||
|
||||
/* some workaround for chr rom / ram access */
|
||||
if (!VROM_size)
|
||||
bank = 0;
|
||||
else if (CHRRAMSIZE && fk23_regs[0] & 0x20)
|
||||
bank = 0x10;
|
||||
|
||||
if (CHR_MIXED && V < 8) bank = 0x10; /* first 8K of chr bank is RAM */
|
||||
|
||||
setchr1r(bank, A, V);
|
||||
if (jncota523)
|
||||
{
|
||||
if (~A &0x0400) setchr2r(bank, A, V);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* some workaround for chr rom / ram access */
|
||||
if (!VROM_size)
|
||||
bank = 0;
|
||||
else if (CHRRAMSIZE && fk23_regs[0] & 0x20)
|
||||
bank = 0x10;
|
||||
|
||||
if (CHR_MIXED && V < 8) bank = 0x10; /* first 8K of chr bank is RAM */
|
||||
|
||||
setchr1r(bank, A, V);
|
||||
}
|
||||
}
|
||||
|
||||
static void SyncCHR(void)
|
||||
@@ -241,12 +248,15 @@ static void SyncWRAM(void)
|
||||
|
||||
static void SyncMIR(void)
|
||||
{
|
||||
if (jncota523) /* Jncota board has hard-wired mirroring */
|
||||
return;
|
||||
else
|
||||
switch (mmc3_mirr & (subType == 2? 0x03 : 0x01))
|
||||
{
|
||||
case 0: setmirror(MI_V); break;
|
||||
case 1: setmirror(MI_H); break;
|
||||
case 2: setmirror(MI_0); break;
|
||||
case 3: setmirror(MI_1); break;
|
||||
case 0: setmirror(MI_V); break;
|
||||
case 1: setmirror(MI_H); break;
|
||||
case 2: setmirror(MI_0); break;
|
||||
case 3: setmirror(MI_1); break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -517,6 +527,7 @@ void BMCFK23C_Init(CartInfo *info) {
|
||||
WRAMSIZE = 8 * 1024;
|
||||
}
|
||||
|
||||
jncota523 = 0;
|
||||
GenBMCFK23C_Init(info);
|
||||
}
|
||||
|
||||
@@ -530,6 +541,7 @@ void BMCFK23CA_Init(CartInfo *info)
|
||||
|
||||
WRAMSIZE = 8 * 1024;
|
||||
|
||||
jncota523 = 0;
|
||||
GenBMCFK23C_Init(info);
|
||||
}
|
||||
|
||||
@@ -539,6 +551,7 @@ void Super24_Init(CartInfo *info) {
|
||||
if (!UNIFchrrama)
|
||||
CHRRAMSIZE = 8 * 1024;
|
||||
|
||||
jncota523 = 0;
|
||||
GenBMCFK23C_Init(info);
|
||||
}
|
||||
|
||||
@@ -551,5 +564,13 @@ void WAIXINGFS005_Init(CartInfo *info)
|
||||
|
||||
WRAMSIZE = 32 * 1024;
|
||||
|
||||
jncota523 = 0;
|
||||
GenBMCFK23C_Init(info);
|
||||
}
|
||||
|
||||
void Mapper523_Init(CartInfo *info)
|
||||
{
|
||||
jncota523 = 1;
|
||||
WRAMSIZE = 8 * 1024;
|
||||
GenBMCFK23C_Init(info);
|
||||
}
|
||||
|
||||
@@ -793,6 +793,7 @@ INES_BOARD_BEGIN()
|
||||
INES_BOARD( "EH8813A", 519, UNLEH8813A_Init )
|
||||
INES_BOARD( "DREAMTECH01", 521, DreamTech01_Init )
|
||||
INES_BOARD( "LH10", 522, LH10_Init )
|
||||
INES_BOARD( "Jncota KT-???", 523, Mapper523_Init )
|
||||
INES_BOARD( "900218", 524, BTL900218_Init )
|
||||
INES_BOARD( "KS7021A", 525, UNLKS7021A_Init )
|
||||
INES_BOARD( "BJ-56", 526, UNLBJ56_Init )
|
||||
|
||||
@@ -284,6 +284,7 @@ void Mapper421_Init(CartInfo *);
|
||||
void Mapper422_Init(CartInfo *);
|
||||
void Mapper428_Init(CartInfo *);
|
||||
void Mapper516_Init(CartInfo *);
|
||||
void Mapper523_Init(CartInfo *);
|
||||
void Mapper533_Init(CartInfo *);
|
||||
void Mapper534_Init(CartInfo *);
|
||||
void Mapper538_Init(CartInfo *);
|
||||
|
||||
Reference in New Issue
Block a user