diff --git a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/SxROM.cs b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/SxROM.cs index 0e544564da..79f89981b8 100644 --- a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/SxROM.cs +++ b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/SxROM.cs @@ -190,7 +190,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.Boards { base.Initialize(romInfo, nes); - Debug.Assert(RomInfo.PRG_Size == 1 || RomInfo.PRG_Size == 2 || RomInfo.PRG_Size == 4 || RomInfo.PRG_Size == 8 || RomInfo.PRG_Size == 16); + Debug.Assert(RomInfo.PRG_Size == 1 || RomInfo.PRG_Size == 2 || RomInfo.PRG_Size == 4 || RomInfo.PRG_Size == 8 || RomInfo.PRG_Size == 16 || RomInfo.PRG_Size == 32); prg_mask = RomInfo.PRG_Size - 1; Debug.Assert(RomInfo.CRAM_Size == -1, "don't specify in gamedb, it is redundant"); @@ -242,7 +242,6 @@ namespace BizHawk.Emulation.Consoles.Nintendo.Boards romInfo.CHR_Size = 16; break; case "SIROM": - Debug.Assert(1 == 2, "TODO: Please contact the emulator authors and tell them which game uses SIROM!"); romInfo.PRG_Size = 2; RomInfo.CRAM_Size = 0; RomInfo.PRAM_Size = 0; @@ -257,8 +256,16 @@ namespace BizHawk.Emulation.Consoles.Nintendo.Boards RomInfo.CRAM_Size = 0; break; case "SLROM": + Debug.Assert(RomInfo.CHR_Size == -1, "don't specify in gamedb, it is redundant"); + romInfo.CHR_Size = 16; + RomInfo.PRAM_Size = 0; + RomInfo.CRAM_Size = 0; break; case "SL1ROM": + Debug.Assert(RomInfo.CHR_Size == -1, "don't specify in gamedb, it is redundant"); + romInfo.CHR_Size = 16; + RomInfo.PRAM_Size = 0; + RomInfo.CRAM_Size = 0; break; case "SL2ROM": //these boards have CHR roms and nothing else interesting @@ -266,10 +273,19 @@ namespace BizHawk.Emulation.Consoles.Nintendo.Boards RomInfo.PRAM_Size = 0; break; case "SL3ROM": + RomInfo.CRAM_Size = 0; + RomInfo.PRAM_Size = 0; break; case "SLRROM": + RomInfo.CRAM_Size = 0; + RomInfo.PRAM_Size = 0; break; case "SMROM": + Debug.Assert(RomInfo.CHR_Size == -1, "don't specify in gamedb, it is redundant"); + RomInfo.CHR_Size = 0; + RomInfo.PRAM_Size = 0; + RomInfo.CRAM_Size = 8; + RomInfo.PRG_Size = 16; break; case "SNROM": Debug.Assert(RomInfo.CHR_Size == -1, "don't specify in gamedb, it is redundant"); @@ -278,10 +294,23 @@ namespace BizHawk.Emulation.Consoles.Nintendo.Boards RomInfo.PRAM_Size = 8; break; case "SOROM": + Debug.Assert(RomInfo.CHR_Size == -1, "don't specify in gamedb, it is redundant"); + romInfo.CHR_Size = 0; + RomInfo.CRAM_Size = 8; + RomInfo.PRAM_Size = 16; break; case "SUROM": + Debug.Assert(RomInfo.CHR_Size == -1, "don't specify in gamedb, it is redundant"); + RomInfo.PRG_Size = 32; + RomInfo.PRAM_Size = 8; + RomInfo.CRAM_Size = 8; + RomInfo.CHR_Size = 0; break; case "SXROM": + Debug.Assert(RomInfo.CHR_Size == -1, "don't specify in gamedb, it is redundant"); + RomInfo.PRAM_Size = 32; + RomInfo.CHR_Size = 0; + RomInfo.CRAM_Size = 8; break; default: throw new InvalidOperationException(); } @@ -296,7 +325,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo.Boards else cram = new byte[0]; //some boards contain PRAM. we only understand one size right now. set it up if it is there. - Debug.Assert(RomInfo.PRAM_Size == 0 || RomInfo.PRAM_Size == 8); + Debug.Assert(RomInfo.PRAM_Size == 0 || RomInfo.PRAM_Size == 8 || RomInfo.PRAM_Size == 16 || RomInfo.PRAM_Size == 32); if (RomInfo.PRAM_Size != 0) { pram = new byte[RomInfo.PRAM_Size * 1024]; diff --git a/BizHawk.Emulation/Consoles/Nintendo/NES/NES.cs b/BizHawk.Emulation/Consoles/Nintendo/NES/NES.cs index 94aa8d91f2..930f1eff44 100644 --- a/BizHawk.Emulation/Consoles/Nintendo/NES/NES.cs +++ b/BizHawk.Emulation/Consoles/Nintendo/NES/NES.cs @@ -19,6 +19,9 @@ namespace BizHawk.Emulation.Consoles.Nintendo //Dragon Warrior (SBROM) - Black screen only //Family Feud - Fails to get past intro screen //Air Wolf - Black screen + //Boyo and His Blob - Hangs on intro screen + //Goal = graphics garble (looks identical to Zelda 2 problem) + //Nobunaga's Ambition - black screen //the main rom class that contains all information necessary for the board to operate public class RomInfo diff --git a/BizHawk.MultiClient/output/gamedb.txt b/BizHawk.MultiClient/output/gamedb.txt index 7196dd32de..343d662ad0 100644 --- a/BizHawk.MultiClient/output/gamedb.txt +++ b/BizHawk.MultiClient/output/gamedb.txt @@ -2330,19 +2330,24 @@ BD377B49DCC269C6270EC0EA6336BAF5 Adventures of Lolo (U) NES board=SEROM;PRG=2; A4309FA076EBEDDCB28A25F53746D4DC Bard's Tale, The Tales of the Unknown (U) NES board=SNROM;PRG=8;bat 12B0DBC4F2B22A50D0BB53C4929217F0 Blaster Master (U) NES board=SL2ROM;PRG=8;CHR=16 FFCC592A3F063C1DCC87CB5E0F81C8AF Bomberman II (U) NES board=SNROM;PRG=8 +F182863A759F547E59FE98B2142F1B37 Boy and His Blob, A - Trouble on Blobolonia (U) NES board=SLROM;PRG=8 629FCEEC5476CDD3FAA371891905EA02 Bubble Bobble (U) NES board=SFROM;PRG=8;CHR=4 6BC8F54DC358AA35F6259715E5143B37 Bug's Bunny Crazy Castle (U) NES board=SBROM;PRG=4;CHR=4 755F9086B0567243B3CE25CC8A6DFD17 Castlevania II - Simon's Quest (U) NES board=SL2ROM;PRG=8;CHR=16 +E734AD3125A2DC0D1D1F07BECD2B6478 Demon Sword (U) NES board=SL1ROM;PRG=8 E8382F82570BC616B0BCC02C843C1B79 Dragon Warrior (U) NES board=SAROM;CHR=2;PRG=4 CCDB4563C9004d862DCF3A98C7937C22 Dragon Warrior 2 (U) NES board=SNROM;PRG=16;bat E2297D6FBD42A09b162E84507ACF4C04 Family Feud (U) NES board=SHROM;PRG=2 24AE5EDF8375162F91A6846D3202E3D6 Final Fantasy (U) NES board=SNROM;PRG=16;bat 881ECC27F0D3B10ED63DCC68C2B20ADC Final Fantasy (J) NES board=SNROM;PRG=16;bat +C5B8631BC83FFD1F30C85C355ED592AB Frankenstein - The Monster Returns NES board=SLRROM;PRG=8;CHR=16 +A58EE614F9BC3F59393180BB52689DDC Goal! NES board=SL3ROM;PRG=16;CHR=16 9A857B52042A11D021D596E5EE528585 Kid Icarus (UE) NES board=SNROM;PRG=8 D9A1631D5C32D35594B9484862A26CBA Legend of Zelda, The (Rev 0) (U) NES board=SNROM;PRG=8;bat 63D7BD4604203F833C64E0DF7B2AF949 Mechanized Attack (U) NES board=SCROM;PRG=4 0527A0EE512F69E08B8DB6DC97964632 Mega Man 2 (U) NES board=SGROM;PRG=16 B2D2D9ED68B3E5E0D29053EA525BD37C Metroid (U) NES board=SNROM;PRG=8 +AAD319732327BD12BC808D7D51C16554 Nobunaga's Ambition (U) NES board=SOROM;PRG=16;bat E12F3FD85F96F9A61FE38626A1B5CEFA Spot (J) NES board=SNROM;PRG=8 44F5B716CF5EE0164C151106D0E68DCE Spot (U) NES board=SNROM;PRG=8 88C0493FB1146834836C0FF4F3E06E45 Zelda II - The Adventure of Link (U) NES board=SKROM;PRG=8