Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
57c4d9d
Add PSP port with shared fast software renderer
kikugrave Feb 15, 2026
3478758
Fix lint
kikugrave Feb 15, 2026
f881e7c
Fix lint 2
kikugrave Feb 15, 2026
6b3bca2
Fix lint 3
kikugrave Feb 15, 2026
efeebe0
fixes, add ps2 build
freshollie Feb 16, 2026
12e9621
convert to sdl_ps2
freshollie Feb 16, 2026
31419ca
add ps2 non sdl
freshollie Feb 17, 2026
d194ef3
replace fast renderer with gpsp renderer
freshollie Feb 18, 2026
84cbc3e
remove common
freshollie Feb 18, 2026
45754d5
fix oam and some extended backgrounds
freshollie Feb 18, 2026
66f9a09
fix bg rendering in widescreen hack, 512 rendering still not working
freshollie Feb 19, 2026
5891c7e
fix render for 512 backgrounds
freshollie Feb 19, 2026
a849adc
switch to latest gpsp renderer, allow c++ compilation
freshollie Feb 20, 2026
f3004a4
handle control input, clean up
freshollie Feb 20, 2026
34563da
start this
freshollie Feb 20, 2026
1cd03df
fixes
freshollie Feb 20, 2026
caa9d52
reverse some audio changes, leave in precacled division
freshollie Feb 20, 2026
ac1877a
switch cgb audio to 16bit fixed
freshollie Feb 21, 2026
058046e
less float
freshollie Feb 21, 2026
6381aba
whole pipeline in s16
freshollie Feb 21, 2026
21575d4
convert final mixer value to fixed 16
freshollie Feb 21, 2026
e6739b5
fix audio issue due to overflow
freshollie Feb 22, 2026
ffb1a20
more precision in cgb audio
freshollie Feb 22, 2026
98005f3
switch audio to 8.24, more performance improvements
freshollie Feb 22, 2026
3f74695
Merge branch 'main' into psp-ps2
freshollie Feb 22, 2026
edc3e58
remove comment
freshollie Feb 22, 2026
7d55de1
fix some affine backgrounds (special stage)
freshollie Feb 22, 2026
0c7e81e
fix intro
freshollie Feb 23, 2026
a654752
more audio optimisation
freshollie Feb 23, 2026
de7335f
fix windows build, build remote volatile regs for portable platforms
freshollie Feb 24, 2026
002d703
pr cleanup
freshollie Feb 24, 2026
091545d
more cleanup
freshollie Feb 24, 2026
549ddf0
clean up
freshollie Feb 24, 2026
8e5068f
more cleanup
freshollie Feb 24, 2026
cef73e5
build fixes for psp, add ps2 to workflow
freshollie Feb 25, 2026
34ebe97
fix pipeline, update readme
freshollie Feb 25, 2026
1964dc8
fix ps2 build
freshollie Feb 25, 2026
55d7b65
add missing deps
freshollie Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ARG VARIANT
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends binutils-arm-none-eabi gcc-arm-none-eabi libpng-dev build-essential clang-format-13 xorg-dev libsdl2-dev gcc-mingw-w64 libarchive-tools
&& apt-get -y install --no-install-recommends binutils-arm-none-eabi gcc-arm-none-eabi libpng-dev build-essential clang-format-13 xorg-dev libsdl2-dev g++-mingw-w64 gcc-mingw-w64 libarchive-tools

WORKDIR /deps
RUN git clone https://github.com/pret/agbcc.git && cd agbcc && ./build.sh
76 changes: 45 additions & 31 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,47 @@ name: CI

on:
push:
branches: [ main ]
branches: [main]
pull_request:
pull_request_target:

jobs:
format:
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
runs-on: ubuntu-22.04
steps:
- name: Checkout PR
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
uses: actions/checkout@master
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout
if: ${{ github.event_name == 'push' }}
uses: actions/checkout@master

- name: Install tools
run: |
sudo apt update && sudo apt install clang-format-13

- name: Check formatting
run: |
make check_format

build-gba:
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
runs-on: ubuntu-22.04
name: Build GBA (USA)
steps:
- name: Checkout PR
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
uses: actions/checkout@master
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Checkout
if: ${{ github.event_name == 'push' }}
uses: actions/checkout@master

- name: Checkout gh-pages
if: ${{ github.event_name == 'push' }}
uses: actions/checkout@master
Expand Down Expand Up @@ -120,25 +120,25 @@ jobs:
cwd: "./gh-pages"
add: "reports maps"
message: ${{ env.REPORTS_COMMIT_MSG }}

build-gba-variants:
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
runs-on: ubuntu-22.04
name: Build GBA (${{ matrix.variant }})
strategy:
matrix:
matrix:
variant: ["europe", "japan", "japan_vc", "usa_beta"]
steps:
- name: Checkout PR
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
uses: actions/checkout@master
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Checkout
if: ${{ github.event_name == 'push' }}
uses: actions/checkout@master

