Skip to content

Commit 873f852

Browse files
authored
Merge branch 'CE-Programming:master' into forward-and-back-disasm
2 parents 69cc31e + 218c0b7 commit 873f852

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+493
-753
lines changed

.github/workflows/build.linux.workflow.yml

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88

99
jobs:
1010
build:
11-
name: "Build: ${{ matrix.os }} - ${{ matrix.qtver }}"
11+
name: "Build: ${{ matrix.os }} - ${{ matrix.archvariant }}"
1212
runs-on: ${{ matrix.os }}
1313
strategy:
1414
fail-fast: false
@@ -19,11 +19,11 @@ jobs:
1919
statictype: [ON, OFF]
2020
include:
2121
- statictype: ON
22-
qtver: Qt6
22+
archvariant: "x64"
2323
host_triplet: release
2424
release_suffix: static
2525
- statictype: OFF
26-
qtver: Qt6-Dynamic
26+
archvariant: "x64-Dynamic"
2727
host_triplet: dynamic-apng-release
2828
release_suffix: shared
2929

@@ -37,6 +37,10 @@ jobs:
3737
run: |
3838
sudo sed -i 's/azure\.//' /etc/apt/sources.list
3939
40+
- name: Remove windows-only qt version override in vcpkg.json
41+
run: |
42+
sed -i '/For Windows only/d' ${{ github.workspace }}/gui/qt/vcpkg.json
43+
4044
- name: Install dependencies
4145
run: |
4246
set -e
@@ -51,26 +55,26 @@ jobs:
5155
with:
5256
vcpkgJsonGlob: '**/gui/qt/vcpkg.json'
5357

54-
- name: Build CEmu ${{ matrix.qtver }} ${{ matrix.config }} on Linux ${{ matrix.arch }}
58+
- name: Build CEmu ${{ matrix.archvariant }} ${{ matrix.config }} on Linux ${{ matrix.arch }}
5559
uses: lukka/run-cmake@67c73a83a46f86c4e0b96b741ac37ff495478c38 # latest as of 2025-10-04
5660
with:
5761
cmakeListsTxtPath: '${{ github.workspace }}/gui/qt/CMakeLists.txt'
58-
configurePreset: 'Linux-${{ matrix.arch }}-${{ matrix.qtver }}'
62+
configurePreset: 'Linux-${{ matrix.archvariant }}'
5963
configurePresetAdditionalArgs: "['-DDEPS_RELEASE_ONLY=ON', '-DSHORT_VERSION=v3.0']"
60-
buildPreset: 'Linux-${{ matrix.arch }}-${{ matrix.qtver }}-${{ matrix.config }}'
64+
buildPreset: 'Linux-${{ matrix.archvariant }}-${{ matrix.config }}'
6165
env:
6266
VCPKG_DEFAULT_HOST_TRIPLET: ${{ matrix.arch }}-linux-${{ matrix.host_triplet }}
6367
VCPKG_FORCE_SYSTEM_BINARIES: 1
6468

6569
- name: Upload binary as artifact
6670
uses: actions/upload-artifact@v4
6771
with:
68-
name: CEmu_linux_${{ matrix.qtver }}_master
69-
path: ${{ github.workspace }}/gui/qt/CEmu.build/Linux-${{ matrix.arch }}-${{ matrix.qtver }}/${{ matrix.config }}/CEmu
72+
name: CEmu_linux_${{ matrix.archvariant }}_master
73+
path: ${{ github.workspace }}/gui/qt/CEmu.build/Linux-${{ matrix.archvariant }}/${{ matrix.config }}/CEmu
7074

