Luke Street
b68dfd94f6
More pointer truncation & implicit conversion fixes
2026-02-28 18:47:49 -07:00
Luke Street
22fa7326c3
Implement JHIhtonl/JHIntohl
2026-02-28 18:24:48 -07:00
Luke Street
9853034e31
Add C versions of all ASM blocks (except THP)
2026-02-28 18:10:14 -07:00
Luke Street
e29f1fabdc
Guard operator new/delete behind !TARGET_PC
2026-02-28 17:26:24 -07:00
Luke Street
989c6ac3db
Various minor warning fixes
2026-02-28 17:18:04 -07:00
Luke Street
f233787c0a
Include JUTPalette in J2DAnimation to avoid deleting forward decl
2026-02-28 17:17:01 -07:00
Luke Street
62f42abe12
Fix all -Wconversion-null warnings
2026-02-28 15:59:24 -07:00
Luke Street
475ca80882
Some MULTI_CHAR fixes
2026-02-28 15:43:37 -07:00
Luke Street
ac714d1bf9
Merge decomp/main into dusk
2026-02-28 14:49:57 -07:00
Luke Street
b5d3b8c059
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
1eb018ea26
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
32c32a73ca
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
06ebc176c2
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
Luke Street
f501960314
Some TARGET_PC fixes
2026-02-28 13:16:02 -07:00
Max Roncace
ebe7c7aabc
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
c900a043b8
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
Max Roncace
d017a3cd36
d_a_alink debug improvements ( #3112 )
2026-02-27 11:20:39 -07:00
TakaRikka
f59295c127
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
PJB3005
4213b055ea
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
031aabd9d0
Fix POINTER_ADD macro (64-bit & C++ compile)
2026-02-26 18:44:29 +01:00
Pieter-Jan Briers
a096caa8de
Fix broken J3DTexture assert ( #3111 )
2026-02-25 14:06:37 -08:00
TakaRikka
10e77f77e6
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
58774dc2bf
Fix broken J3DTexture assert
2026-02-25 22:55:02 +01:00
TakaRikka
4c021a97a5
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
PJB3005
454d3e80c6
Make the rest of JSystem compiled in DEBUG
2026-02-25 21:31:13 +01:00
PJB3005
9f2b9f4e33
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
484d8ffa9a
Fix FLT_EPSILON redefinition warning
2026-02-25 21:29:59 +01:00
TakaRikka
7fc1363d8b
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
PJB3005
24ea26187e
Merge branch 'main' into 26-02-25-more-endian-fixes
2026-02-25 20:47:33 +01:00
PJB3005
e7e176bfd4
Windows build fixes
...
Name mangling/linkage shenanigans
Remove jsystem_stubs.cpp, it's not necessary.
2026-02-25 20:43:43 +01:00
PJB3005
284e6c50b6
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
Jeffrey Crowell
9c7f55d1ac
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
6fed5eb37c
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
Pieter-Jan Briers
f54661f878
Fix MORE wrong forward declares (struct/class) ( #3110 )
2026-02-24 14:20:45 -08:00
PJB3005
2ac86ddc4a
Use real line numbers for asserts
...
Redefine the macros to use __LINE__
2026-02-24 23:15:01 +01:00
PJB3005
696cf75ed3
Fix getMaxAllocatableSize & CMemBlock::getBlock on 64-bit
2026-02-24 21:39:45 +01:00
PJB3005
6e0c9f2637
Add BIT_64 define to types.h
...
I'll be using this
2026-02-24 21:39:11 +01:00
PJB3005
78c91adcf6
Fix AR DMAs & async DVD reads on 64-bit
...
We get to the health and safety screen!!
2026-02-24 20:48:16 +01:00
Lurs
26b3ffb303
Fix JSUOutputStream uintptr_t operator conflict on MSVC x86.
...
uintptr_t == u32 == unsigned int on 32-bit MSVC since u32 was changed from unsigned long to unsigned int for TARGET_PC. Guard the uintptr_t overload to x64 only where uintptr_t != u32.
2026-02-24 20:42:46 +01:00
PJB3005
cf5eca0910
Fix JKRArchive on 64-bit
...
They store the data address in the same struct that's directly loaded from archive files. This means it's impossible to expand to 64-bit directly, and instead we need to allocate the data pointers in a separate array.
2026-02-24 19:55:15 +01:00
PJB3005
08ab1e1106
Fix wrong forward declares (struct/class)
...
Requires removing the now-matching symbols from jsystem_stubs.cpp
2026-02-24 16:58:12 +01:00
PJB3005
99e0ca4a46
Use BE(T) for JKRArchive
2026-02-24 16:55:08 +01:00
PJB3005
78be0f28fa
Revert accidental changes to JKRArchive.h
...
(not mine)
2026-02-24 16:51:27 +01:00
PJB3005
2900265ceb
Use BE(T) for JUTPalette
2026-02-24 16:35:45 +01:00
PJB3005
4c98a536af
Use BE(T) for JUTFont
2026-02-24 16:29:13 +01:00
PJB3005
6e385ad102
Add template-based BE(T) endianness conversion helper types
...
Doesn't require modification at the call sites thanks to the implicit conversion operator.
2026-02-24 16:29:00 +01:00
PJB3005
436a500c65
Compile fixes for previous commit
...
oops
2026-02-24 15:29:08 +01:00
PJB3005
4fb2389b43
Fix primitive int types on 64-bit non-Windows targets
...
`long` is variable-sized on non-Windows targets, so don't use it.
Added some static_asserts to confirm this is the case.
2026-02-24 15:23:52 +01:00
PJB3005
defe78c4a2
Fix compile with Dusk's mtx lib
...
Move Mtx33 and similar types to JMath
Rename mtx.h in decomp to _mtx.h so Aurora's header is used instead.
2026-02-24 13:15:21 +01:00
Pieter-Jan Briers
96ffd91c9a
Fix JASGlobalInstance instance definitions ( #3108 )
...
There are a few places where JASGlobalInstance have their sInstance storage implemented via template specialization. The problem is that these have no initializer, which means that they are not proper definitions (only declarations) in standards-compliant C++. MSVC and (evidently) MWCC accept this, but modern Clang and GCC do not and won't emit symbols.
I've added a macro that properly initializes these outside MWCC.
Also, JASGlobalInstance<JAUSectionHeap> was only being declared in each actor file that used it, which sounds incorrect? Not sure about this but I added it to m_Do_main too, again behind MWERKS check.
2026-02-23 11:17:37 -08:00