Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
3fae902
Initial Rando Commit
Caladius Jan 9, 2026
8114ec6
Adds 2 checks for testing.
Caladius Jan 11, 2026
a5d5923
Implement more Rando Systems and added TODO's need help now.
Caladius Jan 12, 2026
74c13d9
Clean up headers and add file manipulation points
Caladius Jan 12, 2026
b5ba0dc
Add more Red Coins, comment out RandoSaveCheck struct until save file…
Caladius Jan 12, 2026
c19ea63
Add Metal Cap red coins
Caladius Jan 12, 2026
51ab3cc
Add Snowmans Land and Shifting Sands Red Coins
Caladius Jan 12, 2026
fb789c1
Update abbreviations
Caladius Jan 12, 2026
6b7c9f9
Added a Star Spawn LogOut for star spawn coords.
Caladius Jan 12, 2026
694a3b8
Add remaining Red Coins
Caladius Jan 13, 2026
1ccff8a
Adds Logic Framework + clangs
Caladius Jan 14, 2026
90d858e
Clean up some source code intrusion and reset nonworking implementati…
Caladius Jan 15, 2026
559185a
Minor Fixes
Caladius Jan 15, 2026
1acfe95
Fix missing files
Caladius Jan 15, 2026
1d1a475
more fixes
Caladius Jan 15, 2026
a0d79de
rebase fixes
Caladius Jan 16, 2026
b56613f
Merge remote-tracking branch 'source/develop' into develop-rando-rebase
Caladius Jan 16, 2026
dd8a960
Update to latest Dev
Caladius Jan 16, 2026
f4bf701
dev
Caladius Jan 16, 2026
cc77dfb
eventsystem again
Caladius Jan 16, 2026
54fb74f
Adds Red Coin and Star Dev Tools and completes the CustomItem.
Caladius Jan 16, 2026
e562ede
Finish Custom Items implementation.
Caladius Jan 17, 2026
028b622
Adds in Blue Coins
Caladius Jan 18, 2026
9a2ab5e
Clean up and rename Actors to Object for consistency
Caladius Jan 18, 2026
20a95ed
Update to latest Dev
Caladius Jan 18, 2026
f6bab55
Fix Extern
Caladius Jan 18, 2026
aafd8d9
Conflict Resolve
Caladius Jan 18, 2026
4f5b05d
Fix a lot of crap.
Caladius Jan 20, 2026
875f22b
Fix Star Model rendering
Caladius Jan 20, 2026
8ad2518
Adds new Stars and implements Exclamation Box functionality.
Caladius Jan 20, 2026
059979c
Fix Red Coin counter.
Caladius Jan 20, 2026
1effecd
Add 100 coin star framework
Caladius Jan 20, 2026
de24535
Final Star stretch
Caladius Jan 21, 2026
65fbdf9
Update to latest dev
Caladius Jan 21, 2026
1ff3887
conflict fix
Caladius Jan 21, 2026
f739dd5
Removes Context::Init() call, and fleshes out remaining manual initia…
Malkierian Jan 21, 2026
9baff81
Add logging for versioning on startup.
Malkierian Jan 22, 2026
b607e2c
Add ROM archive version checking and re-extraction flow.
Malkierian Jan 22, 2026
76f421c
Fixed THI and Goddard
KiritoDv Jan 21, 2026
1bb83f5
Added pdf files
KiritoDv Jan 21, 2026
9557ebe
Copied templates from 2ship
KiritoDv Jan 21, 2026
567df23
Fixed windows build flags
KiritoDv Jan 21, 2026
b08745c
Fixed github workflows
KiritoDv Jan 22, 2026
af50d6a
Fixed wrong folder structure among gamecontrollerdb having a wrong url
KiritoDv Jan 22, 2026
cef4329
Fixed possible audio crashes
KiritoDv Jan 22, 2026
36b269b
Generated port version to force o2r regenerations
KiritoDv Jan 22, 2026
b72a92c
Run clang-format
KiritoDv Jan 22, 2026
dda44b6
Bump Dutchman Charlie.
Malkierian Jan 22, 2026
a2411d3
Fixed port version write
KiritoDv Jan 22, 2026
c4af47e
Renamed to portVersion
KiritoDv Jan 22, 2026
5e3f1ea
Fix remaining issues with archive versioning.
Malkierian Jan 22, 2026
4d4c028
Merge remote-tracking branch 'source/develop-dutchman' into develop-r…
Caladius Jan 22, 2026
a32c768
Add remaining Stars
Caladius Jan 22, 2026
ead303b
Fix Blue Coin check locations
Caladius Jan 22, 2026
eda9f13
Fixes and adds Check Tracker
Caladius Jan 23, 2026
1ea0f80
Add scaling
Caladius Jan 23, 2026
a64e2e3
Add option to shuffle red coin star
Caladius Jan 23, 2026
5104f8d
Logic Rework
Caladius Jan 23, 2026
815d35e
header fix
Caladius Jan 23, 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
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/accuracy_issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Accuracy Issue
about: Report a discrepancy or inaccuracy in the game
title: "Description of the inaccuracy"
labels: bug
assignees: ''
---