- name: Checkout gh-pages
if: ${{ github.event_name == 'push' }}
uses: actions/checkout@master
Expand Down Expand Up @@ -167,15 +167,15 @@ jobs:

ports:
strategy:
matrix:
platform: ["sdl", "sdl_win32", "win32"]
matrix:
platform: ["sdl", "sdl_win32", "win32", "ps2"]
os: ["ubuntu-22.04", "macos-15"]
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.platform }} (${{ matrix.os }})
steps:
- name: Checkout PR
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
uses: actions/checkout@master
with:
ref: ${{ github.event.pull_request.head.sha }}
Expand All @@ -187,32 +187,46 @@ jobs:
- name: Install tools (Linux)
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo apt update && sudo apt install xorg-dev libsdl2-dev gcc-mingw-w64 libarchive-tools
sudo apt update && sudo apt install xorg-dev libsdl2-dev g++-mingw-w64 gcc-mingw-w64 libarchive-tools mkisofs

- name: Install Tools (Macos)
if: ${{ matrix.os == 'macos-15' }}
run: |
brew install libpng sdl2 mingw-w64 arm-none-eabi-gcc
brew install libpng sdl2 mingw-w64 arm-none-eabi-gcc cdrtools

- name: Install SDL for win32
if: ${{ matrix.platform == 'sdl_win32' }}
run: |
make SDL2.dll


# TODO: Don't install latest SDK, use a stable version
- name: Install PS2DEV
if: ${{ matrix.platform == 'ps2' }}
run: |
PS2DEV="$HOME/ps2dev"
echo "PS2DEV=$HOME/ps2dev" >> "$GITHUB_ENV"
mkdir -p $PS2DEV
echo "PS2SDK=$PS2DEV/ps2sdk" >> "$GITHUB_ENV"
echo "GSKIT=$PS2DEV/gsKit" >> "$GITHUB_ENV"
echo "$PS2DEV/bin" >> "$GITHUB_PATH"
echo "$PS2DEV/ee/bin" >> "$GITHUB_PATH"
curl -o ps2dev-latest.tar.gz -LC - https://github.com/ps2dev/ps2dev/releases/download/latest/ps2dev-$(if [[ "$OSTYPE" == "darwin"* ]]; then echo macos; else echo ubuntu; fi)-latest.tar.gz
tar -xf ps2dev-latest.tar.gz --strip-components 1 -C $PS2DEV

- name: ${{ matrix.platform }}
run: |
make -j${nproc} ${{ matrix.platform }}

test:
strategy:
matrix:
matrix:
platform: ["sdl"]
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
runs-on: ubuntu-22.04
name: TAS Test ${{ matrix.platform }}
steps:
- name: Checkout PR
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
uses: actions/checkout@master
with:
ref: ${{ github.event.pull_request.head.sha }}
Expand All @@ -223,17 +237,17 @@ jobs:

- name: Install tools
run: |
sudo apt update && sudo apt install xorg-dev libsdl2-dev gcc-mingw-w64 libarchive-tools
sudo apt update && sudo apt install xorg-dev libsdl2-dev g++-mingw-w64 gcc-mingw-w64 libarchive-tools

- name: Install SDL for win32
if: ${{ matrix.platform == 'sdl_win32' }}
run: |
make SDL2.dll

- name: Build ${{ matrix.platform }}
run: |
make -j${nproc} ${{ matrix.platform }} TAS_TESTING=1

- name: Run TAS
timeout-minutes: 1
env:
Expand All @@ -242,12 +256,12 @@ jobs:
./sa2.${{ matrix.platform }}

level_editor:
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork || github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.fork}}
runs-on: ubuntu-22.04
name: Level editor (BriBaSA)
steps:
- name: Checkout PR
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_target'}}
uses: actions/checkout@master
with:
ref: ${{ github.event.pull_request.head.sha }}
Expand All @@ -259,7 +273,7 @@ jobs:
- name: Install deps
run: |
sudo apt update && sudo apt install xorg-dev libsdl2-dev

- name: Build
run: |
make -j${nproc} bribasa
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,12 @@ libagbsyscall/*.s
*.exe
*.dll
*.sdl
*.iso

# PSP build outputs
EBOOT.PBP
PARAM.SFO
sa2_debug.log

# third party deps
/ext
2 changes: 1 addition & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Install WSL (Ubuntu). Once installed, open this project in the WSL terminal and
#### On Linux (including WSL)
```
sudo apt update
sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libpng-dev xorg-dev libsdl2-dev gcc-mingw-w64 libarchive-tools
sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libpng-dev xorg-dev libsdl2-dev g++-mingw-w64 gcc-mingw-w64 libarchive-tools
```

#### On MacOS
Expand Down
Loading