From a63b7c262bbe0f2b77d641af6c0b3c38890f18a7 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Mon, 4 Oct 2021 16:16:22 -0400 Subject: [PATCH] GBHawk: set bk2 movie CGB flag properly --- src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs | 2 +- .../Consoles/Nintendo/GBHawk/GBHawk.IStatable.cs | 1 + .../Consoles/Nintendo/GBHawk/GBHawk.cs | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs b/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs index 77655ebee3..38ab149fb8 100644 --- a/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs +++ b/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs @@ -247,7 +247,7 @@ namespace BizHawk.Client.Common } } - if (emulator is GBHawk gbHawk && gbHawk.IsCGBMode()) + if (emulator is GBHawk gbHawk && gbHawk.IsCGBMode() && !gbHawk.IsGBInGBCMode()) { movie.HeaderEntries.Add("IsCGBMode", "1"); } diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.IStatable.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.IStatable.cs index b5e1e82704..12dca3da96 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.IStatable.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.IStatable.cs @@ -52,6 +52,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk ser.Sync(nameof(RAM_Bank_ret), ref RAM_Bank_ret); ser.Sync(nameof(VRAM_Bank), ref VRAM_Bank); ser.Sync(nameof(is_GBC), ref is_GBC); + ser.Sync(nameof(is_GB_in_GBC), ref is_GB_in_GBC); ser.Sync(nameof(GBC_compat), ref GBC_compat); ser.Sync(nameof(double_speed), ref double_speed); ser.Sync(nameof(speed_switch), ref speed_switch); diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs index e362ecb8c6..4e90a16f73 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawk/GBHawk.cs @@ -61,7 +61,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk public int RAM_Bank; public int RAM_Bank_ret; public byte VRAM_Bank; - internal bool is_GBC; + internal bool is_GBC, is_GB_in_GBC; public bool GBC_compat; // compatibility mode for GB games played on GBC public bool double_speed; public bool speed_switch; @@ -158,6 +158,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk if (is_GBC && ((header[0x43] != 0x80) && (header[0x43] != 0xC0))) { ppu = new GBC_GB_PPU(); + is_GB_in_GBC = true; // for movie files } Console.WriteLine("MD5: " + rom.HashMD5(0, rom.Length)); @@ -202,6 +203,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk public bool IsCGBMode() => is_GBC; + public bool IsGBInGBCMode() => is_GB_in_GBC; + /// /// Produces a palette in the form that certain frontend inspection tools. /// May or may not return a reference to the core's own palette, so please don't mutate.