Attempt to fix builds
This commit is contained in:
parent
26b2438365
commit
732fdc6bbf
|
@ -57,15 +57,15 @@ static void StateRestore(int version) {
|
|||
Sync();
|
||||
}
|
||||
|
||||
void Mapper474_Init(CartInfo* info) {
|
||||
if (info->submapper == 1)
|
||||
{
|
||||
info->Power = M474Power_submapper1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// submapper 0
|
||||
info->Power = M474Power;
|
||||
}
|
||||
GameStateRestore = StateRestore;
|
||||
}
|
||||
//void Mapper474_Init(CartInfo* info) {
|
||||
// if (info->submapper == 1)
|
||||
// {
|
||||
// info->Power = M474Power_submapper1;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // submapper 0
|
||||
// info->Power = M474Power;
|
||||
// }
|
||||
// GameStateRestore = StateRestore;
|
||||
//}
|
||||
|
|
|
@ -44,7 +44,8 @@ static void LatchPower(void) {
|
|||
SetReadHandler(0x6000, 0xFFFF, CartBR);
|
||||
SetWriteHandler(0x6000, 0x7FFF, CartBW);
|
||||
FCEU_CheatAddRAM(WRAMSIZE >> 10, 0x6000, WRAM);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
SetReadHandler(0x8000, 0xFFFF, CartBR);
|
||||
}
|
||||
SetWriteHandler(addrreg0, addrreg1, LatchWrite);
|
||||
|
@ -299,7 +300,8 @@ static void M78Sync() {
|
|||
setchr8(latche >> 4);
|
||||
if (submapper == 3) {
|
||||
setmirror((latche >> 3) & 1);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
setmirror(MI_0 + ((latche >> 3) & 1));
|
||||
}
|
||||
}
|
||||
|
@ -575,3 +577,82 @@ static void BMC11160Sync(void) {
|
|||
void BMC11160_Init(CartInfo* info) {
|
||||
Latch_Init(info, BMC11160Sync, 0, 0x8000, 0xFFFF, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
//------------------ Akerasoft NROM3XX /Mapper 474 ---------------------------
|
||||
// Simple Akerasoft NROM3XX
|
||||
|
||||
static readfunc defapuread[0x1000];
|
||||
static uint8 subMapper = 0;
|
||||
static DECLFR(M474ReadCart) {
|
||||
if (subMapper == 0)
|
||||
{
|
||||
if (A < 0x4020)
|
||||
{
|
||||
return defapuread[A - 0x4000](A);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Page[A >> 11][A];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (A < 0x4800)
|
||||
{
|
||||
return defapuread[A - 0x4000](A);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Page[A >> 11][A];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void M474Sync(void) {
|
||||
setchr8(0);
|
||||
setprg16(0x4000, 0);
|
||||
setprg16(0x8000, 1);
|
||||
setprg16(0xC000, 2);
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void M474Power(void) {
|
||||
// 16 bytes: Header.PRG ROM size must be 3. Trainer and battery are forbidden; NES 2.0 PRG RAM size must be 0.
|
||||
// 2048 bytes: Ignored.
|
||||
// 47104 bytes : PRG ROM mapped to $4800 - $FFFF.
|
||||
// 49119 bytes : PRG ROM mapped to $4020 - $FFFF.
|
||||
// 8192¡Án bytes : CHR ROM mapped to PPU $0000 - $1FFF
|
||||
// My English is very poor!
|
||||
// In theory, it should not exceed 48K,I hope Fceux can improve the support for nes 2.0
|
||||
if (PRGsize[0] >= 64 * 1024)
|
||||
{
|
||||
SetupCartCHRMapping(0x00, &PRGptr[0][0xC000], 0x2000, 0);
|
||||
// this is hack..... fceux seems to have an error reading PRG settings
|
||||
// not modify fceux other code,
|
||||
// fceux load prg is 64k, have 8k chr in 0xC000
|
||||
// fceux load chr is 8k,but 0xFF or 0x00
|
||||
}
|
||||
if (subMapper == 1)
|
||||
{
|
||||
SetReadHandler(0x4800, 0xFFFF, M474ReadCart);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetReadHandler(0x4020, 0xFFFF, M474ReadCart);
|
||||
}
|
||||
M474Sync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Mapper474_Init(CartInfo* info) {
|
||||
info->Power = M474Power;
|
||||
subMapper = info->submapper;
|
||||
|
||||
for (int i = 0; i < 0x1000; i++) {
|
||||
defapuread[i] = GetReadHandler(0x4000 | i);
|
||||
}
|
||||
}
|
21
src/ines.cpp
21
src/ines.cpp
|
@ -288,7 +288,8 @@ static void SetInputNes20(uint8 expansion) {
|
|||
GameInfo->input[0] = moo[x].input1;
|
||||
GameInfo->input[1] = moo[x].input2;
|
||||
GameInfo->inputfc = moo[x].inputfc;
|
||||
break; }
|
||||
break;
|
||||
}
|
||||
x++;
|
||||
}
|
||||
}
|
||||
|
@ -435,7 +436,8 @@ static void CheckHInfo(uint64 partialmd5) {
|
|||
tofix |= 2;
|
||||
Mirroring = 0;
|
||||
}
|
||||
} else if (Mirroring != moo[x].mirror) {
|
||||
}
|
||||
else if (Mirroring != moo[x].mirror) {
|
||||
if (Mirroring != (moo[x].mirror & ~4))
|
||||
if ((moo[x].mirror & ~4) <= 2) /* Don't complain if one-screen mirroring
|
||||
needs to be set(the iNES header can't
|
||||
|
@ -795,8 +797,7 @@ BMAPPINGLocal bmap[] = {
|
|||
|
||||
{"Impact Soft MMC3 Flash Board", 406, Mapper406_Init },
|
||||
{"INX_007T_V01", 470, INX_007T_Init },
|
||||
{"Akerasoft NROM3XX", 474, Mapper474_Init },
|
||||
|
||||
{"Akerasoft NROM3XX", 474, Mapper474_Init }, //simple implementation
|
||||
{"KONAMI QTAi Board", 547, QTAi_Init },
|
||||
|
||||
{"", 0, NULL}
|
||||
|
@ -832,7 +833,8 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode) {
|
|||
|
||||
if (head.ROM_type & 8) {
|
||||
Mirroring = 2;
|
||||
} else
|
||||
}
|
||||
else
|
||||
Mirroring = (head.ROM_type & 1);
|
||||
|
||||
MirroringAs2bits = head.ROM_type & 1;
|
||||
|
@ -1022,7 +1024,8 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode) {
|
|||
if (Mirroring == 2) {
|
||||
ExtraNTARAM = (uint8*)FCEU_gmalloc(2048);
|
||||
SetupCartMirroring(4, 1, ExtraNTARAM);
|
||||
} else if (Mirroring >= 0x10)
|
||||
}
|
||||
else if (Mirroring >= 0x10)
|
||||
SetupCartMirroring(2 + (Mirroring & 1), 1, 0);
|
||||
else
|
||||
SetupCartMirroring(Mirroring & 1, (Mirroring & 4) >> 2, 0);
|
||||
|
@ -1065,7 +1068,8 @@ init_ok:
|
|||
// Extract Filename only. Should account for Windows/Unix this way.
|
||||
if (strrchr(name, '/')) {
|
||||
name = strrchr(name, '/') + 1;
|
||||
} else if (strrchr(name, '\\')) {
|
||||
}
|
||||
else if (strrchr(name, '\\')) {
|
||||
name = strrchr(name, '\\') + 1;
|
||||
}
|
||||
|
||||
|
@ -1078,7 +1082,8 @@ init_ok:
|
|||
// TODO: MD5 check against a list of all known PAL games instead?
|
||||
if (iNES2) {
|
||||
FCEUI_SetVidSystem(((head.TV_system & 3) == 1) ? 1 : 0);
|
||||
} else if (OverwriteVidMode) {
|
||||
}
|
||||
else if (OverwriteVidMode) {
|
||||
if (strstr(name, "(E)") || strstr(name, "(e)")
|
||||
|| strstr(name, "(Europe)") || strstr(name, "(PAL)")
|
||||
|| strstr(name, "(F)") || strstr(name, "(f)")
|
||||
|
|
Loading…
Reference in New Issue