Commit Graph

6762 Commits

Author SHA1 Message Date
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
Luke Street cca104584e Mod API: Aggregate-initialize import/export records
Starting with VS 18 / cl 14.51, MSVC's constant evaluator
rejects a pointer-to-member in a constant initializer that also
contains any computed data, a consteval call or even a copy of a
constexpr object (C2127).

Hook records are now aggregate-initialized from literals only: the
computed name bytes (vtable symbol + display name) are baked into
char... template arguments and sizes/kinds are spelled inline.
2026-07-13 20:42:35 -06:00
Luke Street 9687a9d95a Mod API: Static import/export/hook metadata & resolution 2026-07-13 00:53:37 -06:00