diff --git a/BizHawk.Emulation/BizHawk.Emulation.csproj b/BizHawk.Emulation/BizHawk.Emulation.csproj index efc5488022..8dd4fb7040 100644 --- a/BizHawk.Emulation/BizHawk.Emulation.csproj +++ b/BizHawk.Emulation/BizHawk.Emulation.csproj @@ -263,6 +263,7 @@ + diff --git a/BizHawk.Emulation/Consoles/Sega/Genesis/Cart/SaveRAM.cs b/BizHawk.Emulation/Consoles/Sega/Genesis/Cart/SaveRAM.cs index c4ccbbf387..da84efd0b7 100644 --- a/BizHawk.Emulation/Consoles/Sega/Genesis/Cart/SaveRAM.cs +++ b/BizHawk.Emulation/Consoles/Sega/Genesis/Cart/SaveRAM.cs @@ -14,7 +14,8 @@ namespace BizHawk.Emulation.Consoles.Sega void InitializeSaveRam(GameInfo game) { - // TODO if eeprom in use, abort saveram check + if (EepromEnabled) + return; if (game["DisableSaveRam"] || RH_SRamPresent == false) return; @@ -32,11 +33,7 @@ namespace BizHawk.Emulation.Consoles.Sega SaveRamLength = (SaveRamEndOffset - SaveRamStartOffset) + 1; if (SaveRamEveryOtherByte) - { - SaveRamStartOffset &= 0xFFFFFE; - SaveRamEndOffset &= 0xFFFFFE; SaveRamLength = ((SaveRamEndOffset - SaveRamStartOffset) / 2) + 1; - } SaveRAM = new byte[SaveRamLength]; diff --git a/BizHawk.Emulation/Consoles/Sega/Genesis/Genesis.cs b/BizHawk.Emulation/Consoles/Sega/Genesis/Genesis.cs index 400edb7538..4884e71f66 100644 --- a/BizHawk.Emulation/Consoles/Sega/Genesis/Genesis.cs +++ b/BizHawk.Emulation/Consoles/Sega/Genesis/Genesis.cs @@ -136,6 +136,7 @@ namespace BizHawk.Emulation.Consoles.Sega void InitializeCartHardware(GameInfo game) { LogCartInfo(); + InitializeEeprom(game); InitializeSaveRam(game); } diff --git a/BizHawk.Emulation/Consoles/Sega/Genesis/MemoryMap.68000.cs b/BizHawk.Emulation/Consoles/Sega/Genesis/MemoryMap.68000.cs index 226ad0733c..fb9e706eb0 100644 --- a/BizHawk.Emulation/Consoles/Sega/Genesis/MemoryMap.68000.cs +++ b/BizHawk.Emulation/Consoles/Sega/Genesis/MemoryMap.68000.cs @@ -167,6 +167,13 @@ namespace BizHawk.Emulation.Consoles.Sega return; } + if (EepromEnabled && (address == SclAddr || address == SdaInAddr)) + { + WriteByteEeprom(address, (byte) value); + return; + + } + Console.WriteLine("UNHANDLED WRITEB {0:X6}:{1:X2}", address, value); } diff --git a/BizHawk.MultiClient/output/gamedb_sega_md.txt b/BizHawk.MultiClient/output/gamedb_sega_md.txt index 240e360854..4cc52f43f8 100644 --- a/BizHawk.MultiClient/output/gamedb_sega_md.txt +++ b/BizHawk.MultiClient/output/gamedb_sega_md.txt @@ -5546,24 +5546,24 @@ D629DC27FF7657295BC6031142183926 Wolverine Adamantium Rage (UE) [h3C] GEN BFFB9630079B61024C67D7D3C9AA09B4 Wonder Boy III - Monster Lair (JE) [b1] GEN 17F53791945CE7CCD83A4E812E3705E4 Wonder Boy III - Monster Lair (JE) [c][!] GEN F992B15CC91DD24E3D3B7896D49B95E3 Wonder Boy III - Monster Lair (JE) [f1] GEN -EDBA0BDB192D47712EDBE0097F885F40 Wonder Boy in Monster World (UE) [!] GEN -69E5E95FA5B2C01EDD28B40B479C7FF0 Wonder Boy in Monster World (UE) [f1+C] GEN -70881D8F992E7222C667F815CD25FF8D Wonder Boy in Monster World (UE) [f1] GEN -6366092E18FB4CF310A651307472B531 Wonder Boy in Monster World (UE) [h1C] GEN -ED9C03FF6DDB59CC7B8EC6404FFD5C7B Wonder Boy in Monster World (UE) [h2C] GEN -945335637611A0951595FAE0994F4303 Wonder Boy in Monster World (UE) [o1] GEN -3524CBE579A50015D4674DB5DAC2E186 Wonder Boy in Monster World (UE) [o1][f1] GEN -73017C4267DD87223ABDE89313642396 Wonder Boy in Monster World (UE) [T+Fre] GEN -E25AFC5B755555397E4047061050AE05 Wonder Boy V - Monster World III (J) [!] GEN -E9AD2A8857B58F300B668619DB377640 Wonder Boy V - Monster World III (J) [b1] GEN -CC41CDDA50D55290E959673281FD4D11 Wonder Boy V - Monster World III (J) [b2] GEN -7571A54079024B762CFF639D670E6D12 Wonder Boy V - Monster World III (J) [f1+C] GEN -1494668708041AAA7B0AC4F5148390DF Wonder Boy V - Monster World III (J) [f1] GEN -11EF7EFC54760660D635567BFE420D93 Wonder Boy V - Monster World III (J) [f1][o1] GEN -0B1870D3132068A9A3018C684C275202 Wonder Boy V - Monster World III (J) [h1C] GEN -43451679C0EA5CE0DD0B5FA9FC1FDD00 Wonder Boy V - Monster World III (J) [o2+C] GEN -A8071EC317B58F98B729A34F2528B340 Wonder Boy V - Monster World III (J) [o2] GEN -1FB07182D41FB50800D3C4562DE802EF Wonder Boy V - Monster World III (J) [p1] GEN +EDBA0BDB192D47712EDBE0097F885F40 Wonder Boy in Monster World (UE) [!] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +69E5E95FA5B2C01EDD28B40B479C7FF0 Wonder Boy in Monster World (UE) [f1+C] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +70881D8F992E7222C667F815CD25FF8D Wonder Boy in Monster World (UE) [f1] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +6366092E18FB4CF310A651307472B531 Wonder Boy in Monster World (UE) [h1C] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +ED9C03FF6DDB59CC7B8EC6404FFD5C7B Wonder Boy in Monster World (UE) [h2C] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +945335637611A0951595FAE0994F4303 Wonder Boy in Monster World (UE) [o1] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +3524CBE579A50015D4674DB5DAC2E186 Wonder Boy in Monster World (UE) [o1][f1] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +73017C4267DD87223ABDE89313642396 Wonder Boy in Monster World (UE) [T+Fre] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +E25AFC5B755555397E4047061050AE05 Wonder Boy V - Monster World III (J) [!] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +E9AD2A8857B58F300B668619DB377640 Wonder Boy V - Monster World III (J) [b1] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +CC41CDDA50D55290E959673281FD4D11 Wonder Boy V - Monster World III (J) [b2] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +7571A54079024B762CFF639D670E6D12 Wonder Boy V - Monster World III (J) [f1+C] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +1494668708041AAA7B0AC4F5148390DF Wonder Boy V - Monster World III (J) [f1] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +11EF7EFC54760660D635567BFE420D93 Wonder Boy V - Monster World III (J) [f1][o1] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +0B1870D3132068A9A3018C684C275202 Wonder Boy V - Monster World III (J) [h1C] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +43451679C0EA5CE0DD0B5FA9FC1FDD00 Wonder Boy V - Monster World III (J) [o2+C] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +A8071EC317B58F98B729A34F2528B340 Wonder Boy V - Monster World III (J) [o2] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F +1FB07182D41FB50800D3C4562DE802EF Wonder Boy V - Monster World III (J) [p1] GEN EEPROM;SDA_IN=200001:0;SDA_OUT=200001:0;SCL=200001:1;EEPROM_ADDR_MASK=7F B772F18DD3FFF8B61A6DC801AA74ED07 Wonder Library (J) [!] GEN 9EF694AB80344A7CCED0D33F9C84A1B5 World Championship Soccer (JU) (REV00) [!] GEN 2C490E1AB0153C73990F72E3EAC3298A World Championship Soccer (JU) (REV02) [p1+1C] GEN