Commit Graph

2466 Commits

Author SHA1 Message Date
Luke Street 0631cfe894 Fix all -Wconversion-null warnings 2026-02-28 15:59:24 -07:00
Luke Street c786f40a23 Some MULTI_CHAR fixes 2026-02-28 15:43:37 -07:00
Luke Street 3385468314 Merge decomp/main into dusk 2026-02-28 14:49:57 -07:00
TakaRikka 13dd364404 Merge pull request #30 from TakaRikka/merge
Merge upstream decomp changes & more fixes
2026-02-28 13:35:54 -08:00
Luke Street 38b7156a8e Another round of GCC fixes (#3115)
* Fix remaining <string> -> <cstring> for GCC compilation (#3114 follow-up)

MWerks' <string> header transitively includes C string functions
(memcpy, strlen, strcmp, etc.), but GCC/Clang's <string> is the C++
std::string header. These files all use C string functions and should
include <cstring> instead.

* Use std::isnan instead of isnan for GCC compilation

GCC's <cmath> places isnan in the std namespace. Using the unqualified
isnan fails to compile with GCC/Clang.

* Fix cCcD_Src types: s32 -> u32 for bitmask fields

cCcD_SrcObjCommonBase::mSPrm, cCcD_SrcObjTg::mType, and
cCcD_SrcObjAt::mType are used as bitmasks (SetType/SetSPrm take u32,
MskType/MskSPrm use u32, values like 0xFFFFFFFF are common in
aggregate inits). Change from s32 to u32 to match usage.

Also fix AT_TYPE_WOLF_ATTACK/AT_TYPE_UNK to use unsigned literals,
and remove now-unnecessary (s32) casts on hex literals in collision
source data.

* Mark dummy() functions as static to avoid multiple definition errors

These decomp artifact functions have the same name and signature across
TUs, causing linker errors when building as a single binary.
2026-02-28 13:35:07 -08:00
Luke Street b7961b7739 Fix compilation errors after decomp/main merge
- Fix <string> -> <cstring> across all source files (upstream fix)
- Add <cstring> to JASGadget.h, <cstdarg> to JUTDbPrint.cpp
- Fix <string> -> <cstring> in JUTFont.h, d_save.h, f_ap_game.h
- Fix std::isnan usage in c_cc_d.cpp
- Fix cCcD_Src types: s32 -> u32 for bitmask fields (upstream fix)
- Fix AT_TYPE_WOLF_ATTACK/AT_TYPE_UNK unsigned literals (upstream fix)
- Remove (s32) casts on hex literals in collision data (upstream fix)
- Fix 0xFFFFFFFF literal in d_a_obj_wood_statue.cpp (upstream fix)
- Add braces to case 0 in d_a_e_gb.cpp to fix jump-over-init
- Fix Z2AudioCS.h include path (Z2AudioLib -> Z2AudioCS)
- Forward-declare Z2AudioCS in stubs.cpp to avoid revolution conflicts
- Guard JASGlobalInstance specializations with __MWERKS__ in m_Do_main
- Remove duplicate inline functions from d_com_inf_game.h
- Mark dummy() functions as static (upstream fix)
- Add JAUSectionHeap.h include to m_Do_main.cpp
2026-02-28 14:29:46 -07:00
Luke Street 3b8300d0d2 Merge decomp/main into dusk
Merges 44 upstream commits from zeldaret/tp decomp/main.

Conflict resolutions:
- .github/workflows/build.yml: keep deleted (not needed for PC port)
- README.md: keep PC port README
- J3DAnimation.h: keep OFFSET_PTR macro + add upstream forward decl
- J3DModelLoader.h: keep BE(u32) mBlockNum + add field_0x1c
- d_com_inf_game.h: keep PC port inlines + add upstream declarations
- global.h: keep MULTI_CHAR macro + add FABSF macro
- JUTConsole.cpp: keep uintptr_t cast for 64-bit
- JUTDbPrint.cpp: keep PC enter_() helper + add cstring include
- JUTResFont.cpp: take upstream loop/struct improvements with BE types
- JUTCacheFont.cpp: take upstream decomp fix
- float.h: use upstream !PLATFORM_GCN guard
- d_a_npc_bouS/theB.cpp: keep MULTI_CHAR() for PC portability
- d_a_npc_henna.cpp: keep uintptr_t + use upstream var name
- d_demo.cpp: keep near_/far_ field renames for PC
- d_resorce.cpp: keep uintptr_t + fix var name to res
- d_s_room.cpp, m_Do_graphic.cpp: keep dusk includes + add cstring
- m_Do_main.cpp: keep JHIComPortManager + use JAS_GLOBAL_INSTANCE_INIT
- angle_utils.h: remove redundant types.h include
2026-02-28 13:33:16 -07:00
Luzagar ff82ba7a4f E rd documentation (#3106)
* some e_rd doc

* fix build

* more doc

* more doc

* fix debug

* fix debug for real

* change some name

* some rename

* rename
2026-02-28 12:25:31 -08:00
TakaRikka 700d0daaac Merge pull request #29 from TakaRikka/gcc-fixes
Some GCC fixes
2026-02-28 12:20:23 -08:00
Luke Street f38dcf3aef Use tls_model("global-dynamic") for JKRHeap on GCC 2026-02-28 13:16:42 -07:00
Luke Street 6340087698 Simplify CMake config for Linux 2026-02-28 13:16:20 -07:00
Luke Street 5395eb1b53 Some TARGET_PC fixes 2026-02-28 13:16:02 -07:00
Max Roncace a290c2d52c ShieldD: Clean up a bunch of 99% matching TUs (#3113)
* d_a_npc_ks debug code 100%

* d_a_npc_rafrel debug code 100%

* d_a_npc_inko minor improvements

* d_a_npc_gro debug code 100%

* d_a_npc_pachi_taro debug code 100%

* d_a_npc_passer debug code 100%

* d_a_npc_pachi_maro debug code 100%

* d_a_npc_post debug code 100%

* d_a_obj_bemos debug improvements

* d_a_obj_scannon_ten debug code 100%

* d_a_b_mgn debug code 100%

* d_a_e_fb debug code 100%

* d_a_e_gb debug code 100%

* d_a_e_hz debug code 100%

* d_a_e_cr_egg debug code 100%

* d_a_e_md debug code 100%

* d_a_e_wb debug code 100%

* d_a_obj_mirror_6pole debug code 100%

* d_a_obj_spinLift debug data fixes

* d_a_obj_pdwall debug data fixes

* d_a_obj_ss_drink debug code almost matching

* d_a_obj_poFire debug code 100%

* d_a_obj_picture debug code 100%

* d_a_obj_dust debug code 100%

* d_a_obj_fallobj debug code 100%

* d_a_obj_itamato debug code almost matching

* d_a_obj_syRock debug code 100%

* d_a_obj_katatsumuri debug code 100%

* d_a_obj_wood_statue debug code 100%

* d_a_obj_lv6egate debug code 100%

* d_a_tag_qs minor debug symbol fixes

* d_a_obj_twGate debug code 100%

* d_a_obj_lv6SwGate debug code 100%

* d_a_obj_lv6swturn debug code 100%

* d_a_obj_lv6Tenbin debug code 100%

* d_a_obj_kwheel01 debug code 100%

* Fix RTTI order regression (cM3dGCyl vs cBgS_*)
2026-02-28 12:13:57 -08:00
Luke Street 29c96f5c65 Some GCC compilation fixes (#3114)
* Fix 6-byte multichar literals

* Add `struct` to `e_ga_class::ga_s`

* Fix remaining wrong forward declares (struct/class)

* Replace `#include <string>` with `#include <cstring>`

* Guard FLT_EPSILON define to prevent redefinition

* Add missing `#include <cstring>` for direct cstring function usage
2026-02-28 12:11:00 -08:00
TakaRikka 95702e2023 Merge pull request #27 from TakaRikka/ptrfix2
fix more compile errors with clang
2026-02-27 17:21:48 -08:00
Jeffrey Crowell d2fe6ac2c9 address comments 2026-02-27 16:56:35 -08:00
Max Roncace bf4d19d8db d_a_alink debug improvements (#3112) 2026-02-27 11:20:39 -07:00
Jeffrey Crowell 91c940bc1e fix more compile errors with clang 2026-02-26 23:03:55 -08:00
TakaRikka 2204ad0813 Merge pull request #26 from TakaRikka/26-02-27-be-gx
Make GXVtxDescList and GXVtxAttrFmtList not be behind BE
2026-02-26 16:10:41 -08:00
TakaRikka 61c302ea68 Merge pull request #24 from TakaRikka/26-02-26-pointer-add
Fix POINTER_ADD macro (64-bit & C++ compile)
2026-02-26 16:08:11 -08:00
PJB3005 317fb95c27 Make GXVtxDescList and GXVtxAttrFmtList not be behind BE
Fixes a stub call because we couldn't pass the BE form to the API
2026-02-27 01:04:44 +01:00
PJB3005 c582d01cf7 Fix POINTER_ADD macro (64-bit & C++ compile) 2026-02-26 18:44:29 +01:00
Pieter-Jan Briers 35890e5880 Fix broken J3DTexture assert (#3111) 2026-02-25 14:06:37 -08:00
TakaRikka 6bdba0ecdd Merge pull request #23 from TakaRikka/26-02-25-fix-j3dtexture-assert
Fix broken J3DTexture assert
2026-02-25 13:56:07 -08:00
PJB3005 96502d8570 Fix broken J3DTexture assert 2026-02-25 22:55:02 +01:00
TakaRikka b7649f367e Merge pull request #22 from TakaRikka/26-02-25-fix-fader
Re-enable fader logic
2026-02-25 13:53:22 -08:00
PJB3005 10d3e63ee2 Re-enable fader logic
Was disabled during port development, needed to load the game
2026-02-25 22:47:31 +01:00
TakaRikka bb6eca1c1a Merge pull request #21 from TakaRikka/26-02-25-jsystem-debug
Make the rest of JSystem compiled in DEBUG
2026-02-25 12:54:28 -08:00
TakaRikka 6650a8524c Merge pull request #20 from TakaRikka/26-02-25-warning-fixes
Warning fixes
2026-02-25 12:53:30 -08:00
PJB3005 cf5ce234b6 Make the rest of JSystem compiled in DEBUG 2026-02-25 21:31:13 +01:00
PJB3005 b34ba7b4f0 Mark OSPanic and OSFatal as [[noreturn]]
Enables them to avoid "method isn't returning a value" errors
2026-02-25 21:31:13 +01:00
PJB3005 18086e5bfb Suppress some warnings we don't care about 2026-02-25 21:29:59 +01:00
PJB3005 bd4371870c Fix FLT_EPSILON redefinition warning 2026-02-25 21:29:59 +01:00
TakaRikka 39981e4a65 Merge pull request #16 from TakaRikka/26-02-25-more-endian-fixes
Asset loading endian fixes (mostly)
2026-02-25 11:58:37 -08:00
TakaRikka 2d23ef4b12 Merge pull request #18 from TakaRikka/26-02-25-windows-build-fix
Windows build fixes
2026-02-25 11:48:09 -08:00
PJB3005 720d59cdff Merge branch 'main' into 26-02-25-more-endian-fixes 2026-02-25 20:47:33 +01:00
PJB3005 3e0023961f Windows build fixes
Name mangling/linkage shenanigans

Remove jsystem_stubs.cpp, it's not necessary.
2026-02-25 20:43:43 +01:00
Jeffrey Crowell ae7dd96002 Merge pull request #17 from TakaRikka/ptrfix
fix two more ptr narrowing casts
2026-02-25 11:23:37 -08:00
Jeffrey Crowell de9576c32b fix two more ptr narrowing casts 2026-02-25 11:21:28 -08:00
PJB3005 e7861f1ee3 Fix endianness & 64-bit in 3D asset loading code
Combination of plumbing BE(T) through everything, making BE<T> have template specializations, and inverting at load time where more practical.
2026-02-25 20:20:45 +01:00
TakaRikka 05921d1fc9 Merge pull request #15 from TakaRikka/wip/mac
fix build on clang/mac
2026-02-25 11:12:17 -08:00
Jeffrey Crowell 9af9240253 builds on mac again
revert some useless ifdefs

rm TARGET_PC in the wrong place

remove stubbed version of functions
2026-02-25 11:09:19 -08:00
PJB3005 31149794f1 Implement GDInitGDLObj a little bit
Enough to avoid a crash during asset loading.
2026-02-25 19:52:31 +01:00
TakaRikka e21af7551a Merge pull request #14 from TakaRikka/26-02-25-jsystem-debug-asserts
Compile majority of JSystem (& SSystem) with debug asserts enabled
2026-02-24 17:12:33 -08:00
PJB3005 d3b8300644 Fix build
Yeah CMake didn't feel like triggering rebuild last time...
2026-02-25 00:32:38 +01:00
PJB3005 755bf3316e Compile majority of JSystem (& SSystem) with debug asserts enabled
I went through and enabled JSystem parts that seemed to not cause linker errors when compiled in DEBUG
2026-02-25 00:16:47 +01:00
TakaRikka ae147e97f7 Merge pull request #13 from TakaRikka/26-02-24-thread-local-current-heap
Make JKRHeap::sCurrentHeap thread local
2026-02-24 14:53:44 -08:00
PJB3005 f2dacf2a75 Make JKRHeap::sCurrentHeap thread local
Needed because we're using true OS threading, so we can't do the normal JSystem heap changing on thread change.

Requires encapsulating it (removing the public static field)
2026-02-24 23:35:16 +01:00
TakaRikka 73a11d6157 Merge pull request #12 from TakaRikka/26-02-24-dvd-thread-assert-heap
Disable assert heap on DVD thread
2026-02-24 14:34:08 -08:00
PJB3005 02a6746c68 Disable assert heap on DVD thread
Nintendo does this probably as a debugging aid. Problem is we allocate from our DVD driver implementation, so everything explodes.
2026-02-24 23:32:45 +01:00