NESHawk: Fix some unlicensed games

This commit is contained in:
alyosha-tas 2017-12-02 10:03:27 -05:00
parent d840769a70
commit 5e481a6083
2 changed files with 7 additions and 22 deletions

View File

@ -275,6 +275,7 @@ sha1:6AAA5521F91F101448E77C996C9802015578400C Dooly_Bravo_Land NES board=MAPPE
sha1:4EBC1ED9665C36913D0F05129E6A54787BAD3165 Dragon Ball 3 - Gokuu Den (Japan) (Rev 1) NES board=BANDAI-FCG-2;PRG=128;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 sha1:4EBC1ED9665C36913D0F05129E6A54787BAD3165 Dragon Ball 3 - Gokuu Den (Japan) (Rev 1) NES board=BANDAI-FCG-2;PRG=128;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1
sha1:5A6DFDD8A2D62EBE313A6FDB986C3585077BB348 Final Combat (Asia) (NTSC) (Unl) NES board=MAPPER139 sha1:5A6DFDD8A2D62EBE313A6FDB986C3585077BB348 Final Combat (Asia) (NTSC) (Unl) NES board=MAPPER139
sha1:DFAF6D81280ADBEB2ADF3DAB38E536B0F2FDFC76 Final Combat (Asia) (PAL) (Unl) NES board=MAPPER139;system=NES-PAL sha1:DFAF6D81280ADBEB2ADF3DAB38E536B0F2FDFC76 Final Combat (Asia) (PAL) (Unl) NES board=MAPPER139;system=NES-PAL
sha1:433CEC30E71DCA31E32B8A44A0D534DBFE7039CA BoogerMan II (RexSoft) [!] NES board=UNIF_UNL-KOF97
;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- ;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------

View File

@ -33,36 +33,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
public override void WritePRG(int addr, byte value) public override void WritePRG(int addr, byte value)
{ {
if (addr < 0x1000) // 0x8000 - 0x8FFF value = Unscramble(value);
{
base.WritePRG(addr & 1, Unscramble(value));
}
else if (addr == 0x1000) // 9000 = 8001 if (addr == 0x1000) // 9000 = 8001
{ {
base.WritePRG(1, Unscramble(value)); base.WritePRG(1, value);
} }
else if (addr == 0x2000) // A000 = 8000)
{
base.WritePRG(0, Unscramble(value));
}
else if (addr == 0x5000) // D000 = C001 else if (addr == 0x5000) // D000 = C001
{ {
base.WritePRG(0x4001, Unscramble(value)); base.WritePRG(0x4001, value);
} }
else if (addr == 0x7000) // F000 = E001
else if (addr >= 0x6000 && addr < 0x7000) // 0xE0000 - 0xEFFF
{ {
base.WritePRG(addr & 1, Unscramble(value)); base.WritePRG(0x6001, value);
} }
else if (addr == 0x7000) // F000
{
base.WritePRG(0x6001, Unscramble(value));
}
else else
{ {
base.WritePRG(addr, value); base.WritePRG(addr, value);