Added mapper 392

This commit is contained in:
NewRisingSun
2025-04-05 20:51:28 +02:00
committed by LibretroAdmin
parent d5179047e4
commit 7bc763e5ff
3 changed files with 53 additions and 1 deletions

View File

@@ -21,7 +21,7 @@
*/
/* Code for emulating iNES mappers 4,12,44,45,47,49,52,74,114,115,116,118,
119,165,205,245,249,250,254,361,366,367,373,555
119,165,205,245,249,250,254,361,366,367,373,392,555
*/
#include "mapinc.h"
@@ -1354,6 +1354,7 @@ void GN45_Init(CartInfo *info) {
AddExState(EXPREGS, 1, 0, "EXPR");
}
/* ---------------------------- Mapper 245 ------------------------------ */
static void M245CW(uint32 A, uint8 V) {
@@ -1579,6 +1580,55 @@ void Mapper555_Init(CartInfo *info) {
AddExState(CHRRAM, CHRRAMSIZE, 0, "CHRR");
}
/* ---------------------------- Mapper 392 ------------------------------ */
static void M392PW(uint32 A, uint8 V) {
if (EXPREGS[0] &0x10)
setprg8(A, V &0x0F | EXPREGS[0] <<4);
else
setprg32(0x8000, 0x20);
}
static void M392CW(uint32 A, uint8 V) {
if (EXPREGS[0] &0x10)
setchr1(A, V &0x7F | EXPREGS[0] <<7);
else
setchr8r(0x10, 0);
}
static DECLFW(M392Write) {
if (~EXPREGS[0] &0x10) {
EXPREGS[0] = V;
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
CartBW(A, V);
}
static void M392Power(void) {
EXPREGS[0] = 0;
GenMMC3Power();
SetWriteHandler(0x6000, 0x7fff, M392Write);
}
static void M392Reset(void) {
EXPREGS[0] = 0;
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
void Mapper392_Init(CartInfo *info) {
GenMMC3_Init(info, 128, 128, 8, info->battery);
cwrap = M392CW;
pwrap = M392PW;
info->Power = M392Power;
info->Reset = M392Reset;
AddExState(EXPREGS, 1, 0, "EXPR");
CHRRAMSIZE = 8 * 1024;
CHRRAM = (uint8 *)FCEU_gmalloc(CHRRAMSIZE);
SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSIZE, 1);
}
/* ---------------------------- UNIF Boards ----------------------------- */
void TBROM_Init(CartInfo *info) {

View File

@@ -795,6 +795,7 @@ INES_BOARD_BEGIN()
INES_BOARD( "Caltron 9-in-1", 389, Mapper389_Init )
INES_BOARD( "Realtec 8031", 390, Mapper390_Init )
INES_BOARD( "BS-110", 391, Mapper391_Init )
INES_BOARD( "00202650", 392, Mapper392_Init )
INES_BOARD( "820720C", 393, Mapper393_Init )
INES_BOARD( "HSK007", 394, Mapper394_Init )
INES_BOARD( "Realtec 8210", 395, Mapper395_Init )

View File

@@ -307,6 +307,7 @@ void Mapper388_Init(CartInfo *);
void Mapper389_Init(CartInfo *);
void Mapper390_Init(CartInfo *);
void Mapper391_Init(CartInfo *);
void Mapper392_Init(CartInfo *);
void Mapper393_Init(CartInfo *);
void Mapper394_Init(CartInfo *);
void Mapper395_Init(CartInfo *);