7175
- name: Prepare binary for release upload
7276
run: |
73-
mv ${{ github.workspace }}/gui/qt/CEmu.build/Linux-${{ matrix.arch }}-${{ matrix.qtver }}/${{ matrix.config }}/CEmu ${{ github.workspace }}/CEmu-nightly_linux64_qt6_${{ matrix.release_suffix }}
77+
mv ${{ github.workspace }}/gui/qt/CEmu.build/Linux-${{ matrix.archvariant }}/${{ matrix.config }}/CEmu ${{ github.workspace }}/CEmu-nightly_linux64_${{ matrix.release_suffix }}
7478
7579
- name: Update nightly release
7680
if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' }}
@@ -80,4 +84,4 @@ jobs:
8084
prerelease: true
8185
token: ${{secrets.GITHUB_TOKEN}}
8286
files: |
83-
${{ github.workspace }}/CEmu-nightly_linux64_qt6_${{ matrix.release_suffix }}
87+
${{ github.workspace }}/CEmu-nightly_linux64_${{ matrix.release_suffix }}

.github/workflows/build.mac.workflow.yml

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,33 @@ on:
88

99
jobs:
1010
build:
11-
name: "Build: ${{ matrix.os }} Qt${{ matrix.qtvershort }}"
12-
runs-on: ${{ matrix.os }}
11+
name: "Build: ${{ matrix.archname }}"
12+
runs-on: macos-14
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
qtvershort: [5_intel, 6_intel, 6_arm]
16+
archname: [intel, arm]
1717
config: [Release]
1818
include:
19-
- qtvershort: "5_intel"
19+
- archname: "intel"
2020
arch: x64
21-
qtver: Qt5
22-
os: macos-13
23-
- qtvershort: "6_intel"
24-
arch: x64
25-
qtver: Qt6
26-
os: macos-13
27-
- qtvershort: "6_arm"
21+
- archname: "arm"
2822
arch: arm64
29-
qtver: Qt6
30-
os: macos-14
3123

3224
steps:
3325
- name: Checkout Git Repo
3426
uses: actions/checkout@v5
3527
with:
3628
submodules: 'recursive'
3729

30+
- name: Remove windows-only qt version override in vcpkg.json
31+
run: |
32+
sed -i '' '/For Windows only/d' ${{ github.workspace }}/gui/qt/vcpkg.json
33+
3834
- name: Install dependencies
3935
run: |
4036
set -e
41-
brew install automake autoconf libtool libusb
37+
brew install automake autoconf autoconf-archive libtool
4238
4339
- name: Install latest CMake
4440
uses: lukka/get-cmake@628dd514bed37cb0a609e84a6186cbbaa2fc0140 # latest as of 2025-10-04
@@ -48,21 +44,21 @@ jobs:
4844
with:
4945
vcpkgJsonGlob: '**/gui/qt/vcpkg.json'
5046

51-
- name: Build CEmu ${{ matrix.qtver }} ${{ matrix.config }} on macOS ${{ matrix.arch }}
47+
- name: Build CEmu ${{ matrix.config }} on macOS ${{ matrix.arch }}
5248
uses: lukka/run-cmake@67c73a83a46f86c4e0b96b741ac37ff495478c38 # latest as of 2025-10-04
5349
with:
5450
cmakeListsTxtPath: '${{ github.workspace }}/gui/qt/CMakeLists.txt'
55-
configurePreset: 'Mac-${{ matrix.arch }}-${{ matrix.qtver }}'
51+
configurePreset: 'Mac-${{ matrix.arch }}'
5652
configurePresetAdditionalArgs: "['-DDEPS_RELEASE_ONLY=ON', '-DSHORT_VERSION=v3.0']"
57-
buildPreset: 'Mac-${{ matrix.arch }}-${{ matrix.qtver }}-${{ matrix.config }}'
53+
buildPreset: 'Mac-${{ matrix.arch }}-${{ matrix.config }}'
5854
env:
59-
VCPKG_DEFAULT_HOST_TRIPLET: ${{ matrix.arch }}-osx-release
55+
VCPKG_DEFAULT_HOST_TRIPLET: arm64-osx-release
6056
VCPKG_FORCE_SYSTEM_BINARIES: 1
6157