- [ ] I have checked checked the known issues and searched Github to ensure this issue has not already been reported.

### Description of the inaccuracy:
<!-- A clear and concise description of what the inaccuracy is and where it occurs in the game. -->

### Screenshots or videos of Ghostship's behavior:

### Screenshots or videos of the original hardware's behavior:
<!-- If these were not sourced from original hardware please provide details on where they came from (Ares, Project64, etc) -->

### System Information:
- OS:
- GFX Backend: Metal, OpenGL, or DirectX
- Game Version:
- Rom Version:

### Additional Information:
<!-- Add any other context about the problem here. -->
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/crash_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Crash Report
about: Report a crash, unexpected exit, or freeze
title: "Description of the crash"
labels: bug, crash
assignees: ''
---

### Description of the crash:
<!-- A clear and concise description of what the crash was and what you were doing when it happened. -->

### Can you reproduce? If so please list the steps:
- [ ] No, I cannot reproduce this crash
- [ ] Yes, here are the steps to reproduce the crash:
<!--
1. Warp to...
2. Do this...
3. Crash
-->

### Screenshots or videos:
<!-- If applicable, add screenshots or videos to help explain your problem. -->

### Logs:
<!-- Please attach the crash logs or any relevant log files. These are located in the logs/ directory next to the executable or on MacOS in the application support directory -->

### System Information:
- OS:
- GFX Backend: Metal, OpenGL, or DirectX
- Game Version:
- Rom Version:

### Additional Information:
<!-- Add any other context about the problem here. -->
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/general_bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: General Bug
about: Other bugs related to Ghostship and it's features
title: "Description of the bug"
labels: bug
assignees: ''
---

- [ ] I have checked the known issues and searched Github to ensure this issue has not already been reported.
- [ ] This is not a feature request, I know those belong on Discord/Github Discussions.

### Description of the bug:
<!-- A clear and concise description of what the bug or enhancement is. -->

### Can you reproduce? If so please list the steps:
- [ ] No, I cannot reproduce this bug
- [ ] Yes, here are the steps to reproduce the bug:
<!--
1. Go to...
2. Do this...
3. See the bug
-->

### Expected behavior:
<!-- A clear and concise description of what you expected to happen or what the enhancement should achieve. -->

### Screenshots or videos:
<!-- If applicable, add screenshots or videos to help explain your problem or suggestion. -->

### System Information:
- OS:
- GFX Backend: Metal, OpenGL, or DirectX
- Game Version:
- Rom Version:

