Commit Graph

1559 Commits

Author SHA1 Message Date
PJB3005 720d59cdff Merge branch 'main' into 26-02-25-more-endian-fixes 2026-02-25 20:47:33 +01: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
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 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
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
PJB3005 5d496baee4 Make JUT showAssert_f_va just log and exit
Normally it tries to draw the error on screen, but the wait on vblank just infinite loops for us.
2026-02-24 23:01:29 +01:00
PJB3005 68fabb248a Make OSPanic abort properly, don't unwind stack
Existing abort code is a bad idea on a modern compiler. Just call abort()
2026-02-24 23:00:23 +01:00
PJB3005 d9e39c8786 Fix getMaxAllocatableSize & CMemBlock::getBlock on 64-bit 2026-02-24 21:39:45 +01:00
PJB3005 513b86f8ed Translate memory allocation failure error 2026-02-24 21:04:48 +01:00
PJB3005 e4104cadad Make OSReport_Error less hideous to look at 2026-02-24 21:03:05 +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 2b78bb3375 Changed loading for already static loaded .rel files. Added gamepad init 2026-02-24 20:42:45 +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 6d47b43766 Fix JKRExpHeap on 64 bit 2026-02-24 18:16:45 +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 29375d2b79 I apparently missed JUTCacheFont 2026-02-24 16:36:16 +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 1b6a118eae Replace some hardcoded 4 -> alignof(max_align_t)
Hope this fixes the allocator issues
2026-02-24 16:04:53 +01:00
PJB3005 d05478cfaa Fix JKRSolidHeap on 64-bit 2026-02-24 15:49:28 +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 e5cfe0e6b4 Use calloc instead of malloc followed by memset
Avoids forcing pages to be allocated until actually needed.
2026-02-24 15:17:47 +01:00
PJB3005 818b190bb5 Make heap init work on 64-bit
Larger pointer sizes means the normal heap limits don't work.

Expand them even when on 32-bit because we're already allocating 256 MB
of MEM1 anyways
2026-02-24 15:14:57 +01:00
PJB3005 bc8d5a2dce Make console UTF-8 & VT sequences work reliably on Windows 2026-02-24 14:54:53 +01:00
PJB3005 04fdee9d5a Fix mDoPrintf_vprintf_Interrupt on 64-bit
This is an ABI hazard so I'm just gonna call vprintf directly.
2026-02-24 14:08:15 +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
PJB3005 00b193b121 Remove some GX stubs now implemented by Aurora 2026-02-24 13:13:46 +01: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 43ea7786b9 stubbed unresolved symbols again after updating aurora 2026-02-22 07:31:22 +01:00
Lurs d66e35eefc tests with edited aurora 2026-02-22 07:06:54 +01:00
Lurs 8599684fae First pink screen! 2026-02-21 22:15:39 +01:00
Lurs 97e7a8b145 first try to draw first logo 2026-02-20 21:13:50 +01: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
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
Jeffrey Crowell 833db377af call game_main 2026-02-14 16:04:12 -08:00
Jeffrey Crowell 147b4bdb97 now it links (except for no main!) 2026-02-14 15:55:43 -08:00
Jeffrey Crowell 5d359236e1 change ifdef instead of copying function blocks 2026-02-14 00:03:10 -08:00
Lurs 3b742025db 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
Lurs 292724920c Merge branch 'wip/linkfix2' into wip/linkfix 2026-02-11 07:20:44 +01:00
Jeffrey Crowell 5d6aa01e6e Fix linker errors.
Stubbing out all OS* functions to stubs.cpp, these will likely have to
be replaced with the operating system's primitives for
locking/heaps/threads/etc.

Moved some generic globals into globals.cpp, not sure where they're
actually to be used.

Stub DSP functions

Stub JSUMemoryOutputStream, JORServer, Z2Audio

mDoExt stubs

add memcpy

add some more stubs, add extras c++ mangled functions

add extras.cpp

AR/AQ stubbing

stub DVD

stub CARD

more stubs, more extras

add missing mtx functions to dusk file

finish mtx

stub GX

KPAD and LC, also do pragma marks for better visualization

finish mtx, add a few more stubs

gf/wpad/vi

translate some matrix math from ppc to C

jorserver/debugpad/fap/dmsgobject

add m_Do_ext functions from debug block to separate file

make small janges to JSystem, does this need upstreaming

reorg DVD stubs

reorganize stubs by mark
2026-02-07 15:25:09 -08:00
roeming 81d679d207 Fix errors for msvc
Use less strict compiler flags instead of modifying source code

Add ugly defines so MSVC stops complaining about zero length arrays
2026-02-01 15:37:26 -08:00
Jeffrey Crowell ef14b2b932 Fix linker errors.
Stubbing out all OS* functions to stubs.cpp, these will likely have to
be replaced with the operating system's primitives for
locking/heaps/threads/etc.

Moved some generic globals into globals.cpp, not sure where they're
actually to be used.

Stub DSP functions

Stub JSUMemoryOutputStream, JORServer, Z2Audio

mDoExt stubs

add memcpy

add some more stubs, add extras c++ mangled functions

add extras.cpp

AR/AQ stubbing

stub DVD

stub CARD

more stubs, more extras

add missing mtx functions to dusk file

finish mtx

stub GX

KPAD and LC, also do pragma marks for better visualization

finish mtx, add a few more stubs

gf/wpad/vi

translate some matrix math from ppc to C

jorserver/debugpad/fap/dmsgobject

add m_Do_ext functions from debug block to separate file

make small janges to JSystem, does this need upstreaming

reorg DVD stubs

reorganize stubs by mark
2026-02-01 15:36:56 -08:00
kipcode66 1764f04eb5 Adding JHostID files and stubs 2026-01-30 23:54:55 -05:00
kipcode66 20c83ce77a fix c++ name mangling 2026-01-27 16:17:59 -05:00