Commit Graph

6764 Commits

Author SHA1 Message Date
PJB3005 4e46c04c91 Add field to JASChannel to keep sample data backing wave replacements alive
How to ensure stuff doesn't get freed when mod reloading gets involved? More shared_ptr
2026-07-26 15:00:53 +02:00
PJB3005 f6e05eb04f Unhardcode sound effects wave bank in replacements 2026-07-26 14:25:28 +02:00
PJB3005 63d4ce2e8f Merge remote-tracking branch 'origin/main' into 26-07-25-audio-replacements
# Conflicts:
#	CMakeLists.txt
2026-07-25 16:08:31 +02:00
PJB3005 de44bbaa26 Example mod for audio_res service 2026-07-25 16:02:42 +02:00
PJB3005 98b203fd26 Mod api audio_res service for replacing audio samples (waves)
More things planned for the future, this is a basic prototype and far from finished. Still needs lots of work
2026-07-25 16:02:20 +02:00
PJB3005 0c0bc7c9e2 Compile out unused fields in DSP TChannel definition 2026-07-25 15:49:49 +02:00
PJB3005 ad80933ccf Allow audio samples to be played back from anywhere in memory rather than ARAM.
This is accomplished through a new mAramBaseAddress field on the DSP channels, which effectively relocates ARAM for that channel.
2026-07-25 15:49:13 +02:00
PJB3005 30c36df76b Add LE(T) macro
I figured since I was messing with some parsing code might as well be prudent. In case somebody revives big-endian CPUs.
2026-07-25 15:40:32 +02:00
PJB3005 6ded3ac467 JAudio naming/docs pass 2026-07-25 15:32:02 +02:00
PJB3005 a6c4419da6 cast.hpp helper
I was tired of manually bounds-checking my integer casts.
2026-07-25 15:26:15 +02:00
PJB3005 226a1fc482 read_unaligned helper
"Things C++ should've had built-in 2 decades ago"
2026-07-25 15:18:37 +02:00
PJB3005 079c969bb4 Some JAudio markdown docs, WSYS filled out. 2026-07-25 15:15:15 +02:00
TakaRikka 95608438c1 Merge pull request #2227 from TwilitRealm/jpn
japanese gamecube version support
2026-07-19 01:20:07 -07:00
TakaRikka 3e343acc86 revert, e_pm jpn logic change TODO later 2026-07-18 22:09:32 -07:00
TakaRikka 9696c12563 couple more fixes, revert e_pm for now 2026-07-18 21:17:29 -07:00
TakaRikka d3e05a4f37 pr comments again 2026-07-18 19:39:24 -07:00
TakaRikka 27c9719abc pr comments 2026-07-18 18:07:49 -07:00
Luke Street 8caab1a6ba Implement iOS hook prepatching & improve MSVC PTMF support (#2222) 2026-07-17 22:35:37 -06:00
TakaRikka e3075520e7 convert jpn logic changes to runtime checks 2026-07-17 20:35:15 -07:00
TakaRikka ce386d8dbd convert jpn ui/text changes to runtime checks 2026-07-17 18:12:28 -07:00
TakaRikka 1654d256ec mant/flower jp offsets 2026-07-16 20:06:37 -07:00
TakaRikka 241927b489 fix jp name screen 2026-07-16 19:53:47 -07:00
TakaRikka 8051679c96 fix jp font rendering
Co-Authored-By: pengin <2162454+pengin@users.noreply.github.com>
2026-07-16 17:23:51 -07:00
TakaRikka 6058a0c597 Merge branch 'main' of ssh://github.com/TwilitRealm/dusklight into jpn 2026-07-16 15:09:23 -07:00
Luke Street 1bae8a5e6a DuskDsp: Fix streamed audio position tracking 2026-07-16 00:10:07 -06:00
Luke Street ec51ba298b Update docs/modding.md 2026-07-15 13:07:22 -06:00
Luke Street 76b56cd8b8 Forgot to stage this 2026-07-15 12:46:57 -06:00
Luke Street e9ebb174f1 Mod SDK: Fix Windows ARM detection; ignore dotfiles in dir copies 2026-07-15 12:44:27 -06:00
Luke Street 12261dbc49 Update aurora 2026-07-15 12:04:41 -06:00
Luke Street 5db55c508b Mod API: Rename dusk::mods -> mods 2026-07-15 12:04:26 -06:00
Luke Street 5ea7f7ca9a Mod SDK: Auto-download link stub for self-contained mods 2026-07-15 12:04:00 -06:00
Luke Street 0f2a00cd1f Mods: Embed symdb in linked executable (#2216)
* Mods: Embed symdb in linked executable

* Update to symgen v1.2.3
2026-07-15 00:26:34 -06:00
Luke Street adfb830b4d hook: Fix thunk re-resolution on Windows 2026-07-15 00:08:19 -06:00
Luke Street a2fd82d18b Android: Copy libc++_shared.so in stage-jni-libs.sh 2026-07-14 22:52:13 -06:00
Luke Street 30def245f0 Mods: Reject old layout mods & improve errors 2026-07-14 20:32:01 -06:00
Luke Street a6f059827b Game ABI / headers refactoring (#2215)
* Game ABI / headers refactoring

* Delete dusk/imgui.h
2026-07-14 19:24:08 -06:00
Luke Street 49a3c9e2ac Merge pull request #2211 from encounter/modmeta
Mod API: Refactor mods to have static metadata for parsing
2026-07-14 17:48:42 -06:00
Luke Street eed14acdc6 Annotate all data with DUSK_GAME_DATA (#2214)
The hope of auto-importing data via lld MinGW
+ pseudo_reloc is now dead thanks to ARM64,
so I just wrote a script to go annotate every
exported data symbol in the game instead.
2026-07-14 13:49:21 -06:00
Luke Street a95bc76237 Mods: Remove -lldmingw + pseudo_reloc
It turns out this approach can't work on
ARM64 Windows due to the relocation model,
so we can simplify and just remove it
entirely.

Separately, I will make a commit tagging
all game data as DUSK_GAME_DATA, so things
work uniformly across cl/clang-cl and x64/
arm64.
2026-07-14 11:10:49 -06:00
Luke Street f000ccce0b Mod API: Resolve thunks recursively (Windows ARM64 fix) 2026-07-14 11:10:49 -06:00
Luke Street 8471fa0107 Android: Bundle in-tree mods into the APK 2026-07-14 11:10:49 -06:00
Luke Street d5fcd79306 CI: Install & package the symbol manifest on Windows/Linux 2026-07-14 11:10:49 -06:00
Luke Street 26d22d414a Mods: Enable Windows ARM64 mod linking 2026-07-14 11:00:04 -06:00
Luke Street f14278cec8 CMake: Remove release preset
No longer supporting LTO with modding.
2026-07-14 11:00:04 -06:00
SuperDude88 f5d30a886d FPS Counter Fix (#2207)
* FPS Counter Fix

I broke it in #2198 oops

* Run clang-format
2026-07-13 23:07:02 -06:00
Luke Street dfc3077333 CI: Add sdk/ link stubs in build artifacts 2026-07-13 20:57:11 -06:00
Luke Street 1bd8682855 Mods: Curate exports and generate link stubs
`symgen exports` replaces -export_dynamic on Apple and curates
Android's dynamic symbols with a version script. `symgen stub` then
emits sdk/stub-{macos,ios,tvos}-<arch>, sdk/stub-android-<arch>.so,
and sdk/windows-<arch>.lib.
2026-07-13 20:57:11 -06:00
Luke Street d2cdbf0a83 Mods: Rework mod linking
Apple: mods are now MH_BUNDLE (.so) linked with -bundle_loader,
replacing the deprecated (on iOS) -undefined dynamic_lookup.

Windows: clang-cl mods link dusklight.exe directly; lld's mingw driver
synthesizes imports from the export table. cl still requires the
import library.
2026-07-13 20:42:57 -06:00
Luke Street 700bbf0a5a Mod API: Move dylibs to libs/{platform}; services import latest minor versions 2026-07-13 20:42:35 -06:00
Luke Street cdb36e9c42 Mod API: __attribute__((used)) on clang-cl 2026-07-13 20:42:35 -06:00