6258
- name: Move to temp folder
6359
run: |
64-
mkdir -p /tmp/CEmu-nightly_mac_qt${{matrix.qtvershort}}/
65-
mv ${{ github.workspace }}/gui/qt/CEmu.build/Mac-${{ matrix.arch }}-${{ matrix.qtver }}/${{ matrix.config }}/CEmu.app /tmp/CEmu-nightly_mac_qt${{matrix.qtvershort}}/
60+
mkdir -p /tmp/CEmu-nightly_mac_${{matrix.archname}}/
61+
mv ${{ github.workspace }}/gui/qt/CEmu.build/Mac-${{ matrix.arch }}/${{ matrix.config }}/CEmu.app /tmp/CEmu-nightly_mac_${{matrix.archname}}/
6662
6763
- name: "Codesign CEmu.app"
6864
env:
@@ -79,21 +75,21 @@ jobs:
7975
security unlock-keychain -p $MACOS_KEYCHAIN_PWD build.keychain
8076
security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
8177
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $MACOS_KEYCHAIN_PWD build.keychain
82-
/usr/bin/codesign --deep --force --verify --verbose --sign "$MACOS_CODESIGN_IDENT" --timestamp --options runtime /tmp/CEmu-nightly_mac_qt${{matrix.qtvershort}}/CEmu.app
78+
/usr/bin/codesign --deep --force --verify --verbose --sign "$MACOS_CODESIGN_IDENT" --timestamp --options runtime /tmp/CEmu-nightly_mac_${{matrix.archname}}/CEmu.app
8379
8480
- name: "Create the DMG"
8581
run: |
8682
brew install create-dmg || brew install create-dmg; # we try twice because sometimes it fails...
8783
# The codesign variable may be empty (for forks) but that's fine, create-dmg only does code-signing if it's not empty.
8884
createDmgArgs="--codesign '${{ secrets.MACOS_CODESIGN_IDENT }}' \
89-
--volname 'CEmu-nightly Qt${{matrix.qtvershort}}' \
85+
--volname 'CEmu-nightly ${{matrix.archname}}' \
9086
--window-pos 200 120 \
9187
--window-size 600 400 \
9288
--icon-size 64 \
9389
--icon 'CEmu.app' 125 200 \
9490
--app-drop-link 400 200 \
95-
'CEmu-nightly_mac_qt${{matrix.qtvershort}}.dmg' \
96-
'/tmp/CEmu-nightly_mac_qt${{matrix.qtvershort}}/'"
91+
'CEmu-nightly_mac_${{matrix.archname}}.dmg' \
92+
'/tmp/CEmu-nightly_mac_${{matrix.archname}}/'"
9793
eval "create-dmg $createDmgArgs" || eval "create-dmg $createDmgArgs" # We also retry just in case...
9894
9995
- name: "[macOS] Notarize and staple DMG"
@@ -105,14 +101,14 @@ jobs:
105101
APPLE_NOTARIZATION_TEAMID: ${{ secrets.APPLE_NOTARIZATION_TEAMID }}
106102
run: |
107103
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$APPLE_NOTARIZATION_USERNAME" --team-id "$APPLE_NOTARIZATION_TEAMID" --password "$APPLE_NOTARIZATION_PASSWORD"
108-
xcrun notarytool submit "CEmu-nightly_mac_qt${{matrix.qtvershort}}.dmg" --keychain-profile "notarytool-profile" --wait
109-
xcrun stapler staple "CEmu-nightly_mac_qt${{matrix.qtvershort}}.dmg"
104+
xcrun notarytool submit "CEmu-nightly_mac_${{matrix.archname}}.dmg" --keychain-profile "notarytool-profile" --wait
105+
xcrun stapler staple "CEmu-nightly_mac_${{matrix.archname}}.dmg"
110106
111107
- name: Upload dmg as artifact
112108
uses: actions/upload-artifact@v4
113109
with:
114-
name: CEmu-nightly_mac_qt${{matrix.qtvershort}}
115-
path: CEmu-nightly_mac_qt${{matrix.qtvershort}}.dmg
110+
name: CEmu-nightly_mac_${{matrix.archname}}
111+
path: CEmu-nightly_mac_${{matrix.archname}}.dmg
116112

117113
- name: Update nightly release
118114
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
@@ -122,4 +118,4 @@ jobs:
122118
prerelease: true
123119
token: ${{secrets.GITHUB_TOKEN}}
124120
files: |
125-
CEmu-nightly_mac_qt${{matrix.qtvershort}}.dmg
121+
CEmu-nightly_mac_${{matrix.archname}}.dmg