### Additional Information:
<!-- Add any other context about the problem or suggestion here. -->
7 changes: 5 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,11 @@ jobs:
- name: Create Package
run: |
mkdir ghostship-release
mkdir ghostship-release/debug
mv build/x64/Release/Ghostship.exe ghostship-release/
mv build/x64/Release/ghostship.o2r ghostship-release/
mv build/x64/Release/*.pdb ghostship-release/debug/
mv README.md ghostship-release/readme.txt
mv config.yml ghostship-release/
mv assets ghostship-release/
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt" -OutFile "ghostship-release/gamecontrollerdb.txt"
Expand Down Expand Up @@ -179,7 +182,7 @@ jobs:
cmake -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE=Debug
cmake --build build-cmake --config Debug -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/refs/heads/master/gamecontrollerdb.txt
mv README.md readme.txt
mv build-cmake/*.appimage ghostship.appimage
- name: Upload build
Expand Down Expand Up @@ -212,7 +215,7 @@ jobs:
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/refs/heads/master/gamecontrollerdb.txt
mv README.md readme.txt
mv build-switch/*.nro Ghostship.nro
- name: Upload build
Expand Down
114 changes: 44 additions & 70 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)

# Set the project version and language
project(Ghostship VERSION 1.0.1 LANGUAGES C CXX ASM)
project(Ghostship VERSION 1.0.2 LANGUAGES C CXX ASM)
include(FetchContent)

include(cmake/ghostship-cvars.cmake)
Expand Down Expand Up @@ -426,75 +426,44 @@ endif()
# Compile and link options
################################################################################
if(MSVC)
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_compile_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
/w;
/Od;
/MTd
>
$<$<CONFIG:Release>:
/Oi;
/Gy;
/W3;
/MT
>
/permissive-;
/MP;
${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT};
${DEFAULT_CXX_EXCEPTION_HANDLING}
)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:/ZI;>)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Release>:/Zi;>)
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
target_compile_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
/MTd
>
$<$<CONFIG:Release>:
/O2;
/Oi;
/Gy;
/MT
>
/permissive-;
/MP;
/w;
${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT};
${DEFAULT_CXX_EXCEPTION_HANDLING}
)
endif()
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_link_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
/INCREMENTAL
>
$<$<CONFIG:Release>:
/OPT:REF;
/OPT:ICF;
/INCREMENTAL:NO;
/FORCE:MULTIPLE
>
/MANIFEST:NO;
/DEBUG;
/SUBSYSTEM:WINDOWS
)
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
target_link_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
/STACK:8777216
>
$<$<CONFIG:Release>:
/OPT:REF;
/OPT:ICF;
/INCREMENTAL:NO;
/FORCE:MULTIPLE
>
/MANIFEST:NO;
/DEBUG;
/SUBSYSTEM:WINDOWS
)
endif()
target_compile_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
/w;
/Od
>
$<$<CONFIG:Release>:
/Oi;
/Gy;
/W3
>

/wd4024 #different types for formal and actual parameter [x]. Usually seen along side 4047.
/wd4047 #'uintptr_t' differs in levels of indirection from 'Gfx *'. Usually caused by passing a uintptr_t into a function expecting a pointer-types
/wd4090 #'initializing': different 'const' qualifiers. Caused when initializing a non const struct member with a const char*.
/wd4101 # unreferenced local variable. Things like stack pads.
/wd4133 #incompatible types. Usually caused by passing a c string into a function that takes a pointer.
/wd4244 #conversion from [a] to [b]. Used to warn when copying to smaller type without a cast.
/sdl-;
/permissive-;
/MP;
${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT};
${DEFAULT_CXX_EXCEPTION_HANDLING}
)
target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:/ZI;>)
target_link_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
/INCREMENTAL
>
$<$<CONFIG:Release>:
/OPT:REF;
/OPT:ICF;
/INCREMENTAL:NO;
/FORCE:MULTIPLE
>
/MANIFEST:NO;
/DEBUG;
/SUBSYSTEM:WINDOWS
)

# Remove /RTC from msvc flags
foreach (fentry
Expand Down Expand Up @@ -662,6 +631,11 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
install(FILES "${CMAKE_BINARY_DIR}/config.yml" DESTINATION . COMPONENT ${PROJECT_NAME})
endif()

if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION ./debug COMPONENT ${PROJECT_NAME})
install(FILES "${CMAKE_BINARY_DIR}/ghostship.o2r" DESTINATION . COMPONENT ${PROJECT_NAME})
endif()

if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
add_custom_target(CreateOSXIcons
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/macosx/ghostship.iconset
Expand Down
2 changes: 1 addition & 1 deletion Torch
5 changes: 1 addition & 4 deletions actors/group11.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
#include "assets/actors/spiny_egg.h"

// wiggler_body
#include "assets/actors/wiggler_body.h"

// wiggler_head
#include "assets/actors/wiggler_head.h"
#include "assets/actors/wiggler.h"

#endif
54 changes: 41 additions & 13 deletions include/assets/actors/bowser_flame.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,59 @@

static const ALIGN_ASSET(2) char flame_seg6_texture_06000000[] = "__OTR__actors/bowser_flame/bowser_flame_0";

static const ALIGN_ASSET(2) char flame_seg6_texture_06002000[] = "__OTR__actors/bowser_flame/bowser_flame_1";
static const ALIGN_ASSET(2) char flame_seg6_texture_06001000[] = "__OTR__actors/bowser_flame/bowser_flame_1";

static const ALIGN_ASSET(2) char flame_seg6_texture_06004000[] = "__OTR__actors/bowser_flame/bowser_flame_2";
static const ALIGN_ASSET(2) char flame_seg6_texture_06002000[] = "__OTR__actors/bowser_flame/bowser_flame_2";

static const ALIGN_ASSET(2) char flame_seg6_texture_06006000[] = "__OTR__actors/bowser_flame/bowser_flame_3";
static const ALIGN_ASSET(2) char flame_seg6_texture_06003000[] = "__OTR__actors/bowser_flame/bowser_flame_3";

static const ALIGN_ASSET(2) char flame_seg6_texture_06008000[] = "__OTR__actors/bowser_flame/bowser_flame_4";
static const ALIGN_ASSET(2) char flame_seg6_texture_06004000[] = "__OTR__actors/bowser_flame/bowser_flame_4";

static const ALIGN_ASSET(2) char flame_seg6_texture_0600A000[] = "__OTR__actors/bowser_flame/bowser_flame_5";
static const ALIGN_ASSET(2) char flame_seg6_texture_06005000[] = "__OTR__actors/bowser_flame/bowser_flame_5";

static const ALIGN_ASSET(2) char flame_seg6_texture_0600C000[] = "__OTR__actors/bowser_flame/bowser_flame_6";
static const ALIGN_ASSET(2) char flame_seg6_texture_06006000[] = "__OTR__actors/bowser_flame/bowser_flame_6";

static const ALIGN_ASSET(2) char flame_seg6_texture_0600E000[] = "__OTR__actors/bowser_flame/bowser_flame_7";
static const ALIGN_ASSET(2) char flame_seg6_texture_06007000[] = "__OTR__actors/bowser_flame/bowser_flame_7";

static const ALIGN_ASSET(2) char flame_seg6_texture_06010000[] = "__OTR__actors/bowser_flame/bowser_flame_8";
static const ALIGN_ASSET(2) char flame_seg6_texture_06008000[] = "__OTR__actors/bowser_flame/bowser_flame_8";

static const ALIGN_ASSET(2) char flame_seg6_texture_06012000[] = "__OTR__actors/bowser_flame/bowser_flame_9";
static const ALIGN_ASSET(2) char flame_seg6_texture_06009000[] = "__OTR__actors/bowser_flame/bowser_flame_9";

static const ALIGN_ASSET(2) char flame_seg6_texture_06014000[] = "__OTR__actors/bowser_flame/bowser_flame_10";
static const ALIGN_ASSET(2) char flame_seg6_texture_0600A000[] = "__OTR__actors/bowser_flame/bowser_flame_10";

static const ALIGN_ASSET(2) char flame_seg6_texture_06016000[] = "__OTR__actors/bowser_flame/bowser_flame_11";
static const ALIGN_ASSET(2) char flame_seg6_texture_0600B000[] = "__OTR__actors/bowser_flame/bowser_flame_11";

static const ALIGN_ASSET(2) char flame_seg6_texture_06018000[] = "__OTR__actors/bowser_flame/bowser_flame_12";
static const ALIGN_ASSET(2) char flame_seg6_texture_0600C000[] = "__OTR__actors/bowser_flame/bowser_flame_12";

static const ALIGN_ASSET(2) char flame_seg6_texture_0601A000[] = "__OTR__actors/bowser_flame/bowser_flame_13";
static const ALIGN_ASSET(2) char flame_seg6_texture_0600D000[] = "__OTR__actors/bowser_flame/bowser_flame_13";

static const ALIGN_ASSET(2) char flame_seg6_texture_0600E000[] = "__OTR__actors/bowser_flame/bowser_flame_14";

static const ALIGN_ASSET(2) char flame_seg6_texture_0600F000[] = "__OTR__actors/bowser_flame/bowser_flame_15";

static const ALIGN_ASSET(2) char flame_seg6_texture_06010000[] = "__OTR__actors/bowser_flame/bowser_flame_16";

static const ALIGN_ASSET(2) char flame_seg6_texture_06011000[] = "__OTR__actors/bowser_flame/bowser_flame_17";

static const ALIGN_ASSET(2) char flame_seg6_texture_06012000[] = "__OTR__actors/bowser_flame/bowser_flame_18";

static const ALIGN_ASSET(2) char flame_seg6_texture_06013000[] = "__OTR__actors/bowser_flame/bowser_flame_19";

static const ALIGN_ASSET(2) char flame_seg6_texture_06014000[] = "__OTR__actors/bowser_flame/bowser_flame_20";

static const ALIGN_ASSET(2) char flame_seg6_texture_06015000[] = "__OTR__actors/bowser_flame/bowser_flame_21";

static const ALIGN_ASSET(2) char flame_seg6_texture_06016000[] = "__OTR__actors/bowser_flame/bowser_flame_22";

static const ALIGN_ASSET(2) char flame_seg6_texture_06017000[] = "__OTR__actors/bowser_flame/bowser_flame_23";

static const ALIGN_ASSET(2) char flame_seg6_texture_06018000[] = "__OTR__actors/bowser_flame/bowser_flame_24";

static const ALIGN_ASSET(2) char flame_seg6_texture_06019000[] = "__OTR__actors/bowser_flame/bowser_flame_25";

static const ALIGN_ASSET(2) char flame_seg6_texture_0601A000[] = "__OTR__actors/bowser_flame/bowser_flame_26";

static const ALIGN_ASSET(2) char flame_seg6_texture_0601B000[] = "__OTR__actors/bowser_flame/bowser_flame_27";

static const ALIGN_ASSET(2) char flame_seg6_vertex_0601C000[] = "__OTR__actors/bowser_flame/flame_seg6_vertex_0601C000";

Expand Down
16 changes: 12 additions & 4 deletions include/assets/actors/impact_smoke.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,21 @@
#include "sm64.h"
#include "impact_smoke/geo.h"

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605AA28[] = "__OTR__actors/impact_smoke/impact_smoke_0";
static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605AB78[] = "__OTR__actors/impact_smoke/impact_smoke_0";

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605CA28[] = "__OTR__actors/impact_smoke/impact_smoke_1";
static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605BB78[] = "__OTR__actors/impact_smoke/impact_smoke_1";

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605EA28[] = "__OTR__actors/impact_smoke/impact_smoke_2";
static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605CB78[] = "__OTR__actors/impact_smoke/impact_smoke_2";

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_06060A28[] = "__OTR__actors/impact_smoke/impact_smoke_3";
static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605DB78[] = "__OTR__actors/impact_smoke/impact_smoke_3";

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605EB78[] = "__OTR__actors/impact_smoke/impact_smoke_4";

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_0605FB78[] = "__OTR__actors/impact_smoke/impact_smoke_5";

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_06060B78[] = "__OTR__actors/impact_smoke/impact_smoke_6";

static const ALIGN_ASSET(2) char impact_smoke_seg6_texture_06061B78[] = "__OTR__actors/impact_smoke/impact_smoke_7";

static const ALIGN_ASSET(2) char impact_smoke_seg6_vertex_06062A28[] = "__OTR__actors/impact_smoke/impact_smoke_seg6_vertex_06062A28";

Expand Down
Loading
Loading