Commit Graph

647 Commits

Author SHA1 Message Date
Luke Street ba07fdb505 JSUOutputStream: Overload all standard int types 2026-02-28 21:16:58 -07:00
Luke Street 9723dc7620 Try a different way 2026-02-28 21:06:22 -07:00
Luke Street d25b68faa5 Fix uintptr_t/u32 overloads 2026-02-28 20:51:16 -07:00
Luke Street 3058d869c3 Some u32/s32 -> uintptr_t/intptr_t 2026-02-28 20:34:06 -07:00
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 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
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
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
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 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 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 436a500c65 Compile fixes for previous commit
oops
2026-02-24 15:29:08 +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
Pieter-Jan Briers 59fd9f387a 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 22a86deb76 First pink screen! 2026-02-21 22:15:39 +01:00
Lurs a41c3d59b4 first try to draw first logo 2026-02-20 21:13:50 +01:00
Jcw87 2113d9044b d_resorce debug (#3105) 2026-02-20 03:05:23 -08:00
Max Roncace 803bc041c7 Implement Z2AudioCS (#3103) 2026-02-20 02:53:27 -08:00
Lurs 8020eb64ba 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
Jcw87 0b1cb89d69 d_demo debug (#3098) 2026-02-13 15:08:10 -08:00
Jcw87 68f3531c2d d_bg_parts debug (#3097) 2026-02-13 15:06:14 -08:00
Lurs d069062c5c Fix MSVC compiler and linker errors
- Fix struct/class forward declaration mismatches (JAIAudience, JASTrack) causing different MSVC mangled names and unresolved symbols
- Add jsystem_stubs.cpp with stubs for JASHeap, JASVoiceBank, J3DShapeTable, JAUSection, JHICommBuf, HIO/HIO2, JOR
2026-02-13 23:28:47 +01:00