.github/workflows/build.windows.workflow.yml

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,18 @@ on:
88

99
jobs:
1010
build:
11-
name: "Build: Windows ${{ matrix.arch }}-${{ matrix.config }}-${{ matrix.qtver }}"
11+
name: "Build: Windows ${{ matrix.arch }}-${{ matrix.config }}"
1212
runs-on: windows-latest
1313

1414
strategy:
1515
fail-fast: false
1616
matrix:
17-
arch: [x64, x86]
18-
qtver: [Qt5, Qt6]
17+
arch: [x64]
1918
config: [Release]
20-
exclude:
21-
- arch: x86
22-
qtver: Qt6
2319
include:
2420
- arch: x64
2521
arch_name: 64-bit
2622
arch_suffix: "64"
27-
- arch: x86
28-
arch_name: 32-bit
29-
arch_suffix: "32"
3023
steps:
3124
- name: Remove Perl Strawberry installation
3225
# Removes conflicting headers from include paths
@@ -46,29 +39,29 @@ jobs:
4639
with:
4740
vcpkgJsonGlob: '**/gui/qt/vcpkg.json'
4841

49-
- name: Build CEmu ${{ matrix.qtver }} ${{ matrix.config }} on Windows ${{ matrix.arch_name }}
42+
- name: Build CEmu ${{ matrix.config }} on Windows ${{ matrix.arch_name }}
5043
uses: lukka/run-cmake@67c73a83a46f86c4e0b96b741ac37ff495478c38 # latest as of 2025-10-04
5144
with:
5245
cmakeListsTxtPath: '${{ github.workspace }}/gui/qt/CMakeLists.txt'
53-
configurePreset: 'Win-${{ matrix.arch }}-${{ matrix.qtver }}'
46+
configurePreset: 'Win-${{ matrix.arch }}'
5447
configurePresetAdditionalArgs: "['-DDEPS_RELEASE_ONLY=ON', '-DSHORT_VERSION=v3.0']"
55-
buildPreset: 'Win-${{ matrix.arch }}-${{ matrix.qtver }}-${{ matrix.config }}'
48+
buildPreset: 'Win-${{ matrix.arch }}-${{ matrix.config }}'
5649
env:
5750
VCPKG_DEFAULT_TRIPLET: ${{ matrix.arch }}-windows
5851
VCPKG_DEFAULT_HOST_TRIPLET: x64-windows-static-release
5952
VCPKG_FORCE_SYSTEM_BINARIES: 1
6053

61-
- name: Upload ${{ matrix.arch_name }} ${{ matrix.config }} ${{ matrix.qtver }} EXE
54+
- name: Upload ${{ matrix.arch_name }} ${{ matrix.config }} EXE
6255
uses: actions/upload-artifact@v4
6356
with:
64-
name: CEmu_win${{ matrix.arch_suffix }}_${{ matrix.qtver }}_master
65-
path: ${{ github.workspace }}/gui/qt/CEmu.build/Win-${{ matrix.arch }}-${{ matrix.qtver }}/${{ matrix.config }}/CEmu.exe
57+
name: CEmu_win${{ matrix.arch_suffix }}_master
58+
path: ${{ github.workspace }}/gui/qt/CEmu.build/Win-${{ matrix.arch }}/${{ matrix.config }}/CEmu.exe
6659

6760
- name: Prepare binary for release upload
6861
if: ${{ matrix.config == 'Release' }}
6962
run: |
70-
$ReleaseName = "CEmu-nightly_win${{ matrix.arch_suffix }}-msvc_${{ matrix.qtver }}.exe".Replace("Qt", "qt")
71-
Rename-Item -Path "${{ github.workspace }}/gui/qt/CEmu.build/Win-${{ matrix.arch }}-${{ matrix.qtver }}/${{ matrix.config }}/CEmu.exe" -NewName $ReleaseName
63+
$ReleaseName = "CEmu-nightly_win${{ matrix.arch_suffix }}-msvc.exe"
64+
Rename-Item -Path "${{ github.workspace }}/gui/qt/CEmu.build/Win-${{ matrix.arch }}/${{ matrix.config }}/CEmu.exe" -NewName $ReleaseName
7265
echo "RELEASE_NAME=$ReleaseName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
7366
7467
- name: Update nightly release
@@ -79,4 +72,4 @@ jobs:
7972
prerelease: true
8073
token: ${{secrets.GITHUB_TOKEN}}
8174
files: |
82-
./gui/qt/CEmu.build/Win-${{ matrix.arch }}-${{ matrix.qtver }}/${{ matrix.config }}/${{ env.RELEASE_NAME }}
75+
./gui/qt/CEmu.build/Win-${{ matrix.arch }}/${{ matrix.config }}/${{ env.RELEASE_NAME }}

