NES - Finish up remaining SxROM boards

This commit is contained in:
andres.delikat 2011-03-04 15:01:02 +00:00
parent c9d0f7a2fb
commit e0af256a33
3 changed files with 40 additions and 3 deletions
BizHawk.Emulation/Consoles/Nintendo/NES
BizHawk.MultiClient/output

View File

@ -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];

View File

@ -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

View File

@ -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