Simplify Gambatte's sync settings for selecting GBA (#2431)

Having GBA be a console mode is more straightforward for users to understand and a more logical way of arranging options. GBA is literally a console mode, not an additional modifier to a console mode.
This commit is contained in:
RetroEdit 2020-09-27 18:06:55 +00:00 committed by GitHub
parent e4d4c3a9d8
commit 3adcc26752
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 14 deletions

View File

@ -224,7 +224,6 @@ namespace BizHawk.Client.EmuHawk
_config.PreferredCores["GBC"] = CoreNames.Gambatte; _config.PreferredCores["GBC"] = CoreNames.Gambatte;
var s = GetSyncSettings<Gameboy, Gameboy.GambatteSyncSettings>(); var s = GetSyncSettings<Gameboy, Gameboy.GambatteSyncSettings>();
s.EnableBIOS = true; s.EnableBIOS = true;
s.GBACGB = false;
PutSyncSettings<Gameboy>(s); PutSyncSettings<Gameboy>(s);
} }

View File

@ -97,19 +97,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
{ {
Auto, Auto,
GB, GB,
GBC GBC,
GBA
} }
[DisplayName("Console Mode")] [DisplayName("Console Mode")]
[Description("Pick which console to run, 'Auto' chooses from ROM header, 'GB' and 'GBC' chooses the respective system")] [Description("Pick which console to run, 'Auto' chooses from ROM header; 'GB', 'GBC', and 'GBA' chooses the respective system")]
[DefaultValue(ConsoleModeType.Auto)] [DefaultValue(ConsoleModeType.Auto)]
public ConsoleModeType ConsoleMode { get; set; } public ConsoleModeType ConsoleMode { get; set; }
[DisplayName("CGB in GBA")]
[Description("Emulate GBA hardware running a CGB game, instead of CGB hardware. Relevant only for titles that detect the presense of a GBA, such as Shantae.")]
[DefaultValue(false)]
public bool GBACGB { get; set; }
[DisplayName("Multicart Compatibility")] [DisplayName("Multicart Compatibility")]
[Description("Use special compatibility hacks for certain multicart games. Relevant only for specific multicarts.")] [Description("Use special compatibility hacks for certain multicart games. Relevant only for specific multicarts.")]
[DefaultValue(false)] [DefaultValue(false)]

View File

@ -64,17 +64,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
break; break;
case GambatteSyncSettings.ConsoleModeType.GBC: case GambatteSyncSettings.ConsoleModeType.GBC:
break; break;
case GambatteSyncSettings.ConsoleModeType.GBA:
flags |= LibGambatte.LoadFlags.GBA_CGB;
break;
default: default:
if (game.System == "GB") if (game.System == "GB")
flags |= LibGambatte.LoadFlags.FORCE_DMG; flags |= LibGambatte.LoadFlags.FORCE_DMG;
break; break;
} }
if (_syncSettings.GBACGB)
{
flags |= LibGambatte.LoadFlags.GBA_CGB;
}
if (_syncSettings.MulticartCompat) if (_syncSettings.MulticartCompat)
{ {
flags |= LibGambatte.LoadFlags.MULTICART_COMPAT; flags |= LibGambatte.LoadFlags.MULTICART_COMPAT;
@ -97,7 +95,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
else else
{ {
biosSystemId = "GBC"; biosSystemId = "GBC";
biosId = _syncSettings.GBACGB ? "AGB" : "World"; biosId = _syncSettings.ConsoleMode == GambatteSyncSettings.ConsoleModeType.GBA ? "AGB" : "World";
IsCgb = true; IsCgb = true;
} }