Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
a2fdf98
Fixed 32 bit issues
KiritoDv Aug 9, 2025
ad19b9d
Fix non-portable build
Alto1772 Jul 31, 2025
c65b778
submodule update Torch, [TEMP] libultraship
Alto1772 Aug 3, 2025
93545c0
submodule update libultraship
Alto1772 Aug 9, 2025
6984f9c
place assets in exe's dir on post build
Alto1772 Aug 9, 2025
3d63f60
add NOMINMAX
Alto1772 Aug 10, 2025
c02842d
Fix Mac build game controller download
pete-woods Aug 11, 2025
48f3abe
use ARRAY_COUNT for SEQ_NUM_CHANNELS in audio_seqplayer.c
sonicdcer Sep 10, 2025
964bc59
SEQ_NUM_CHANNELS macro usage
sonicdcer Sep 16, 2025
1f14108
Restore beta bomb explosion
sonicdcer Oct 17, 2025
1979ff3
Level Boss Tester
sonicdcer Oct 21, 2025
fff98a7
fix solar ending cutscene fox head magnitude
sonicdcer Dec 9, 2025
20c0b41
set hit count cap to 999 to restore US/JP 1.0 behaviour
sonicdcer Dec 13, 2025
e8246fa
Fix Player being visible in Solar LevelStart cutscene
sonicdcer Dec 23, 2025
c3b4a81
Andross cutscene Recording + tune up
sonicdcer Dec 27, 2025
23d07e9
Enter Warpzone cutscene recording
sonicdcer Dec 27, 2025
b1e544d
fix partial starfield
sonicdcer Jan 3, 2026
e8391e8
partial starfield floats
sonicdcer Jan 3, 2026
1aa6dff
Apply F-Zero X version of AudioHeap_DiscardSampleCaches bugfix
sonicdcer Jan 4, 2026
a6429d7
audio UB fix correction
sonicdcer Jan 4, 2026
5107795
fix seams in backgrounds
sonicdcer Jan 6, 2026
b9031d6
Ending Recording
sonicdcer Jan 6, 2026
d4094ec
Add gDebugLevelComplete special condition for LEVEL_FORTUNA
sonicdcer Jan 15, 2026
d2ae1ba
Add rumble to Fortuna exploding cutscene
sonicdcer Jan 15, 2026
5019c5a
Fix EdgeArrows texture scrolling
sonicdcer Feb 7, 2026
60d9ea9
Interpolation: Camera Skipping for Title Cutscene
sonicdcer Feb 23, 2026
834eaa9
Interpolation: Camera interpolation skip for cutscenes
sonicdcer Feb 23, 2026
b8f61dd
camera_interp_skip.c: include guards
sonicdcer Feb 23, 2026
0f0132b
Fix duplicate symbol definition
sonicdcer Feb 23, 2026
122f479
Interpolation: Tag SyShogun Engine Glow
sonicdcer Feb 23, 2026
44132ee
prototype for should_interpolate_perspective
sonicdcer Feb 23, 2026
1249a85
Interpolation: Tag radar marks
sonicdcer Feb 24, 2026
8ec04cb
ARRAY_COUNT usage
sonicdcer Feb 24, 2026
28b43e1
fix scene change code
sonicdcer Feb 24, 2026
9d8172f
Disable Title AUDIO_SPEC set when scene changes for now.
sonicdcer Feb 25, 2026
f20465a
Sector X: Hide Falco's spawn position behind Fox's Arwing during the …
sonicdcer Feb 25, 2026
7b6efd3
use GameEngine_GetAspectRatio
sonicdcer Feb 25, 2026
fd1a1d6
Optimize Draw Distance settings
sonicdcer Mar 2, 2026
faf5c50
Add A6Gorgon Cutscene Record from N64 Hardware & Refactor code.
sonicdcer Mar 10, 2026
00cde39
Selectable Radio Comm Box position
sonicdcer Mar 11, 2026
47831f5
Refactor Interpolation System
sonicdcer Mar 12, 2026
a69e965
fix function name
sonicdcer Mar 12, 2026
1bb941b
Fix CI try
sonicdcer Mar 13, 2026
3d88207
Fix macOS CI (#243)
garrettjoecox Mar 13, 2026
10ec999
Solar Intro Cutscene Vi Recording
sonicdcer Mar 18, 2026
5050031
Try to use macos-14 (#244)
garrettjoecox Mar 19, 2026
0b90f26
Corneria_CoCarrier_Init Correction
sonicdcer Mar 20, 2026
3e3e7b8
MacOS CI Universal Build (#246)
garrettjoecox Mar 20, 2026
62eb5a1
Tweak actions cache (#248)
garrettjoecox Mar 21, 2026
7dd7ec2
No need to rotate buildings twice if we're already doing it in Object…
sonicdcer Mar 23, 2026
236df1c
Merge branch 'main' of https://github.com/HarbourMasters/Starship
sonicdcer Mar 23, 2026
0caf5e2
Fix Crash in Sector Y BOSS
sonicdcer Apr 27, 2026
fad71e7
Add Spanish Translation ROMHACK support
sonicdcer Apr 30, 2026
39bf387
Accomodate menu for the Spanish audio romhack support
sonicdcer Apr 30, 2026
ed66043
CI Try
sonicdcer May 9, 2026
073d266
CI Try
sonicdcer May 9, 2026
50550e5
Fix wget
sonicdcer May 9, 2026
6cc3b1e
CI Try 2
sonicdcer May 9, 2026
9eb0d11
CI Try 3
sonicdcer May 9, 2026
2444d5e
CI Try 4
sonicdcer May 9, 2026
be6c807
CI Try 5
sonicdcer May 9, 2026
157100f
Refresh CI.md
sonicdcer Jun 15, 2026
b96d7e4
remove space from readme added in previous commit
briaguya0 Jun 15, 2026
cee62dd
Merge branch 'main' of github.com:HarbourMasters/Starship
sonicdcer Jun 15, 2026
d948938
Fix switch try
sonicdcer Jun 15, 2026
6202c44
test: trigger CI
briaguya0 Jun 15, 2026
dc4faf4
Merge upstream/main and drop the vendored libultraship
izzy2lost Aug 4, 2026
675f007
Android: generate sf64.o2r on the device
izzy2lost Aug 4, 2026
75c16be
Android: build the native side optimised in every variant
izzy2lost Aug 4, 2026
e38d373
Android: open the menu with F1, and fix the manager screens
izzy2lost Aug 4, 2026
5ade4e7
Change Discord section to Website section (#295)
Caladius Sep 15, 2026
f641993
Update Starship.desktop (#290)
Link4Electronics Sep 15, 2026
3322643
Allow builders to override CPU_OPTION (#288)
JeodC Sep 15, 2026
ef7f3f0
Merge remote-tracking branch 'upstream/main' into android-ondevice
outusuke Oct 16, 2026
ddb4418
release: grant contents write so the release step can publish
outusuke Oct 16, 2026
0a8d7e5
ci: skip the removed 'tools' SDK package and use sdkmanager from PATH
outusuke Oct 16, 2026
08bc8d1
Android: store saves and game files in Android/media
outusuke Oct 16, 2026
a77eead
Merge pull request #1 from outusuke/android-saves-media-dir
outusuke Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .github/macports.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ports:
- name: libsdl2
select: [ universal ]
- name: libpng
select: [ universal ]
- name: glew
select: [ universal ]
- name: libzip
select: [ universal ]
- name: nlohmann-json
select: [ universal ]
- name: tinyxml2
select: [ universal ]
- name: libogg
select: [ universal ]
- name: libopus
select: [ universal ]
- name: opusfile
select: [ universal ]
- name: libvorbis
select: [ universal ]
68 changes: 42 additions & 26 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,18 @@ concurrency:
cancel-in-progress: true

jobs:
# The engine assets are the one thing the app cannot build on-device: packing
# them needs the Torch executable, and the NDK build has no host toolchain.
# Build it here and ship the result as an APK asset. The game's own assets are
# extracted from the user's ROM on-device.
generate-port-o2r:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install dependencies
run: sudo apt-get install gcc g++ git cmake ninja-build lsb-release
run: sudo apt-get update && sudo apt-get install -y gcc g++ git cmake ninja-build lsb-release
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2.18
with:
Expand Down Expand Up @@ -58,73 +62,85 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: true

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Android SDK
uses: android-actions/setup-android@v3

- name: Install NDK 28
with:
# the default "tools" package is no longer served and fails the step
packages: ''

- name: Install NDK
run: |
echo "y" | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "ndk;28.2.12604990" || \
echo "y" | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "ndk;28.0.12433566"

echo "y" | sdkmanager --install "ndk;30.0.15729638"

- name: Install dependencies
run: sudo apt-get install -y ninja-build

run: sudo apt-get update && sudo apt-get install -y ninja-build

# The repository root, not the assets folder: the packaging task in
# android/app/build.gradle.kts bundles this into gamedata.zip itself.
- name: Download starship.o2r
uses: actions/download-artifact@v4
with:
name: starship.o2r
path: android/app/src/main/assets
path: .

- name: Configure Gradle permissions
run: chmod +x android/gradlew


- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Build Debug APK
if: matrix.build-type == 'debug'
run: |
cd android/
./gradlew assembleDebug -P elfBuildType=RelWithDebInfo
./gradlew assembleDebug
mv app/build/outputs/apk/debug/app-debug.apk ../starship-debug.apk


# Without a keystore the release build falls back to the debug key, so this
# step is allowed to be skipped on forks that have no secrets configured.
- name: Setup signing keystore
if: matrix.build-type == 'release' && env.KEYSTORE_FILE != ''
run: |
echo "${{ secrets.KEYSTORE_FILE }}" | base64 -d > android/app/starship-release-key.keystore
echo "STARSHIP_STORE_FILE=starship-release-key.keystore" >> android/keystore.properties
echo "STARSHIP_STORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }}" >> android/keystore.properties
echo "STARSHIP_KEY_ALIAS=${{ secrets.KEY_ALIAS }}" >> android/keystore.properties
echo "STARSHIP_KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}" >> android/keystore.properties
echo "${{ secrets.KEYSTORE_FILE }}" | base64 -d > android/app/release.keystore
test -s android/app/release.keystore || (echo "Failed to create keystore file" && exit 1)
env:
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }}

- name: Build Release APK
if: matrix.build-type == 'release'
run: |
cd android/
./gradlew assembleRelease -P elfBuildType=RelWithDebInfo
./gradlew assembleRelease
mv app/build/outputs/apk/release/app-release.apk ../starship-release.apk

env:
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE != '' && 'release.keystore' || '' }}
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}

- name: Upload Debug APK
if: matrix.build-type == 'debug'
uses: actions/upload-artifact@v4
with:
name: starship-debug-apk
path: starship-debug.apk
retention-days: 7

- name: Upload Release APK
if: matrix.build-type == 'release'
uses: actions/upload-artifact@v4
with:
name: starship-release-apk
path: starship-release.apk
retention-days: 30



- name: Clean up keystore
if: always()
run: rm -f android/app/release.keystore
26 changes: 10 additions & 16 deletions .github/workflows/mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,18 @@ on:

jobs:
build:
runs-on: macOS-latest
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Install dependencies
run: brew install sdl2 libpng glew ninja cmake libzip nlohmann-json tinyxml2 spdlog vorbis-tools
- uses: melusina-org/setup-macports@v1
with:
parameters: '.github/macports.yml'
- uses: hendrikmuhs/ccache-action@v1.2
with:
key: macos # ccache-macos
- name: Build
run: |
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build build-cmake -j
- name: Create Package
run: |
mkdir starship-release
mv build-cmake/Starship starship-release/
- name: Publish packaged artifacts
uses: actions/upload-artifact@v4
with:
name: starship-mac-x64
path: starship-release
retention-days: 1
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
cmake --build build-cmake -j
39 changes: 21 additions & 18 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,35 +75,38 @@ jobs:

build-macos:
needs: generate-port-o2r
runs-on: macOS-latest
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Install dependencies
run: brew install sdl2 libpng glew ninja cmake libzip nlohmann-json tinyxml2 spdlog vorbis-tools
- uses: melusina-org/setup-macports@v1
with:
parameters: '.github/macports.yml'
- uses: hendrikmuhs/ccache-action@v1.2
with:
key: macos # ccache-macos
- name: Build
run: |
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build build-cmake --config Release -j3
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
cmake --build build-cmake -j
- name: Download starship.o2r
uses: actions/download-artifact@v4
with:
name: starship.o2r
path: ./build-cmake
- name: Create Package
run: |
mkdir starship-release
mv build-cmake/Starship starship-release/
mv build-cmake/starship.o2r starship-release/
mv config.yml starship-release/
mv assets starship-release/
wget -O starship-release/gamecontrollerdb.txt https://github.com/mdqinc/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
(cd build-cmake && cpack)
mv _packages/*.dmg Starship.dmg
mv README.md readme.txt
- name: Publish packaged artifacts
uses: actions/upload-artifact@v4
with:
name: starship-mac-x64
path: starship-release
name: Starship-mac
path: |
Starship.dmg
readme.txt

build-linux:
needs: generate-port-o2r
Expand Down Expand Up @@ -181,7 +184,7 @@ jobs:
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build build-cmake --config Release -j3
(cd build-cmake && cpack -G External)
wget -O gamecontrollerdb.txt https://github.com/mdqinc/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
wget -O gamecontrollerdb.txt https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt
mv README.md readme.txt
mv build-cmake/*.appimage starship.appimage
- name: Upload build
Expand Down Expand Up @@ -210,12 +213,12 @@ jobs:
sudo apt-get remove -y cmake
git -C libultraship remote add nx https://github.com/Net64DD/libultraship.git
git -C libultraship fetch nx
git -C libultraship checkout nx/main-nx
git -C libultraship checkout 09dfab5fb2a9a047a6e268dc9db2daad9b2ce5f0
wget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-x86_64.sh -O /tmp/cmake.sh
sudo sh /tmp/cmake.sh --prefix=/usr/local/ --exclude-subdir
cmake -H. -Bbuild-switch -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake
cmake --build build-switch --config Release -j3
wget -O gamecontrollerdb.txt https://github.com/mdqinc/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
wget -O gamecontrollerdb.txt https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt
mv README.md readme.txt
mv build-switch/*.nro Starship.nro
- name: Upload build
Expand All @@ -226,4 +229,4 @@ jobs:
Starship.nro
config.yml
assets
gamecontrollerdb.txt
gamecontrollerdb.txt
Loading