Commit Graph

1825 Commits

Author SHA1 Message Date
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
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
Max Roncace bf4d19d8db d_a_alink debug improvements (#3112) 2026-02-27 11:20:39 -07: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
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 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
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 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
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
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
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 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
Pieter-Jan Briers af7ab981e6 Fix MORE wrong forward declares (struct/class) (#3110) 2026-02-24 14:20:45 -08:00
PJB3005 807ea3e006 Use real line numbers for asserts
Redefine the macros to use __LINE__
2026-02-24 23:15:01 +01:00
PJB3005 d9e39c8786 Fix getMaxAllocatableSize & CMemBlock::getBlock on 64-bit 2026-02-24 21:39:45 +01:00
PJB3005 a4f66b9892 Add BIT_64 define to types.h
I'll be using this
2026-02-24 21:39:11 +01:00
PJB3005 77581bace4 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 3cfef81753 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 e2dacba262 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 fcf1f4bed1 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 79e9fa257f Use BE(T) for JKRArchive 2026-02-24 16:55:08 +01:00
PJB3005 a36f3aaef9 Revert accidental changes to JKRArchive.h
(not mine)
2026-02-24 16:51:27 +01:00
PJB3005 f3ca75b3b7 Use BE(T) for JUTPalette 2026-02-24 16:35:45 +01:00
PJB3005 9e02e3cfce Use BE(T) for JUTFont 2026-02-24 16:29:13 +01:00
PJB3005 36895ee3b6 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 750f9a044d Compile fixes for previous commit
oops
2026-02-24 15:29:08 +01:00
PJB3005 e9b3df4d61 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 449900d2bf 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 929939c4a2 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
Pieter-Jan Briers a2dcb7251b Fix incorrect forward declare keywords (#3107)
Mixups of class/struct keyword in forward declares. Doesn't seem to matter on MWCC, but causes name mangling mismatching on modern platforms.
2026-02-23 11:13:00 -08:00
Lurs f710f30702 Added a bunch of Diag functions to diagnose the black screen issue (was a bug in GXGeometry.h). Resumed to old ClearEfb function, no pink screen anymore.
Updated aurora with local changes for TP
2026-02-23 14:33:29 +01:00
Lurs 8599684fae First pink screen! 2026-02-21 22:15:39 +01:00
Luzagar 765878893f Warpappear doc (#3104)
* warpappear documentation

* dist documentation

* more doc

* add enum name + square macro
2026-02-20 19:06:42 -08:00
Lurs 97e7a8b145 first try to draw first logo 2026-02-20 21:13:50 +01:00
Jcw87 b6abc56f94 d_resorce debug (#3105) 2026-02-20 03:05:23 -08:00
Max Roncace d939dcd474 Implement Z2AudioCS (#3103) 2026-02-20 02:53:27 -08:00
roeming 07ef4b6d26 Big cast cleanup (#3076)
* Big cast cleanup

* fix for name conflict

* rename header

* rename cast macros

* fix rename mistake

---------

Co-authored-by: roeming <roeming@users.noreply.github.com>
2026-02-20 02:48:29 -08:00
Lurs a4d72437ef OS threading, DVD I/O, Endianness fixes, ARAM emulation, GX vertex fix
Major changes:

- Implement Big-Endian to Little-Endian byte-swapping for all RARC archive
  types (JKRCompArchive, JKRMemArchive, JKRDvdArchive, JKRAramArchive)
- Implement DVD file I/O via DvdEmu (DVDOpen, DVDFastOpen, DVDReadPrio,
  DVDReadAsyncPrio, DVDConvertPathToEntrynum)
- Fix YAZ0 decompression endianness in JKRDvdRipper, JKRDecomp, JKRAram,
  and JKRDvdAramRipper (use JKRDecompExpandSize instead of direct header read)
- Emulate ARAM with 16MB malloc buffer and synchronous memcpy in ARQPostRequest
  instead of hardware DMA transfers that hang on PC
- Add real OS threading implementation (OSContext, OSThread, OSMutex) using
  native Windows threads with side-table pattern for GC struct compatibility
- Fix font endianness for JUTResFont and JUTCacheFont
- Redirect GXVert.h to Aurora's PC implementation to prevent FIFO writes to
  the GameCube hardware address 0xCC008000
- Add Z-buffer texture format support (GX_TF_Z24X8, GX_TF_Z16, GX_TF_Z8)
  in Aurora's texture converter
2026-02-19 10:35:42 +01:00
Max Roncace ba2700248e d_cursor_mng mostly matching (#3101) 2026-02-17 22:58:52 -08:00
Lurs c86a2208d2 first start with aurora after linking on MSVC 2026-02-17 22:28:42 +01:00
Lurs 89ed35ad76 Merge origin/wip/linkfix2 into msvc-linkfix-dev (local dev branch) 2026-02-15 20:36:46 +01:00