From 8fed99456ad277f228c79b4955461ac23904b897 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Mon, 13 Jan 2020 16:55:07 -0500 Subject: [PATCH] GBlink: fix some 4x bugs and route CGBGBA to cores --- BizHawk.Client.Common/RomLoader.cs | 2 +- .../Consoles/Nintendo/GBHawkLink/GBHawkLink.cs | 3 +++ .../Consoles/Nintendo/GBHawkLink3x/GBHawkLink3x.cs | 4 ++++ .../Nintendo/GBHawkLink4x/GBHawkLink4x.IEmulator.cs | 8 +++++--- .../Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.cs | 5 +++++ 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/BizHawk.Client.Common/RomLoader.cs b/BizHawk.Client.Common/RomLoader.cs index f0e4aa536b..59a8cd03cd 100644 --- a/BizHawk.Client.Common/RomLoader.cs +++ b/BizHawk.Client.Common/RomLoader.cs @@ -703,7 +703,7 @@ namespace BizHawk.Client.Common nextEmulator = new GBHawkLink4x( nextComm, A_4x, - B_Bytes4x, + A_Bytes4x, B_4x, B_Bytes4x, C_4x, diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink/GBHawkLink.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink/GBHawkLink.cs index 0dd64d7da8..23ddcb8d16 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink/GBHawkLink.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink/GBHawkLink.cs @@ -52,6 +52,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink temp_sync_L.ConsoleMode = linkSyncSettings.ConsoleMode_L; temp_sync_R.ConsoleMode = linkSyncSettings.ConsoleMode_R; + temp_sync_L.GBACGB = linkSyncSettings.GBACGB; + temp_sync_R.GBACGB = linkSyncSettings.GBACGB; + temp_sync_L.RTCInitialTime = linkSyncSettings.RTCInitialTime_L; temp_sync_R.RTCInitialTime = linkSyncSettings.RTCInitialTime_R; temp_sync_L.RTCOffset = linkSyncSettings.RTCOffset_L; diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink3x/GBHawkLink3x.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink3x/GBHawkLink3x.cs index 4a2df168cc..448c77e182 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink3x/GBHawkLink3x.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink3x/GBHawkLink3x.cs @@ -55,6 +55,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink3x temp_sync_C.ConsoleMode = Link3xSyncSettings.ConsoleMode_C; temp_sync_R.ConsoleMode = Link3xSyncSettings.ConsoleMode_R; + temp_sync_L.GBACGB = Link3xSyncSettings.GBACGB; + temp_sync_C.GBACGB = Link3xSyncSettings.GBACGB; + temp_sync_R.GBACGB = Link3xSyncSettings.GBACGB; + temp_sync_L.RTCInitialTime = Link3xSyncSettings.RTCInitialTime_L; temp_sync_C.RTCInitialTime = Link3xSyncSettings.RTCInitialTime_C; temp_sync_R.RTCInitialTime = Link3xSyncSettings.RTCInitialTime_R; diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.IEmulator.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.IEmulator.cs index 2a94a2dc11..3fa5c29e2d 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.IEmulator.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.IEmulator.cs @@ -584,7 +584,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x for (int j = 0; j < 160; j++) { _vidbuffer[i * 320 + j] = A.frame_buffer[i * 160 + j]; - _vidbuffer[(i + 144) * 320 + j] = C.frame_buffer[i * 160 + j]; + _vidbuffer[(i + 144) * 320 + j] = B.frame_buffer[i * 160 + j]; _vidbuffer[(i + 144) * 320 + j + 160] = C.frame_buffer[i * 160 + j]; _vidbuffer[i * 320 + j + 160] = D.frame_buffer[i * 160 + j]; } @@ -644,8 +644,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x } else if (Link4xSettings.AudioSet == GBLink4xSettings.AudioSrc.B) { - samples = temp_samp_C; - nsamp = nsamp_C; + samples = temp_samp_B; + nsamp = nsamp_B; } else if (Link4xSettings.AudioSet == GBLink4xSettings.AudioSrc.C) { @@ -672,6 +672,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x public void DiscardSamples() { A.audio.DiscardSamples(); + B.audio.DiscardSamples(); C.audio.DiscardSamples(); D.audio.DiscardSamples(); } @@ -684,6 +685,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x public void DisposeSound() { A.audio.DisposeSound(); + B.audio.DisposeSound(); C.audio.DisposeSound(); D.audio.DisposeSound(); } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.cs index f6d18ce586..875cace014 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBHawkLink4x/GBHawkLink4x.cs @@ -60,6 +60,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x temp_sync_C.ConsoleMode = Link4xSyncSettings.ConsoleMode_C; temp_sync_D.ConsoleMode = Link4xSyncSettings.ConsoleMode_D; + temp_sync_A.GBACGB = Link4xSyncSettings.GBACGB; + temp_sync_B.GBACGB = Link4xSyncSettings.GBACGB; + temp_sync_C.GBACGB = Link4xSyncSettings.GBACGB; + temp_sync_D.GBACGB = Link4xSyncSettings.GBACGB; + temp_sync_A.RTCInitialTime = Link4xSyncSettings.RTCInitialTime_A; temp_sync_B.RTCInitialTime = Link4xSyncSettings.RTCInitialTime_B; temp_sync_C.RTCInitialTime = Link4xSyncSettings.RTCInitialTime_C;