diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/TLSROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/TLSROM.cs index 39ca85d3a4..29a489e96d 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/TLSROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/TLSROM.cs @@ -14,6 +14,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES AssertPrg(128); AssertChr(128); AssertVram(0); AssertWram(0); break; case "MAPPER118": + AssertVram(0); + break; case "HVC-TKSROM": //ys III: wanderers from ys (J) AssertPrg(256); AssertChr(128); AssertVram(0); AssertWram(8); AssertBattery(true); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs index 4b25ceec8a..073353eb0c 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs @@ -320,6 +320,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case "MAPPER116_HACKY": break; case "MAPPER001": + // there's no way to define PRG oversize for mapper001 due to how the MMC1 regs work + // so 512KB must mean SUROM or SXROM. SUROM is more common, so we try that + if (Cart.prg_size > 256) + return false; break; case "MAPPER171": // Tui Do Woo Ma Jeung AssertPrg(32); AssertChr(32); Cart.wram_size = 0; @@ -520,11 +524,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES switch (Cart.board_type) { + case "MAPPER001": + // we try to heuristic match to iNES 001 roms with big PRG only + if (Cart.prg_size <= 256) + return false; + AssertPrg(512); AssertChr(0); + Cart.vram_size = 8; + Cart.wram_size = 8; + Cart.wram_battery = true; // all SUROM boards had batteries + break; case "NES-SUROM": //dragon warrior 4 case "HVC-SUROM": AssertPrg(512); AssertChr(0); AssertVram(8); AssertWram(8); break; - default: return false; + default: + return false; } BaseConfigure();