.github/workflows/coverity.workflow.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,31 @@ jobs:
1010
runs-on: ubuntu-22.04
1111
steps:
1212
- name: Checkout Git Repo
13-
uses: actions/checkout@v3
13+
uses: actions/checkout@v5
1414
with:
1515
submodules: 'recursive'
1616

17-
- name: Install Linux dependencies (Ubuntu 18.04+)
17+
- name: Install Linux dependencies (Ubuntu 22.04+)
1818
run: |
1919
set -e
2020
sudo apt-get update
21-
sudo apt-get install qtbase5-dev qt5-qmake libgl1-mesa-dev libarchive-dev libudev-dev libusb-1.0-0-dev
21+
sudo apt-get install qt6-base-dev qmake6 qtchooser libgl1-mesa-dev libarchive-dev libudev-dev libusb-1.0-0-dev
22+
23+
- name: set-up qt6
24+
run: |
25+
qtchooser -install qt6 $(which qmake6)
26+
sudo mv ~/.config/qtchooser/qt6.conf /usr/share/qtchooser/qt6.conf
27+
sudo mkdir -p /usr/lib/$(uname -p)-linux-gnu/qt-default/qtchooser
28+
sudo ln -n /usr/share/qtchooser/qt6.conf /usr/lib/$(uname -p)-linux-gnu/qt-default/qtchooser/default.conf
29+
echo "QT_SELECT=qt6" >> "$GITHUB_ENV"
2230
2331
- name: Prepare build
2432
run: |
2533
set -e
2634
cd gui/qt/capture ; /bin/bash ./get_libpng-apng.sh ; cd ../../../
2735
mkdir build
2836
cd build
29-
qmake ../gui/qt
37+
qmake6 ../gui/qt
3038
3139
- uses: vapier/coverity-scan-action@v1
3240
with:

core/keypad.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ static uint8_t keypad_handle_ghosting(uint8_t data, uint8_t queryMask) {
8888
uint64_t ghostMatrix = data;
8989
uint8_t peekRows = 0;
9090
uint8_t ghostData = 0;
91-
uint8_t shift = 0;
9291
for (uint8_t row = 0; row < KEYPAD_ACTUAL_ROWS; row++) {
9392
if (!(queryMask & (1 << row))) {
9493
uint8_t peekData = keypad_peek_keymap(row);

gui/qt/CEmu.pro

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
if (lessThan(QT_MAJOR_VERSION, 6)) {
2-
lessThan(QT_MAJOR_VERSION, 5) : error("You need at least Qt 5.7 to build CEmu!")
3-
lessThan(QT_MINOR_VERSION, 7) : error("You need at least Qt 5.7 to build CEmu!")
2+
lessThan(QT_MINOR_VERSION, 2) : error("You need at least Qt 6.2 to build CEmu!")
43
}
54

65
# Error if git submodules are not downloaded
@@ -60,7 +59,7 @@ TEMPLATE = app
6059
# Localization
6160
TRANSLATIONS += i18n/fr_FR.ts i18n/es_ES.ts i18n/nl_NL.ts i18n/zh_CN.ts
6261

63-
CONFIG += c++14 c++2a c++20 console
62+
CONFIG += c++2a c++20 console
6463

6564
# Seems to fix some LTO issues. See https://github.com/CE-Programming/CEmu/issues/366
6665
CONFIG += ltcg

0 commit comments

Comments
 (0)