There was a conflict with per-target compile flags and the PCH.
The PCH was causing the game code to be built without the inlining
flags actually taking effect (internal `src/dusk` files did not use
them), which caused mods to fail to resolve static functions for
hooks. Fix: split Dusklight internals (`src/dusk/`) into a separate
static library altogether, cleanly allowing us to disable inlining
and patching flags only for internal code while also fixing the PCH
flags issue.
Additionally, this updates symgen to v1.3.4, which includes a fix
for GCC function fragments and specializations getting resolved as
display name aliases, conflicting with the actual functions.
Aurora also updated to include https://github.com/encounter/aurora/pull/244
* template setup
* get most colors working
* add lantern, midna, and heart colors
* fix PaneCache naming conflict
* add UI colors
* fix pane cache again
* override colors for items on other models
* recolor heart piece models
* cleanup
* add support for ordon sword recoloring
* recolor epona's eyelids
* move option descriptions
* fix mod.json
* constexpr descriptions
* gx.h instead of dolphin/gx/GXstruct.h
* fix default midna hair color
* use TextureService instead of overwriting model file data on load
* update descriptions
* manual cleanup
* fix includes
* remove unneeded include and const qualifier
* UI: Add Popover, ColorInput & more; mod cleanup
* Make it a bundled mod
---------
Co-authored-by: Luke Street <luke@street.dev>
`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.
To make sure that mods can work across debug and release build, we can utilize PARTIAL_DEBUG to enable only DEBUG changes that affect struct and vtable layout
* Add a *ton* of const and constexpr around the codebase.
This makes the codebase compile without strings being cast to non-const char*. I also went through and added constexpr where appropriate for tons of static data.
* Make process definitions const too
Might as well
* ci: Try arm64 Linux/Windows builds
* Update aurora
* Explicitly set CMAKE_SYSTEM_PROCESSOR on Windows
* Update build-appimage.sh for aarch64
* Set Rust_RUSTUP_INSTALL_MISSING_TARGET=ON
* Use CMAKE_SYSTEM_PROCESSOR normalization for jpeg-turbo build too
* MSVC ARM64 support for freeverb
* Initial Draft
- Add draft crash report window on startup
If you want to disable them before/during startup, there is a command line option to force it
* Fixes
- Update language to be more precise, consistent with settings menu
- Actually shut down reporting properly if you disable it
- Fix my silly syntax errors
* Update text & use Sentry consent
---------
Co-authored-by: Luke Street <luke@street.dev>
* Basic PAL ISO & language support
Probably still needs much more work
* Add language selector to pre-launch
* Store DVDDiskID in a global
Can use this later for things
* More version system API improvements
* d_name mostly region switching fully
JPN doesn't work yet cuz it'll be a nightmare, probably.
* More version switching support
* Mark GCN PAL as supported ROM
* Fix remaining REL assets to have PAL offsets
* d_a_mg_fish PAL
* d_a_mg_fshop PAL
* isRegionUsa helper
* d_menu_fishing PAL
* d_msg_class PAL
* m_Do_MemCardRWmng PAL
* Update CARDInit call & remove DUSK_TP_VERSION
* Fix Ganon cape
Missed this one.
* Remove tp_version from Sentry
---------
Co-authored-by: Luke Street <luke@street.dev>
* Link separate JSystem libraries due to control.cpp
This allows the Xcode generator to work, otherwise
it breaks on the duplicate control.o files within
the game_debug library.
* Fix __memcpy define on GCC
* Try LINK_GROUP:RESCAN for GNU ld
* Combine dusk/game_base/game_debug targets
* Fix compile defs syntax