Fix GBC-AGB bios issues ()

All six combinations (bios, no bios) X (dmg, cgb, cgb in agb) should work now

Closes 
This commit is contained in:
nattthebear 2020-08-21 13:14:50 -04:00 committed by GitHub
parent 6dfb09167c
commit 18780a8752
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 26 deletions
output/dll
src
BizHawk.Emulation.Common/Database
BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy
submodules

Binary file not shown.

View File

@ -263,10 +263,18 @@ namespace BizHawk.Emulation.Common
FirmwareAndOption("a6120aed50831c9c0d95dbdf707820f601d9452e", 1024, "O2", "BIOS-C52", "O2_PhillipsC52.bin", "Phillips C52 Bios");
FirmwareAndOption("5130243429B40B01A14E1304D0394B8459A6FBAE", 1024, "G7400", "BIOS", "G7400_bios.bin", "G7400 Bios");
FirmwareAndOption("4ED31EC6B0B175BB109C0EB5FD3D193DA823339F", 256, "GB", "World", "GB_boot_ROM.gb", "Game Boy BIOS");
FirmwareAndOption("1293D68BF9643BC4F36954C1E80E38F39864528D", 2304, "GBC", "World", "GBC_boot_ROM.gb", "Game Boy Color BIOS");
Firmware("GB", "World", "Game Boy Boot Rom");
Option("GB", "World", File("4ed31ec6b0b175bb109c0eb5fd3d193da823339f", 256, "dmg.bin", "Game Boy Boot Rom"), FirmwareOptionStatus.Ideal);
Option("GB", "World", File("8bd501e31921e9601788316dbd3ce9833a97bcbc", 256, "dmg0.bin", "Game Boy Boot Rom (Early J Revision)"), FirmwareOptionStatus.Acceptable);
Option("GB", "World", File("4e68f9da03c310e84c523654b9026e51f26ce7f0", 256, "mgb.bin", "Game Boy Boot Rom (Pocket)"), FirmwareOptionStatus.Acceptable);
//FirmwareAndOption("A4A9208B798621D28327138DA024722DF03598C6", 2304, "GBC", "World", "GBC_boot_ROM.gb", "Game Boy Color BIOS");
Firmware("GBC", "World", "Game Boy Color Boot Rom");
Option("GBC", "World", File("1293d68bf9643bc4f36954c1e80e38f39864528d", 2304, "cgb.bin", "Game Boy Color Boot Rom"), FirmwareOptionStatus.Ideal);
Option("GBC", "World", File("df5a0d2d49de38fbd31cc2aab8e62c8550e655c0", 2304, "cgb0.bin", "Game Boy Color Boot Rom (Early Revision)"), FirmwareOptionStatus.Acceptable);
Firmware("GBC", "AGB", "Game Boy Color Boot Rom (GBA)");
Option("GBC", "AGB", File("fa5287e24b0fa533b3b5ef2b28a81245346c1a0f", 2304, "agb.bin", "Game Boy Color Boot Rom (GBA)"), FirmwareOptionStatus.Ideal);
Option("GBC", "AGB", File("1ecafa77ab3172193f3305486a857f443e28ebd9", 2304, "agb_gambatte.bin", "Game Boy Color Boot Rom (GBA, Gambatte RE)"), FirmwareOptionStatus.Bad);
Firmware("PCFX", "BIOS", "PCFX bios");
var pcfxbios = File("1A77FD83E337F906AECAB27A1604DB064CF10074", 1024 * 1024, "PCFX_bios.bin", "PCFX BIOS 1.00");

View File

@ -86,42 +86,33 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
}
byte[] bios;
string biosName;
string biosSystemId;
string biosId;
if ((flags & LibGambatte.LoadFlags.FORCE_DMG) == LibGambatte.LoadFlags.FORCE_DMG)
{
biosName = "GB";
biosSystemId = "GB";
biosId = "World";
IsCgb = false;
}
else
{
// TODO: Fix AGB bios mode stuff
// biosName = _syncSettings.GBACGB ? "AGB" : "GBC";
biosName = "GBC";
biosSystemId = "GBC";
biosId = _syncSettings.GBACGB ? "AGB" : "World";
IsCgb = true;
}
if (_syncSettings.EnableBIOS)
{
bios = comm.CoreFileProvider.GetFirmware(biosName, "World", true, "BIOS Not Found, Cannot Load. Change SyncSettings to run without BIOS.");
bios = comm.CoreFileProvider.GetFirmware(biosSystemId, biosId, true, "BIOS Not Found, Cannot Load. Change SyncSettings to run without BIOS.");
}
else
{
Lazy<byte[]> builtinBios;
switch (biosName)
{
case "GB":
builtinBios = Resources.SameboyDmgBoot;
break;
case "GBC":
builtinBios = Resources.SameboyCgbBoot;
break;
// TODO: This doesn't work; locks up before leaving the bios screen
// case "AGB":
// builtinBios = Resources.SameboyAgbBoot;
// break;
default:
throw new Exception("Internal GB Error (BIOS??)");
}
var builtinBios = (biosSystemId, biosId) switch {
("GB", "World") => Resources.SameboyDmgBoot,
("GBC", "World") => Resources.SameboyCgbBoot,
("GBC", "AGB") => Resources.SameboyAgbBoot,
(_, _) => throw new Exception("Internal GB Error (BIOS??)"),
};
bios = BizHawk.Common.Util.DecompressGzipFile(new MemoryStream(builtinBios.Value, false));
}

@ -1 +1 @@
Subproject commit df6d36fa7dab773f08c07716af5b7ae371a83a4b
Subproject commit 631fcd10d32d95a78dc4418fac168997ad33561a