148 Commits

Author SHA1 Message Date
Luke Street 4702e40cc7 Avoid NaN normals (from Lars) 2026-03-29 12:58:17 -06:00
Luke Street 546a947709 Move _PC formats into GXTexFmt 2026-03-29 12:56:05 -06:00
Luke Street e27970ec8c Full GPU vertex parsing 2026-03-18 23:58:00 -06:00
Pieter-Jan Briers da0e2886f3 asan: fix std::unique_ptr<wgpu::ChainedStruct> base cast (#63)
This is UB because of some C++ insanity. Moving to shared_ptr fixes it.
2026-03-16 10:09:25 -06:00
Pieter-Jan Briers 8cbbba0179 Add function to get ARAM real address (#59)
For audio implementation in TP.
2026-03-15 23:29:57 -06:00
Luke Street 8bba29f882 Fix sampler bindings after palette textures 2026-03-15 23:29:18 -06:00
Luke Street d8c719c6b2 Fix alpha matSrc differing from color matSrc 2026-03-15 23:29:04 -06:00
Luke Street 03b8643a15 Fix TEV overflow handling 2026-03-15 23:28:29 -06:00
Jeffrey Crowell 419643fd66 support Apple libc++ for OSGetTime
Apple libc++ currently ships <chrono> with the C++20 timezone database API
disabled so zoned_time/current_zone are unavailable there.
2026-03-14 20:08:12 -07:00
Max Roncace da18035dfb Fix OSGetTime implementation 2026-03-14 21:32:06 -04:00
Jeffrey Crowell 818b750d71 avoid redundant storage uploads and extra alignment padding (#55)
was hitting this crash:

  (lldb) bt
  * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    * frame #0: 0x00000001927915b0 libsystem_kernel.dylib`__pthread_kill + 8
      frame #1: 0x00000001927cb888 libsystem_pthread.dylib`pthread_kill + 296
      frame #2: 0x00000001926d0850 libsystem_c.dylib`abort + 124
      frame #3: 0x00000001060400f8 libgame.dylib`aurora::ByteBuffer::resize(this=0x0000000106b97358, size=8488606, zeroed=false) at common.hpp:141:9
      frame #4: 0x0000000106047cb8 libgame.dylib`aurora::ByteBuffer::append(this=0x0000000106b97358, data=0x00000004323e0ae0, size=145566) at common.hpp:96:5
      frame #5: 0x0000000106038230 libgame.dylib`aurora::gfx::push(target=0x0000000106b97358, data="b0\xf2", length=145566, alignment=256) at common.cpp:725:12
      frame #6: 0x0000000106038340 libgame.dylib`aurora::gfx::push_storage(data="b0\xf2", length=145566) at common.cpp:750:10
      frame #7: 0x000000010606c144 libgame.dylib`aurora::gx::fifo::handle_draw(cmd=152 '\x98', data="\x98", pos=0x000000016d931eac, size=1184, bigEndian=true)
  at command_processor.cpp:1668:26
      frame #8: 0x0000000106066434 libgame.dylib`aurora::gx::fifo::process(data="\x98", size=1184, bigEndian=true) at command_processor.cpp:628:7
      frame #9: 0x00000001060a00dc libgame.dylib`GXCallDisplayList(data=0x000000043247f980, nbytes=1184) at GXDispList.cpp:67:3
      frame #10: 0x0000000105f7d440 libgame.dylib`J3DShapeDraw::draw(this=0x0000000432839a28) const at J3DShapeDraw.cpp:79:5
      frame #11: 0x0000000105f7e97c libgame.dylib`J3DShape::drawFast(this=0x0000000432839960) const at J3DShape.cpp:337:32
      frame #12: 0x0000000105f793a0 libgame.dylib`J3DShapePacket::drawFast(this=0x00000004329be9e8) at J3DPacket.cpp:401:18
      frame #13: 0x0000000105f79280 libgame.dylib`J3DMatPacket::draw(this=0x00000004329bf448) at J3DPacket.cpp:236:17
      frame #14: 0x0000000105f98b3c libgame.dylib`J3DDrawBuffer::drawHead(this=0x000000042f513808) const at J3DDrawBuffer.cpp:232:21
      frame #15: 0x0000000105f98ce8 libgame.dylib`J3DDrawBuffer::draw(this=0x000000042f513808) const at J3DDrawBuffer.cpp:223:5
      frame #16: 0x000000010530cd50 libgame.dylib`dDlst_list_c::drawXluDrawList(this=0x0000000106bb99d0, pDrawBuf=0x000000042f513808) at d_drawlist.cpp:1835:15
      frame #17: 0x000000010528bc10 libgame.dylib`dDlst_list_c::drawXluListDarkBG(this=0x0000000106bb99d0) at d_drawlist.h:479:32
      frame #18: 0x0000000105289150 libgame.dylib`dComIfGd_drawXluListDarkBG() at d_com_inf_game.h:4729:33
      frame #19: 0x0000000105287dc0 libgame.dylib`mDoGph_Painter() at m_Do_graphic.cpp:1783:13
      frame #20: 0x00000001056325f0 libgame.dylib`cAPIGph_Painter() at c_API_graphic.cpp:10:5
      frame #21: 0x00000001052b6560 libgame.dylib`fpcM_Management(i_preExecuteFn=0x0000000000000000, i_postExecuteFn=(libgame.dylib`fapGm_After() at
  f_ap_game.cpp:718)) at f_pc_manager.cpp:64:13
      frame #22: 0x00000001052a5fa8 libgame.dylib`fapGm_Execute() at f_ap_game.cpp:735:5
      frame #23: 0x0000000105236db0 libgame.dylib`main01() at m_Do_main.cpp:177:9
      frame #24: 0x0000000105237e2c libgame.dylib`game_main(argc=1, argv=0x000000016d9335a0) at m_Do_main.cpp:298:5
      frame #25: 0x00000001024cd518 dusk`main(argc=1, argv=0x000000016d9335a0) at main.cpp:12:12
      frame #26: 0x0000000192401d54 dyld`start + 7184

  (lldb) f 4
  frame #4: 0x0000000106047cb8 libgame.dylib`aurora::ByteBuffer::append(this=0x0000000106b97358, data=0x00000004323e0ae0, size=145566) at common.hpp:96:5
     93  	  [[nodiscard]] bool empty() const noexcept { return m_length == 0; }
     94
     95  	  void append(const void* data, size_t size) {
  -> 96  	    resize(m_length + size, false);
      	    ^
     97  	    memcpy(m_data + m_length, data, size);
     98  	    m_length += size;
     99  	  }

› (lldb) p/x m_capacity
  (size_t) 0x0000000000800000
  (lldb) p m_capacity
  (size_t) 8388608
  (lldb) p/x size
  (size_t) 0x000000000081869e these were the size/capacity

essentially alignment padding was making the capacity overwhelmed.
2026-03-13 19:46:11 -07:00
Jasper St. Pierre 7721ccb27c gx: last stage fix 2026-03-13 01:13:12 -07:00
Jasper St. Pierre cf42406855 flush fifo before end_frame 2026-03-12 23:35:17 -07:00
Phillip Stephens 95803b7e7d CARD: Commit card contents when modified 2026-03-11 23:54:28 -07:00
Luke Street 731bf46b44 Fix pipeline_worker race condition 2026-03-12 00:37:09 -06:00
Luke Street 42f46ae99f Implement indirect texturing (kinda works) 2026-03-12 00:05:19 -06:00
CraftyBoss 18cdf141cb Implement CARD API based on kabufuda (#53)
Original repository: https://github.com/AxioDL/kabufuda
Cleaned up & converted to `aurora::card`, with SDL3 file I/O.

---------

Co-authored-by: Phillip Stephens <antidote.crk@gmail.com>
Co-authored-by: Jack Andersen <jackoalan@gmail.com>
Co-authored-by: Lioncash <mathew1800@gmail.com>
Co-authored-by: Luke Street <luke@street.dev>
2026-03-10 19:49:34 -06:00
Pieter-Jan Briers 14b959e906 Add debug group for Dear Imgui rendering (#51) 2026-03-10 18:45:08 -06:00
Pieter-Jan Briers eb960f8148 Add debug group/marker GX/GD API (#48)
* Add debug group/marker GX/GD API

* This keeps happening

* Don't crash if debug group stack underflows

* Missed a debug check

* Stubs

* Last stub?

* We hate C++

* Oh right release exists
2026-03-10 18:38:35 -06:00
Jasper St. Pierre 5d34a08ef4 gx_tg_mtx3x4 2026-03-10 00:34:09 -07:00
Jasper St. Pierre e4868b34bb copytex fix 2026-03-10 00:13:13 -07:00
qwertyquerty 6372cad562 fix xor xnor (#49) 2026-03-10 00:23:00 -06:00
Luke Street 6918fb0fe9 handle_cp: Set frac for nrm attr 2026-03-10 00:22:11 -06:00
Luke Street 30a144593a prepare_vtx_buffer: GX_VA_TEX*, GX_TEX_ST, GX_U8 2026-03-10 00:21:48 -06:00
Luke Street 2a6b689766 Reduce unimplemented logs to debug 2026-03-09 21:36:35 -06:00