From 1e596e6210ff525964d56ece6bb81bff09e2a208 Mon Sep 17 00:00:00 2001 From: Ahmad Date: Fri, 18 Sep 2026 00:39:29 +1000 Subject: [PATCH 1/6] Add AArch64 build target to workflow --- .github/workflows/build.yml | 38 ++++++++++++++++++++ projects/Makefile | 2 ++ projects/Makefile.AARCH64 | 36 +++++++++++++++++++ projects/resources/packaging/lgpt_package.sh | 1 + 4 files changed, 77 insertions(+) create mode 100644 projects/Makefile.AARCH64 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 04e23855..39950259 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -127,6 +127,44 @@ jobs: tag_name: ${{ steps.extract_tag.outputs.tag_name }} files: ./projects/*.zip + build-aarch64: + runs-on: ubuntu-22.04-arm + steps: + - name: Checkout repository + uses: actions/checkout@v4.1.7 + + - name: Install required libraries + run: | + sudo apt update + sudo apt install -y make pkgconf libsdl2-dev libasound2 libasound2-dev python3-pil librtmidi-dev + + - name: Build AARCH64 + working-directory: projects + run: make PLATFORM=AARCH64 + + - name: Package build + working-directory: projects + run: | + TAG=$(curl "https://api.github.com/repos/djdiskmachine/lgpt-resources/tags" | jq -r '.[0].name') + curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/${TAG}.zip + unzip lgpt-resources.zip + mv lgpt-resources-${TAG}/*/ ./resources/packaging + rm -rf lgpt-resources* + ./resources/packaging/lgpt_package.sh + + - name: Extract Git tag name + id: extract_tag + run: echo "tag_name=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + env: + GITHUB_REF: ${{ github.ref }} + + - name: Upload build release + uses: softprops/action-gh-release@v2.4.2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + tag_name: ${{ steps.extract_tag.outputs.tag_name }} + files: ./projects/*.zip + build-x64: runs-on: ubuntu-latest steps: diff --git a/projects/Makefile b/projects/Makefile index 9fc7e43d..83c6038d 100644 --- a/projects/Makefile +++ b/projects/Makefile @@ -111,6 +111,7 @@ RG35XXPLUSDIRS := $(LINUXDIRS) $(DUMMYMIDIDIRS) $(SDL2DIRS) $(SDL2AUDIODIRS) STEAMDIRS := $(LINUXDIRS) $(JACKDIRS) $(RTAUDIODIRS) $(RTMIDIDIRS) $(SDLDIRS) X64DIRS := $(LINUXDIRS) $(RTMIDIDIRS) $(SDL2DIRS) $(SDL2AUDIODIRS) X86DIRS := $(LINUXDIRS) $(RTMIDIDIRS) $(SDL2DIRS) $(SDL2AUDIODIRS) +AARCH64DIRS := $(X64DIRS) #--------------------------------------------------------------------------------- # Consoles/Embedded @@ -330,6 +331,7 @@ RG35XXPLUSFILES := $(LINUXFILES) $(SDLAUDIOFILES) $(DUMMYMIDIFILES) STEAMFILES := $(LINUXFILES) $(RTAUDIOFILES) $(RTMIDIFILES) $(JACKFILES) X64FILES := $(LINUXFILES) $(RTMIDIFILES) $(SDLAUDIOFILES) X86FILES := $(LINUXFILES) $(RTMIDIFILES) $(SDLAUDIOFILES) +AARCH64FILES := $(X64FILES) #--------------------------------------------------------------------------------- # Consoles/Embedded diff --git a/projects/Makefile.AARCH64 b/projects/Makefile.AARCH64 new file mode 100644 index 00000000..06f7625d --- /dev/null +++ b/projects/Makefile.AARCH64 @@ -0,0 +1,36 @@ +-include $(PWD)/rules_base + +# config +DEFINES := \ + -DPLATFORM_$(PLATFORM) \ + -D_64BIT \ + -DCPP_MEMORY \ + -D__LINUX_ALSA__ \ + -D__LINUX_ALSASEQ__ \ + -DSDL2 \ + -DSDLAUDIO \ + -DRTMIDI \ + -DFFMPEG_ENABLED \ + -D_FEAT_MIDI_LOCK + +ALSA_CFLAGS := $(shell pkg-config alsa --cflags) +ALSA_LIBS := $(shell pkg-config alsa --libs) +JACK_CFLAGS := $(shell pkg-config jack --cflags) +JACK_LIBS := $(shell pkg-config jack --libs) +SDL_CFLAGS := $(shell pkg-config sdl2 --cflags) +SDL_LIBS := $(shell pkg-config sdl2 --libs) + +# optimization +OPT_FLAGS := -O3 +#For debugging +OPT_FLAGS := -g +INCLUDES := $(ALSA_CFLAGS) $(JACK_CFLAGS) $(SDL_CFLAGS) -I$(PWD)/../sources +CFLAGS := $(OPT_FLAGS) $(DEFINES) $(INCLUDES) -Wall +CXXFLAGS := $(CFLAGS) -std=gnu++03 +LIBS := $(ALSA_LIBS) $(JACK_LIBS) $(SDL_LIBS) +OUTPUT := ../lgpt +EXTENSION := aarch64 + +# build rule +%.aarch64: $(OFILES) + $(CXX) $(LDFLAGS) -o $@ $(OFILES) $(LIBS) diff --git a/projects/resources/packaging/lgpt_package.sh b/projects/resources/packaging/lgpt_package.sh index 968f7731..bf10ccf7 100755 --- a/projects/resources/packaging/lgpt_package.sh +++ b/projects/resources/packaging/lgpt_package.sh @@ -43,6 +43,7 @@ collect_resources() { #1PLATFORM #2lgpt.*-exe zip -9 ../../$PACKAGE -jq $CONTENTS && cd - } +collect_resources AARCH64 lgpt.aarch64 collect_resources PSP EBOOT.PBP collect_resources DEB lgpt.deb-exe collect_resources X64 lgpt.x64 From 2e82c960c0e2ecc118b12528a2864dfacf393ce5 Mon Sep 17 00:00:00 2001 From: Ahmad Date: Fri, 18 Sep 2026 02:24:28 +1000 Subject: [PATCH 2/6] Use Docker container & include resources --- .github/workflows/build.yml | 10 ++++- projects/resources/AARCH64/config.xml | 37 ++++++++++++++++ projects/resources/AARCH64/mapping.xml | 61 ++++++++++++++++++++++++++ 3 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 projects/resources/AARCH64/config.xml create mode 100644 projects/resources/AARCH64/mapping.xml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39950259..7c2dba08 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -129,14 +129,20 @@ jobs: build-aarch64: runs-on: ubuntu-22.04-arm + container: + image: monkeyx/retro_builder:arm64 steps: - name: Checkout repository uses: actions/checkout@v4.1.7 - name: Install required libraries run: | - sudo apt update - sudo apt install -y make pkgconf libsdl2-dev libasound2 libasound2-dev python3-pil librtmidi-dev + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null + apt update + apt upgrade -y + apt install -y make pkgconf libsdl2-dev libasound2 libasound2-dev python3-pil librtmidi-dev unzip zip curl jq + env: + DEBIAN_FRONTEND: "noninteractive" - name: Build AARCH64 working-directory: projects diff --git a/projects/resources/AARCH64/config.xml b/projects/resources/AARCH64/config.xml new file mode 100644 index 00000000..09ac04f0 --- /dev/null +++ b/projects/resources/AARCH64/config.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/resources/AARCH64/mapping.xml b/projects/resources/AARCH64/mapping.xml new file mode 100644 index 00000000..f43e0c90 --- /dev/null +++ b/projects/resources/AARCH64/mapping.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 4f5b4ccbef7a4a148d97308ef5d53de6da0788f4 Mon Sep 17 00:00:00 2001 From: Ahmad Date: Fri, 18 Sep 2026 12:10:42 +1000 Subject: [PATCH 3/6] Bump Ubuntu version --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7c2dba08..b45df100 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -128,7 +128,7 @@ jobs: files: ./projects/*.zip build-aarch64: - runs-on: ubuntu-22.04-arm + runs-on: ubuntu-26.04-arm container: image: monkeyx/retro_builder:arm64 steps: From d715d3ec324dee2daebd2d45796926ee9f464f76 Mon Sep 17 00:00:00 2001 From: Ahmad Date: Fri, 18 Sep 2026 23:20:40 +1000 Subject: [PATCH 4/6] Update README --- README.md | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 2356147d..2995d91f 100644 --- a/README.md +++ b/README.md @@ -40,22 +40,23 @@ Recommended reading to get you started: ## Features per platform -| Platform | MIDI_Possible | MIDI_enabled | Soundfonts | Note | -|-------------|---------------|--------------|------------|--------------------------------------| -| PSP | NO | NO | YES | [See notes](projects/resources/PSP/INSTALL_HOW_TO.txt) | -| DEB | YES | YES | YES | | -| X64 | YES | YES | MAYBE | | -| X86 | YES | YES | YES | | -| STEAM | YES | YES | MAYBE | | -| MIYOO | NO | NO | YES | Port by [Nine-H](https://ninethehacker.xyz) | -| W32 | YES | YES | YES | Built in VS2008 with love | -| RASPI | YES | YES | YES | Versatile platform | -| CHIP | YES | YES | YES | [See notes](projects/resources/CHIP/INSTALL_HOW_TO.txt) | -| BITTBOY | MAYBE | NO | YES | | -| GARLIC | NO | NO |NO | No longer maintained, use Portmaster| -| GARLICPLUS | MAYBE | NO | YES | Port by [Simotek](http://simotek.net)| -| RG35XXPLUS | MAYBE | NO | YES | Port by [Simotek](http://simotek.net)| -| MACOS | YES | YES | MAYBE | Port by [clsource](https://genserver.social/clsource) | +| Platform | MIDI_Possible | MIDI_enabled | Soundfonts | Note | +|------------|---------------|--------------|------------|---------------------------------------------------------| +| PSP | NO | NO | YES | [See notes](projects/resources/PSP/INSTALL_HOW_TO.txt) | +| DEB | YES | YES | YES | | +| AARCH64 | YES | YES | YES | | +| X64 | YES | YES | YES | | +| X86 | YES | YES | YES | | +| STEAM | YES | YES | MAYBE | | +| MIYOO | NO | NO | YES | Port by [Nine-H](https://ninethehacker.xyz) | +| W32 | YES | YES | YES | Built in VS2008 with love | +| RASPI | YES | YES | YES | Versatile platform | +| CHIP | YES | YES | YES | [See notes](projects/resources/CHIP/INSTALL_HOW_TO.txt) | +| BITTBOY | MAYBE | NO | YES | | +| GARLIC | NO | NO | NO | No longer maintained, use Portmaster | +| GARLICPLUS | MAYBE | NO | YES | Port by [Simotek](http://simotek.net) | +| RG35XXPLUS | MAYBE | NO | YES | Port by [Simotek](http://simotek.net) | +| MACOS | YES | YES | MAYBE | Port by [clsource](https://genserver.social/clsource) | * **MIDI functionality __greatly__ depends on kernel support, please feature request your favourite OS maintainer =)** * **Install ffmpeg by following install instructions for your platform [here](https://www.ffmpeg.org/download.html)** From 677dd2a3aae8773dcb01902a6126b3d0d4a80f72 Mon Sep 17 00:00:00 2001 From: Ahmad Date: Sun, 20 Sep 2026 00:48:19 +1000 Subject: [PATCH 5/6] Formatting --- projects/Makefile.AARCH64 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/Makefile.AARCH64 b/projects/Makefile.AARCH64 index 06f7625d..59382a28 100644 --- a/projects/Makefile.AARCH64 +++ b/projects/Makefile.AARCH64 @@ -4,9 +4,9 @@ DEFINES := \ -DPLATFORM_$(PLATFORM) \ -D_64BIT \ - -DCPP_MEMORY \ - -D__LINUX_ALSA__ \ - -D__LINUX_ALSASEQ__ \ + -DCPP_MEMORY \ + -D__LINUX_ALSA__ \ + -D__LINUX_ALSASEQ__ \ -DSDL2 \ -DSDLAUDIO \ -DRTMIDI \ From f4df37012bf0d420f4f0412bbfca06b5e10ccaf4 Mon Sep 17 00:00:00 2001 From: Ahmad Date: Sun, 18 Oct 2026 10:19:58 +1000 Subject: [PATCH 6/6] Remove AARCH64-specific Makefile --- .github/workflows/build.yml | 4 +++- projects/Makefile | 2 -- projects/Makefile.AARCH64 | 36 ------------------------------------ 3 files changed, 3 insertions(+), 39 deletions(-) delete mode 100644 projects/Makefile.AARCH64 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b45df100..85dc35f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -146,7 +146,9 @@ jobs: - name: Build AARCH64 working-directory: projects - run: make PLATFORM=AARCH64 + run: | + make PLATFORM=X64 + mv lgpt.x64 lgpt.aarch64 - name: Package build working-directory: projects diff --git a/projects/Makefile b/projects/Makefile index 83c6038d..9fc7e43d 100644 --- a/projects/Makefile +++ b/projects/Makefile @@ -111,7 +111,6 @@ RG35XXPLUSDIRS := $(LINUXDIRS) $(DUMMYMIDIDIRS) $(SDL2DIRS) $(SDL2AUDIODIRS) STEAMDIRS := $(LINUXDIRS) $(JACKDIRS) $(RTAUDIODIRS) $(RTMIDIDIRS) $(SDLDIRS) X64DIRS := $(LINUXDIRS) $(RTMIDIDIRS) $(SDL2DIRS) $(SDL2AUDIODIRS) X86DIRS := $(LINUXDIRS) $(RTMIDIDIRS) $(SDL2DIRS) $(SDL2AUDIODIRS) -AARCH64DIRS := $(X64DIRS) #--------------------------------------------------------------------------------- # Consoles/Embedded @@ -331,7 +330,6 @@ RG35XXPLUSFILES := $(LINUXFILES) $(SDLAUDIOFILES) $(DUMMYMIDIFILES) STEAMFILES := $(LINUXFILES) $(RTAUDIOFILES) $(RTMIDIFILES) $(JACKFILES) X64FILES := $(LINUXFILES) $(RTMIDIFILES) $(SDLAUDIOFILES) X86FILES := $(LINUXFILES) $(RTMIDIFILES) $(SDLAUDIOFILES) -AARCH64FILES := $(X64FILES) #--------------------------------------------------------------------------------- # Consoles/Embedded diff --git a/projects/Makefile.AARCH64 b/projects/Makefile.AARCH64 deleted file mode 100644 index 59382a28..00000000 --- a/projects/Makefile.AARCH64 +++ /dev/null @@ -1,36 +0,0 @@ --include $(PWD)/rules_base - -# config -DEFINES := \ - -DPLATFORM_$(PLATFORM) \ - -D_64BIT \ - -DCPP_MEMORY \ - -D__LINUX_ALSA__ \ - -D__LINUX_ALSASEQ__ \ - -DSDL2 \ - -DSDLAUDIO \ - -DRTMIDI \ - -DFFMPEG_ENABLED \ - -D_FEAT_MIDI_LOCK - -ALSA_CFLAGS := $(shell pkg-config alsa --cflags) -ALSA_LIBS := $(shell pkg-config alsa --libs) -JACK_CFLAGS := $(shell pkg-config jack --cflags) -JACK_LIBS := $(shell pkg-config jack --libs) -SDL_CFLAGS := $(shell pkg-config sdl2 --cflags) -SDL_LIBS := $(shell pkg-config sdl2 --libs) - -# optimization -OPT_FLAGS := -O3 -#For debugging -OPT_FLAGS := -g -INCLUDES := $(ALSA_CFLAGS) $(JACK_CFLAGS) $(SDL_CFLAGS) -I$(PWD)/../sources -CFLAGS := $(OPT_FLAGS) $(DEFINES) $(INCLUDES) -Wall -CXXFLAGS := $(CFLAGS) -std=gnu++03 -LIBS := $(ALSA_LIBS) $(JACK_LIBS) $(SDL_LIBS) -OUTPUT := ../lgpt -EXTENSION := aarch64 - -# build rule -%.aarch64: $(OFILES) - $(CXX) $(LDFLAGS) -o $@ $(OFILES) $(LIBS)