From c96a802904bad6717be5fab9332480faf630e611 Mon Sep 17 00:00:00 2001 From: negativeExponent <54053706+negativeExponent@users.noreply.github.com> Date: Sun, 13 Feb 2022 04:08:23 -0800 Subject: [PATCH 1/3] Update 8237.cpp (#457) Fix incorrect address mask for UNL8237A write registers. The game Lion Kings writes to 0x5010/0x5080. --- src/boards/8237.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/boards/8237.cpp b/src/boards/8237.cpp index 38077690..09679707 100644 --- a/src/boards/8237.cpp +++ b/src/boards/8237.cpp @@ -19,7 +19,6 @@ * * Super Game (Sugar Softec) protected mapper * Pocahontas 2 (Unl) [U][!], etc. - * TODO: 9in1 LION KING HANGS! */ #include "mapinc.h" @@ -139,7 +138,7 @@ static DECLFW(UNL8237Write) { } static DECLFW(UNL8237ExWrite) { - switch (A) { + switch (A & 0xF007) { case 0x5000: EXPREGS[0] = V; FixMMC3PRG(MMC3_cmd); break; case 0x5001: EXPREGS[1] = V; FixMMC3PRG(MMC3_cmd); FixMMC3CHR(MMC3_cmd); break; case 0x5007: EXPREGS[2] = V; break; From a00ce315b8779c07a0fd73f86be3f09899bf7c00 Mon Sep 17 00:00:00 2001 From: mbudd02 Date: Sun, 13 Feb 2022 08:04:22 -0500 Subject: [PATCH 2/3] Version bump to differentiate interim git from latest release. Bump MacOSX pipeline SDL2 versionto 2.0.20 --- pipelines/debpkg.pl | 2 +- pipelines/linux_build.sh | 4 ++-- pipelines/macOS_build.sh | 4 ++-- readme.md | 4 ++-- src/version.h | 4 ++-- web/download.html | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pipelines/debpkg.pl b/pipelines/debpkg.pl index 9d2198b5..aa929b79 100755 --- a/pipelines/debpkg.pl +++ b/pipelines/debpkg.pl @@ -2,7 +2,7 @@ use strict; -my $VERSION="2.6.2"; +my $VERSION="2.6.3"; my $INSTALL_PREFIX="/tmp/fceux"; my $CTL_FILENAME="$INSTALL_PREFIX/DEBIAN/control"; my $ARCH="amd64"; diff --git a/pipelines/linux_build.sh b/pipelines/linux_build.sh index b5d97ab4..4d8e7474 100755 --- a/pipelines/linux_build.sh +++ b/pipelines/linux_build.sh @@ -10,8 +10,8 @@ SCRIPT_DIR=$( cd $(dirname $BASH_SOURCE[0]); pwd ); #echo $SCRIPT_DIR; gcc --version -python2 --version -python3 --version +#python2 --version +#python3 --version INSTALL_PREFIX=/tmp/fceux diff --git a/pipelines/macOS_build.sh b/pipelines/macOS_build.sh index c05230af..6689e47b 100755 --- a/pipelines/macOS_build.sh +++ b/pipelines/macOS_build.sh @@ -10,8 +10,8 @@ QT_MAJOR=5; QT_PKGNAME=qt$QT_MAJOR; FCEUX_VERSION_MAJOR=2 FCEUX_VERSION_MINOR=6 -FCEUX_VERSION_PATCH=2 -SDL2_VERSION=2.0.14 +FCEUX_VERSION_PATCH=3 +SDL2_VERSION=2.0.20 SCRIPT_DIR=$( cd $(dirname $BASH_SOURCE[0]); pwd ); diff --git a/readme.md b/readme.md index 3e6046bb..13379856 100644 --- a/readme.md +++ b/readme.md @@ -8,8 +8,8 @@ Interim builds: * Win32: [fceux.zip](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux.zip?branch=master&job=Windows%2032) * Win64: [fceux64.zip](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux64.zip?branch=master&job=Windows%2064) * Win64 Qt/SDL: [qfceux64.zip](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/qfceux64.zip?branch=master&job=Win64%20Qt) -* Ubuntu: [fceux-2.6.2-amd64.deb](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.6.2-amd64.deb?branch=master&job=Ubuntu) -* MacOSX: [fceux-2.6.2-Darwin.dmg](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.6.2-Darwin.dmg?branch=master&job=MacOS) +* Ubuntu: [fceux-2.6.3-amd64.deb](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.6.3-amd64.deb?branch=master&job=Ubuntu) +* MacOSX: [fceux-2.6.3-Darwin.dmg](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.6.3-Darwin.dmg?branch=master&job=MacOS) * Status: [Appveyor](https://ci.appveyor.com/project/zeromus/fceux/) But you might like mesen more: https://github.com/SourMesen/Mesen diff --git a/src/version.h b/src/version.h index 30bfcf0c..bc327659 100644 --- a/src/version.h +++ b/src/version.h @@ -62,14 +62,14 @@ #define FCEU_VERSION_MAJOR 2 #define FCEU_VERSION_MINOR 6 -#define FCEU_VERSION_PATCH 2 +#define FCEU_VERSION_PATCH 3 #define FCEU_VERSION_NUMERIC ( (FCEU_VERSION_MAJOR*10000) + (FCEU_VERSION_MINOR*100) + (FCEU_VERSION_PATCH) ) #define FCEU_VERSION_MAJOR_DECODE(x) ( (x / 10000) ) #define FCEU_VERSION_MINOR_DECODE(x) ( (x / 100) % 100 ) #define FCEU_VERSION_PATCH_DECODE(x) (x % 100) -#define FCEU_VERSION_STRING "2.6.2" FCEU_SUBVERSION_STRING FCEU_FEATURE_STRING FCEU_COMPILER +#define FCEU_VERSION_STRING "2.6.3" FCEU_SUBVERSION_STRING FCEU_FEATURE_STRING FCEU_COMPILER #define FCEU_NAME_AND_VERSION FCEU_NAME " " FCEU_VERSION_STRING #endif diff --git a/web/download.html b/web/download.html index eb4c9462..738547d8 100644 --- a/web/download.html +++ b/web/download.html @@ -84,8 +84,8 @@
  • Windows 32-bit
  • Windows 64-bit
  • Win 64 Qt/SDL
  • -
  • Ubuntu Linux
  • -
  • Mac OS X
  • +
  • Ubuntu Linux
  • +
  • Mac OS X
  • Source Code

    From 8e6d99a1acd902bff1f94fbd022708567cd6647e Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Sun, 13 Feb 2022 22:32:05 +0300 Subject: [PATCH 3/3] Meta keys combinations fix (win32) --- src/drivers/win/input.cpp | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/drivers/win/input.cpp b/src/drivers/win/input.cpp index c929f457..c14a9746 100644 --- a/src/drivers/win/input.cpp +++ b/src/drivers/win/input.cpp @@ -222,57 +222,58 @@ uint32 GetGamepadPressedImmediate() // e.g. do not trigger "F1" if "Ctrl+F1" is pressed int DTestButton(ButtConfig *bc, uint8_t just_down, uint8_t block_meta) { - static unsigned int *keys_data = !just_down ? GetKeyboard_nr() : GetKeyboard_jd(); + unsigned int *keys_data = !just_down ? GetKeyboard_nr() : GetKeyboard_jd(); + unsigned int *keys_data_nr = GetKeyboard_nr(); - for(int x=0; x < bc->NumC; x++) + for (int x = 0; x < bc->NumC; x++) { - if(bc->ButtType[x] == BUTTC_KEYBOARD) + if (bc->ButtType[x] == BUTTC_KEYBOARD) { int cmd = bc->ButtonNum[x]; int cmdmask = cmd&CMD_KEY_MASK; - /* test CTRL, SHIFT, ALT */ + /* test CTRL, SHIFT, ALT, WIN */ if (cmd & CMD_KEY_ALT) { - int ctlstate = (cmd & CMD_KEY_LALT) ? keys_data[SCAN_LEFTALT] : 0; - ctlstate |= (cmd & CMD_KEY_RALT) ? keys_data[SCAN_RIGHTALT] : 0; + int ctlstate = (cmd & CMD_KEY_LALT) ? keys_data_nr[SCAN_LEFTALT] : 0; + ctlstate |= (cmd & CMD_KEY_RALT) ? keys_data_nr[SCAN_RIGHTALT] : 0; if (!ctlstate) continue; } - else if (block_meta && ((cmdmask != SCAN_LEFTALT && keys_data[SCAN_LEFTALT]) || (cmdmask != SCAN_RIGHTALT && keys_data[SCAN_RIGHTALT]))) + else if (block_meta && ((cmdmask != SCAN_LEFTALT && keys_data_nr[SCAN_LEFTALT]) || (cmdmask != SCAN_RIGHTALT && keys_data_nr[SCAN_RIGHTALT]))) continue; if (cmd & CMD_KEY_CTRL) { - int ctlstate = (cmd & CMD_KEY_LCTRL) ? keys_data[SCAN_LEFTCONTROL] : 0; - ctlstate |= (cmd & CMD_KEY_RCTRL) ? keys_data[SCAN_RIGHTCONTROL] : 0; + int ctlstate = (cmd & CMD_KEY_LCTRL) ? keys_data_nr[SCAN_LEFTCONTROL] : 0; + ctlstate |= (cmd & CMD_KEY_RCTRL) ? keys_data_nr[SCAN_RIGHTCONTROL] : 0; if (!ctlstate) continue; } - else if (block_meta && ((cmdmask != SCAN_LEFTCONTROL && keys_data[SCAN_LEFTCONTROL]) || (cmdmask != SCAN_RIGHTCONTROL && keys_data[SCAN_RIGHTCONTROL]))) + else if (block_meta && ((cmdmask != SCAN_LEFTCONTROL && keys_data_nr[SCAN_LEFTCONTROL]) || (cmdmask != SCAN_RIGHTCONTROL && keys_data_nr[SCAN_RIGHTCONTROL]))) continue; if (cmd & CMD_KEY_SHIFT) { - int ctlstate = (cmd & CMD_KEY_LSHIFT) ? keys_data[SCAN_LEFTSHIFT] : 0; - ctlstate |= (cmd & CMD_KEY_RSHIFT) ? keys_data[SCAN_RIGHTSHIFT] : 0; + int ctlstate = (cmd & CMD_KEY_LSHIFT) ? keys_data_nr[SCAN_LEFTSHIFT] : 0; + ctlstate |= (cmd & CMD_KEY_RSHIFT) ? keys_data_nr[SCAN_RIGHTSHIFT] : 0; if (!ctlstate) continue; } - else if (block_meta && ((cmdmask != SCAN_LEFTSHIFT && keys_data[SCAN_LEFTSHIFT]) || (cmdmask != SCAN_RIGHTSHIFT && keys_data[SCAN_RIGHTSHIFT]))) + else if (block_meta && ((cmdmask != SCAN_LEFTSHIFT && keys_data_nr[SCAN_LEFTSHIFT]) || (cmdmask != SCAN_RIGHTSHIFT && keys_data_nr[SCAN_RIGHTSHIFT]))) continue; if (cmd & CMD_KEY_WIN) { - int ctlstate = (cmd & CMD_KEY_LWIN) ? keys_data[SCAN_LEFTWIN] : 0; - ctlstate |= (cmd & CMD_KEY_RWIN) ? keys_data[SCAN_RIGHTWIN] : 0; + int ctlstate = (cmd & CMD_KEY_LWIN) ? keys_data_nr[SCAN_LEFTWIN] : 0; + ctlstate |= (cmd & CMD_KEY_RWIN) ? keys_data_nr[SCAN_RIGHTWIN] : 0; if (!ctlstate) continue; } - else if (block_meta && ((cmdmask != SCAN_LEFTWIN && keys_data[SCAN_LEFTWIN]) || (cmdmask != SCAN_RIGHTWIN && keys_data[SCAN_RIGHTWIN]))) + else if (block_meta && ((cmdmask != SCAN_LEFTWIN && keys_data_nr[SCAN_LEFTWIN]) || (cmdmask != SCAN_RIGHTWIN && keys_data_nr[SCAN_RIGHTWIN]))) continue; - if(keys_data[cmdmask]) + if (keys_data[cmdmask]) { return 1; }