From f3b6593ab65bafecfcd8c3418047010496450303 Mon Sep 17 00:00:00 2001
From: momocaoo <121313710+momocaoo@users.noreply.github.com>
Date: Mon, 26 Dec 2022 03:13:37 +0100
Subject: [PATCH 01/15] Qt: Fix typo in Forwarder ui (#2764)
---
src/platform/qt/ForwarderView.ui | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/platform/qt/ForwarderView.ui b/src/platform/qt/ForwarderView.ui
index 1c72e3caa..f83facf1c 100644
--- a/src/platform/qt/ForwarderView.ui
+++ b/src/platform/qt/ForwarderView.ui
@@ -71,7 +71,7 @@
-
- Latest stable verison
+ Latest stable version
-
From 61950a52dc976598424f69be3e0b6c5af5bcc9ea Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Tue, 27 Dec 2022 01:36:42 -0800
Subject: [PATCH 02/15] GBA Cheats: Clean up redundant variables
---
src/gba/cheats.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/gba/cheats.c b/src/gba/cheats.c
index 08848077b..04082d48a 100644
--- a/src/gba/cheats.c
+++ b/src/gba/cheats.c
@@ -105,36 +105,36 @@ static bool GBACheatAddAutodetect(struct GBACheatSet* set, uint32_t op1, uint32_
char line[18] = "XXXXXXXX XXXXXXXX";
snprintf(line, sizeof(line), "%08X %08X", op1, op2);
- int gsaP, rgsaP, parP, rparP;
+ int nextProbability;
int maxProbability = INT_MIN;
switch (set->gsaVersion) {
case 0:
// Try to detect GameShark version
GBACheatDecryptGameShark(&o1, &o2, GBACheatGameSharkSeeds);
- gsaP = GBACheatGameSharkProbability(o1, o2);
+ nextProbability = GBACheatGameSharkProbability(o1, o2);
o1 = op1;
o2 = op2;
- if (gsaP > maxProbability) {
- maxProbability = gsaP;
+ if (nextProbability > maxProbability) {
+ maxProbability = nextProbability;
GBACheatSetGameSharkVersion(set, GBA_GS_GSAV1);
}
GBACheatDecryptGameShark(&o1, &o2, GBACheatProActionReplaySeeds);
- parP = GBACheatProActionReplayProbability(o1, o2);
- if (parP > maxProbability) {
- maxProbability = parP;
+ nextProbability = GBACheatProActionReplayProbability(o1, o2);
+ if (nextProbability > maxProbability) {
+ maxProbability = nextProbability;
GBACheatSetGameSharkVersion(set, GBA_GS_PARV3);
}
- rgsaP = GBACheatGameSharkProbability(op1, op2);
- if (rgsaP > maxProbability) {
- maxProbability = rgsaP;
+ nextProbability = GBACheatGameSharkProbability(op1, op2);
+ if (nextProbability > maxProbability) {
+ maxProbability = nextProbability;
GBACheatSetGameSharkVersion(set, GBA_GS_GSAV1_RAW);
}
- rparP = GBACheatProActionReplayProbability(op1, op2);
- if (rparP > maxProbability) {
- maxProbability = rparP;
+ nextProbability = GBACheatProActionReplayProbability(op1, op2);
+ if (nextProbability > maxProbability) {
+ maxProbability = nextProbability;
GBACheatSetGameSharkVersion(set, GBA_GS_PARV3_RAW);
}
From 520609d12a2619adc10434179679e8f6c70fcb43 Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Tue, 27 Dec 2022 03:22:08 -0800
Subject: [PATCH 03/15] Qt: Fix indentation
---
src/platform/qt/OpenGLBug.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/platform/qt/OpenGLBug.h b/src/platform/qt/OpenGLBug.h
index fda0ed555..11b0bba43 100644
--- a/src/platform/qt/OpenGLBug.h
+++ b/src/platform/qt/OpenGLBug.h
@@ -8,8 +8,8 @@
namespace QGBA {
enum class OpenGLBug {
- // mgba.io/i/2761
- CROSS_THREAD_FLUSH
+ // mgba.io/i/2761
+ CROSS_THREAD_FLUSH
};
bool glContextHasBug(OpenGLBug);
From 0a4cafcd57637b17c8efba9b607f81d5e4511584 Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Tue, 27 Dec 2022 20:39:19 -0800
Subject: [PATCH 04/15] GB BIOS: Include timing in degenerate ArcTan2 cases
(fixes #2763)
---
CHANGES | 1 +
src/gba/bios.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/CHANGES b/CHANGES
index 00e8d7587..06b1a5235 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,7 @@ Emulation fixes:
- GB Audio: Fix channel 3 volume being changed between samples (fixes mgba.io/i/1896)
- GB Audio: Fix up boot sequence
- GB Audio: Fix updating channels other than 2 when writing NR5x
+ - GB BIOS: Include timing in degenerate ArcTan2 cases (fixes mgba.io/i/2763)
- GB Memory: Actually, HDMAs should start when LCD is off (fixes mgba.io/i/2662)
- GB Serialize: Don't write BGP/OBP when loading SCGB state (fixes mgba.io/i/2694)
- GB SIO: Further fix bidirectional transfer starting
diff --git a/src/gba/bios.c b/src/gba/bios.c
index d824830aa..1d0c0dd10 100644
--- a/src/gba/bios.c
+++ b/src/gba/bios.c
@@ -336,12 +336,14 @@ static int16_t _ArcTan(int32_t i, int32_t* r1, int32_t* r3, uint32_t* cycles) {
static int16_t _ArcTan2(int32_t x, int32_t y, int32_t* r1, uint32_t* cycles) {
if (!y) {
+ *cycles = 11;
if (x >= 0) {
return 0;
}
return 0x8000;
}
if (!x) {
+ *cycles = 11;
if (y >= 0) {
return 0x4000;
}
From 1c370f6ebebeb5b8af85099d59d614c166aada4b Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Sat, 31 Dec 2022 01:19:58 -0800
Subject: [PATCH 05/15] Scripting: Refactor out some testing code
---
src/core/test/scripting.c | 18 ++----------------
src/script/test.h | 29 +++++++++++++++++++++++++++++
src/script/test/lua.c | 13 ++-----------
src/script/test/stdlib.c | 22 ++--------------------
4 files changed, 35 insertions(+), 47 deletions(-)
create mode 100644 src/script/test.h
diff --git a/src/core/test/scripting.c b/src/core/test/scripting.c
index ddcb448c5..2e26b096f 100644
--- a/src/core/test/scripting.c
+++ b/src/core/test/scripting.c
@@ -12,6 +12,8 @@
#include
#include
+#include "script/test.h"
+
#ifdef M_CORE_GBA
#include
#define TEST_PLATFORM mPLATFORM_GBA
@@ -66,22 +68,6 @@ static const uint8_t _fakeGBROM[0x4000] = {
mCoreConfigDeinit(&core->config); \
core->deinit(core)
-#define LOAD_PROGRAM(PROG) \
- do { \
- struct VFile* vf = VFileFromConstMemory(PROG, strlen(PROG)); \
- assert_true(lua->load(lua, NULL, vf)); \
- vf->close(vf); \
- } while(0)
-
-#define TEST_VALUE(TYPE, NAME, VALUE) \
- do { \
- struct mScriptValue val = mSCRIPT_MAKE(TYPE, VALUE); \
- struct mScriptValue* global = lua->getGlobal(lua, NAME); \
- assert_non_null(global); \
- assert_true(global->type->equal(global, &val)); \
- mScriptValueDeref(global); \
- } while(0)
-
static void _mScriptTestLog(struct mLogger* log, int category, enum mLogLevel level, const char* format, va_list args) {
UNUSED(category);
struct mScriptTestLogger* logger = (struct mScriptTestLogger*) log;
diff --git a/src/script/test.h b/src/script/test.h
new file mode 100644
index 000000000..f526bce30
--- /dev/null
+++ b/src/script/test.h
@@ -0,0 +1,29 @@
+/* Copyright (c) 2013-2022 Jeffrey Pfau
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifndef M_SCRIPT_TEST_H
+#define M_SCRIPT_TEST_H
+
+#define LOAD_PROGRAM(PROG) \
+ do { \
+ struct VFile* vf = VFileFromConstMemory(PROG, strlen(PROG)); \
+ assert_true(lua->load(lua, NULL, vf)); \
+ vf->close(vf); \
+ } while(0)
+
+#define TEST_VALUE(TYPE, NAME, VALUE) \
+ do { \
+ struct mScriptValue val = mSCRIPT_MAKE(TYPE, VALUE); \
+ struct mScriptValue* global = lua->getGlobal(lua, NAME); \
+ assert_non_null(global); \
+ assert_true(global->type->equal(global, &val)); \
+ mScriptValueDeref(global); \
+ } while(0)
+
+#define TEST_PROGRAM(PROG) \
+ LOAD_PROGRAM(PROG); \
+ assert_true(lua->run(lua)); \
+
+#endif
diff --git a/src/script/test/lua.c b/src/script/test/lua.c
index 2cc7fcbff..73954e91e 100644
--- a/src/script/test/lua.c
+++ b/src/script/test/lua.c
@@ -8,22 +8,13 @@
#include
#include
+#include "script/test.h"
+
#define SETUP_LUA \
struct mScriptContext context; \
mScriptContextInit(&context); \
struct mScriptEngineContext* lua = mScriptContextRegisterEngine(&context, mSCRIPT_ENGINE_LUA)
-#define LOAD_PROGRAM(PROG) \
- do { \
- struct VFile* vf = VFileFromConstMemory(PROG, strlen(PROG)); \
- assert_true(lua->load(lua, NULL, vf)); \
- vf->close(vf); \
- } while(0)
-
-#define TEST_PROGRAM(PROG) \
- LOAD_PROGRAM(PROG); \
- assert_true(lua->run(lua)); \
-
struct Test {
int32_t i;
int32_t (*ifn0)(struct Test*);
diff --git a/src/script/test/stdlib.c b/src/script/test/stdlib.c
index d4c57605b..63ddda4fc 100644
--- a/src/script/test/stdlib.c
+++ b/src/script/test/stdlib.c
@@ -10,32 +10,14 @@
#include
#include
+#include "script/test.h"
+
#define SETUP_LUA \
struct mScriptContext context; \
mScriptContextInit(&context); \
struct mScriptEngineContext* lua = mScriptContextRegisterEngine(&context, mSCRIPT_ENGINE_LUA); \
mScriptContextAttachStdlib(&context)
-#define LOAD_PROGRAM(PROG) \
- do { \
- struct VFile* vf = VFileFromConstMemory(PROG, strlen(PROG)); \
- assert_true(lua->load(lua, NULL, vf)); \
- vf->close(vf); \
- } while(0)
-
-#define TEST_PROGRAM(PROG) \
- LOAD_PROGRAM(PROG); \
- assert_true(lua->run(lua)); \
-
-#define TEST_VALUE(TYPE, NAME, VALUE) \
- do { \
- struct mScriptValue val = mSCRIPT_MAKE(TYPE, VALUE); \
- struct mScriptValue* global = lua->getGlobal(lua, NAME); \
- assert_non_null(global); \
- assert_true(global->type->equal(global, &val)); \
- mScriptValueDeref(global); \
- } while(0)
-
M_TEST_SUITE_SETUP(mScriptStdlib) {
if (mSCRIPT_ENGINE_LUA->init) {
mSCRIPT_ENGINE_LUA->init(mSCRIPT_ENGINE_LUA);
From bf3a2071b7f73e4dbfd2947e0e9a3c0521887ce4 Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Sat, 31 Dec 2022 01:21:03 -0800
Subject: [PATCH 06/15] All: Add more build products to the gitignore
---
.gitignore | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.gitignore b/.gitignore
index 20c19fc41..0e5d801be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,10 +10,12 @@
*.a
*.dylib
*.dll
+*.lib
*.exe
*.o
*.so
CMakeCache.txt
CMakeFiles
CMakeSettings.json
+cmake_install.cmake
version.c
From 9f8679ffa66a047ba387067e72b28e1cd90d6e9a Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Sat, 31 Dec 2022 17:54:29 -0800
Subject: [PATCH 07/15] Qt: Fix initializing update revision info
---
CHANGES | 1 +
src/platform/qt/ApplicationUpdater.cpp | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGES b/CHANGES
index 06b1a5235..703038081 100644
--- a/CHANGES
+++ b/CHANGES
@@ -22,6 +22,7 @@ Other fixes:
- Qt: Fix scanning specific e-Reader dotcodes (fixes mgba.io/i/2693)
- Qt: Don't re-enable sync if GBA link modes aren't the same (fixes mgba.io/i/2044)
- Qt: Improve handling of multiplayer syncing (fixes mgba.io/i/2720)
+ - Qt: Fix initializing update revision info
- Res: Fix species name location in Ruby/Sapphire revs 1/2 (fixes mgba.io/i/2685)
- VFS: Fix minizip write returning 0 on success instead of size
Misc:
diff --git a/src/platform/qt/ApplicationUpdater.cpp b/src/platform/qt/ApplicationUpdater.cpp
index a0efca23d..e2d1e5e4c 100644
--- a/src/platform/qt/ApplicationUpdater.cpp
+++ b/src/platform/qt/ApplicationUpdater.cpp
@@ -174,7 +174,8 @@ const char* ApplicationUpdater::platform() {
}
ApplicationUpdater::UpdateInfo::UpdateInfo(const QString& prefix, const mUpdate* update)
- : size(update->size)
+ : rev(-1)
+ , size(update->size)
, url(prefix + update->path)
{
if (update->rev > 0) {
From 819d19dddcba8f389bc266c2f39b2a173dd2bd6b Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Sat, 31 Dec 2022 18:15:47 -0800
Subject: [PATCH 08/15] Qt: Redo stable branch detection heuristic
---
CHANGES | 2 +-
src/platform/qt/ApplicationUpdater.cpp | 8 +++++---
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/CHANGES b/CHANGES
index 703038081..8fe044973 100644
--- a/CHANGES
+++ b/CHANGES
@@ -18,11 +18,11 @@ Other fixes:
- GBA: Fix forceskip BIOS logic for multiboot ROMs (fixes mgba.io/i/2753)
- GBA Cheats: Fix issues detecting unencrypted cheats (fixes mgba.io/i/2724)
- Qt: Manually split filename to avoid overzealous splitting (fixes mgba.io/i/2681)
- - Qt: Expand criteria for tag branch names (fixes mgba.io/i/2679)
- Qt: Fix scanning specific e-Reader dotcodes (fixes mgba.io/i/2693)
- Qt: Don't re-enable sync if GBA link modes aren't the same (fixes mgba.io/i/2044)
- Qt: Improve handling of multiplayer syncing (fixes mgba.io/i/2720)
- Qt: Fix initializing update revision info
+ - Qt: Redo stable branch detection heuristic (fixes mgba.io/i/2679)
- Res: Fix species name location in Ruby/Sapphire revs 1/2 (fixes mgba.io/i/2685)
- VFS: Fix minizip write returning 0 on success instead of size
Misc:
diff --git a/src/platform/qt/ApplicationUpdater.cpp b/src/platform/qt/ApplicationUpdater.cpp
index e2d1e5e4c..21def050c 100644
--- a/src/platform/qt/ApplicationUpdater.cpp
+++ b/src/platform/qt/ApplicationUpdater.cpp
@@ -7,6 +7,7 @@
#include
#include
+#include
#include "ApplicationUpdatePrompt.h"
#include "ConfigController.h"
@@ -71,9 +72,10 @@ QStringList ApplicationUpdater::listChannels() {
}
QString ApplicationUpdater::currentChannel() {
- QLatin1String version(projectVersion);
- QLatin1String branch(gitBranch);
- if (branch == QLatin1String("heads/") + version || branch == version) {
+ QString version(projectVersion);
+ QString branch(gitBranch);
+ QRegularExpression stable("^(?:(?:refs/)?(?:tags|heads)/)?[0-9]+\\.[0-9]+\\.[0-9]+$");
+ if (branch.contains(stable) || (branch == "(unknown)" && version.contains(stable))) {
return QLatin1String("stable");
} else {
return QLatin1String("dev");
From 068e1fb612f1bb9f8f4baec6d3177fb8a637571d Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Fri, 6 Jan 2023 14:26:14 -0800
Subject: [PATCH 09/15] GB Audio: Fix regression in channel updating with NR5x
(fixes #2775)
---
src/gb/audio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gb/audio.c b/src/gb/audio.c
index 8bce46e07..d2d6a9260 100644
--- a/src/gb/audio.c
+++ b/src/gb/audio.c
@@ -499,7 +499,7 @@ void GBAudioRun(struct GBAudio* audio, int32_t timestamp, int channels) {
if (!audio->enable) {
return;
}
- if (audio->p && channels != 0xF && timestamp - audio->lastSample > (int) (SAMPLE_INTERVAL * audio->timingFactor)) {
+ if (audio->p && channels != 0x1F && timestamp - audio->lastSample > (int) (SAMPLE_INTERVAL * audio->timingFactor)) {
GBAudioSample(audio, timestamp);
}
@@ -779,7 +779,7 @@ void GBAudioSample(struct GBAudio* audio, int32_t timestamp) {
for (sample = audio->sampleIndex; timestamp >= interval && sample < GB_MAX_SAMPLES; ++sample, timestamp -= interval) {
int16_t sampleLeft = 0;
int16_t sampleRight = 0;
- GBAudioRun(audio, sample * interval + audio->lastSample, 0xF);
+ GBAudioRun(audio, sample * interval + audio->lastSample, 0x1F);
GBAudioSamplePSG(audio, &sampleLeft, &sampleRight);
sampleLeft = (sampleLeft * audio->masterVolume * 6) >> 7;
sampleRight = (sampleRight * audio->masterVolume * 6) >> 7;
From fa3b0d087588713d3fa7240b2ceffc36b70bfbb3 Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Sun, 8 Jan 2023 15:49:23 -0800
Subject: [PATCH 10/15] Scripting: Fix internal socket header
---
include/mgba/internal/script/socket.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/mgba/internal/script/socket.h b/include/mgba/internal/script/socket.h
index 014a765bb..98953fb80 100644
--- a/include/mgba/internal/script/socket.h
+++ b/include/mgba/internal/script/socket.h
@@ -6,6 +6,10 @@
#ifndef M_SCRIPT_SOCKET_H
#define M_SCRIPT_SOCKET_H
+#include
+
+CXX_GUARD_START
+
enum mSocketErrorCode {
mSCRIPT_SOCKERR_UNKNOWN_ERROR = -1,
mSCRIPT_SOCKERR_OK = 0,
@@ -22,4 +26,6 @@ enum mSocketErrorCode {
mSCRIPT_SOCKERR_UNSUPPORTED,
};
+CXX_GUARD_END
+
#endif
From 70e6470e8bc792d31920733fb18753c38948441d Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Sun, 8 Jan 2023 23:59:36 -0800
Subject: [PATCH 11/15] Qt: Fix minor leak
---
src/platform/qt/ReportView.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/platform/qt/ReportView.cpp b/src/platform/qt/ReportView.cpp
index 61a7a2cd1..494f45a64 100644
--- a/src/platform/qt/ReportView.cpp
+++ b/src/platform/qt/ReportView.cpp
@@ -308,6 +308,7 @@ void ReportView::generateReport() {
deferredBinaries.append(qMakePair(QString("Save %1").arg(winId), save));
}
mStateExtdataDeinit(&extdata);
+ vf->close(vf);
}
}
} else {
From 9df06383b575c0fad5fc4a2846bcb65cfcdd99c9 Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Mon, 9 Jan 2023 00:09:25 -0800
Subject: [PATCH 12/15] Qt: Work around Mesa issue 8035
---
src/platform/qt/DisplayGL.cpp | 12 ++++++++++++
src/platform/qt/OpenGLBug.cpp | 5 +++++
src/platform/qt/OpenGLBug.h | 4 ++--
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/src/platform/qt/DisplayGL.cpp b/src/platform/qt/DisplayGL.cpp
index 0528922fb..896f3acaf 100644
--- a/src/platform/qt/DisplayGL.cpp
+++ b/src/platform/qt/DisplayGL.cpp
@@ -670,8 +670,20 @@ void PainterGL::filter(bool filter) {
}
}
+#ifndef GL_DEBUG_OUTPUT_SYNCHRONOUS
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
+#endif
+
void PainterGL::start() {
makeCurrent();
+#if defined(BUILD_GLES3) && !defined(Q_OS_MAC)
+ if (glContextHasBug(OpenGLBug::GLTHREAD_BLOCKS_SWAP)) {
+ // Suggested on Discord as a way to strongly hint that glthread should be disabled
+ // See https://gitlab.freedesktop.org/mesa/mesa/-/issues/8035
+ QOpenGLFunctions_Baseline* fn = m_gl->versionFunctions();
+ fn->glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
+ }
+#endif
#if defined(BUILD_GLES2) || defined(BUILD_GLES3)
if (m_supportsShaders && m_shader.passes) {
diff --git a/src/platform/qt/OpenGLBug.cpp b/src/platform/qt/OpenGLBug.cpp
index e00310c56..df007c1cb 100644
--- a/src/platform/qt/OpenGLBug.cpp
+++ b/src/platform/qt/OpenGLBug.cpp
@@ -18,6 +18,7 @@ bool glContextHasBug(OpenGLBug bug) {
QOpenGLFunctions* fn = context->functions();
QString vendor(reinterpret_cast(fn->glGetString(GL_VENDOR)));
QString renderer(reinterpret_cast(fn->glGetString(GL_RENDERER)));
+ QString version(reinterpret_cast(fn->glGetString(GL_VERSION)));
switch (bug) {
case OpenGLBug::CROSS_THREAD_FLUSH:
@@ -26,6 +27,10 @@ bool glContextHasBug(OpenGLBug bug) {
#else
return vendor == "Intel";
#endif
+
+ case OpenGLBug::GLTHREAD_BLOCKS_SWAP:
+ return version.contains(" Mesa ");
+
default:
return false;
}
diff --git a/src/platform/qt/OpenGLBug.h b/src/platform/qt/OpenGLBug.h
index 11b0bba43..5b5bc7736 100644
--- a/src/platform/qt/OpenGLBug.h
+++ b/src/platform/qt/OpenGLBug.h
@@ -8,8 +8,8 @@
namespace QGBA {
enum class OpenGLBug {
- // mgba.io/i/2761
- CROSS_THREAD_FLUSH
+ CROSS_THREAD_FLUSH, // mgba.io/i/2761
+ GLTHREAD_BLOCKS_SWAP, // mgba.io/i/2767
};
bool glContextHasBug(OpenGLBug);
From 5bb12f9238d5806ad539cd70db3f0ae37e4c6c18 Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Tue, 10 Jan 2023 19:56:08 -0800
Subject: [PATCH 13/15] CHANGES: Update for 0.10.1
---
CHANGES | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/CHANGES b/CHANGES
index 8fe044973..574e11008 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,18 +2,24 @@
Features:
- New unlicensed GB mappers: NT (older types 1 and 2), Li Cheng, GGB-81
- Debugger: Add range watchpoints
+Emulation fixes:
+ - GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722)
+Misc:
+ - GB Serialize: Add missing savestate support for MBC6 and NT (newer)
+ - GBA: Improve detection of valid ELF ROMs
+
+0.10.1: (2022-01-10)
Emulation fixes:
- GB Audio: Fix channels 1/2 not playing when resetting volume (fixes mgba.io/i/2614)
- GB Audio: Fix channel 3 volume being changed between samples (fixes mgba.io/i/1896)
- GB Audio: Fix up boot sequence
- GB Audio: Fix updating channels other than 2 when writing NR5x
- - GB BIOS: Include timing in degenerate ArcTan2 cases (fixes mgba.io/i/2763)
- GB Memory: Actually, HDMAs should start when LCD is off (fixes mgba.io/i/2662)
- GB Serialize: Don't write BGP/OBP when loading SCGB state (fixes mgba.io/i/2694)
- GB SIO: Further fix bidirectional transfer starting
- GBA: Fix resetting key IRQ state (fixes mgba.io/i/2716)
+ - GBA BIOS: Include timing in degenerate ArcTan2 cases (fixes mgba.io/i/2763)
- GBA Video: Ignore disabled backgrounds as OBJ blend target (fixes mgba.io/i/2489)
- - GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722)
Other fixes:
- GBA: Fix forceskip BIOS logic for multiboot ROMs (fixes mgba.io/i/2753)
- GBA Cheats: Fix issues detecting unencrypted cheats (fixes mgba.io/i/2724)
@@ -26,8 +32,6 @@ Other fixes:
- Res: Fix species name location in Ruby/Sapphire revs 1/2 (fixes mgba.io/i/2685)
- VFS: Fix minizip write returning 0 on success instead of size
Misc:
- - GB Serialize: Add missing savestate support for MBC6 and NT (newer)
- - GBA: Improve detection of valid ELF ROMs
- macOS: Add category to plist (closes mgba.io/i/2691)
- macOS: Fix modern build with libepoxy (fixes mgba.io/i/2700)
- Qt: Keep track of current palette preset name (fixes mgba.io/i/2680)
From fff9d1264ef9b82457cd8b2bc4785c6d105b8568 Mon Sep 17 00:00:00 2001
From: TheMechasaur <88063194+TheMechasaur@users.noreply.github.com>
Date: Thu, 12 Jan 2023 00:59:17 -0500
Subject: [PATCH 14/15] Correct year of release date of 0.10.1 to 2023 (#2783)
---
CHANGES | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGES b/CHANGES
index 574e11008..3829d23fa 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,7 +8,7 @@ Misc:
- GB Serialize: Add missing savestate support for MBC6 and NT (newer)
- GBA: Improve detection of valid ELF ROMs
-0.10.1: (2022-01-10)
+0.10.1: (2023-01-10)
Emulation fixes:
- GB Audio: Fix channels 1/2 not playing when resetting volume (fixes mgba.io/i/2614)
- GB Audio: Fix channel 3 volume being changed between samples (fixes mgba.io/i/1896)
From 941ad5072387f4679832c9a76f4e96c08fdef35e Mon Sep 17 00:00:00 2001
From: Vicki Pfau
Date: Sat, 14 Jan 2023 15:51:32 -0800
Subject: [PATCH 15/15] Qt: Attempt to shorten Game Boy settings pane
---
src/platform/qt/SettingsView.ui | 76 +++++++++++++++------------------
1 file changed, 34 insertions(+), 42 deletions(-)
diff --git a/src/platform/qt/SettingsView.ui b/src/platform/qt/SettingsView.ui
index f0869aca5..95f71565b 100644
--- a/src/platform/qt/SettingsView.ui
+++ b/src/platform/qt/SettingsView.ui
@@ -6,8 +6,8 @@
0
0
- 885
- 797
+ 880
+ 700
@@ -95,7 +95,7 @@
-
- 9
+ 1
@@ -2091,45 +2091,37 @@
- -
-
-
- Default color palette only
-
-
- gbColors
-
-
-
- -
-
-
- SGB color palette if available
-
-
- gbColors
-
-
-
- -
-
-
- GBC color palette if available
-
-
- gbColors
-
-
-
- -
-
-
- SGB (preferred) or GBC color palette if available
-
-
- gbColors
-
-
+
-
+
+
-
+
+
+ SGB color palette if available
+
+
+
+ -
+
+
+ Default color palette only
+
+
+
+ -
+
+
+ GBC color palette if available
+
+
+
+ -
+
+
+ SGB (preferred) or GBC color palette if available
+
+
+
+