From 36dc43c6024c3719e86eabe6137cc875628d402f Mon Sep 17 00:00:00 2001 From: MelonSpeedruns Date: Wed, 29 Apr 2026 20:13:07 -0400 Subject: [PATCH 1/3] Fix changing tunics crash while on top of mirror (#596) * Fix changing tunics while reflection is active * Revert "Fix changing tunics while reflection is active" This reverts commit 89927dc7a638342f2a9a79511e2445789fb62006. * Really fix changing tunics while reflection is active * Fix transforming on ice again --------- Co-authored-by: MelonSpeedruns Co-authored-by: Irastris --- include/d/actor/d_a_mirror.h | 1 + src/d/actor/d_a_mirror.cpp | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/include/d/actor/d_a_mirror.h b/include/d/actor/d_a_mirror.h index 06c5603899..e2f9a51e30 100644 --- a/include/d/actor/d_a_mirror.h +++ b/include/d/actor/d_a_mirror.h @@ -27,6 +27,7 @@ public: /* 0x17C */ cXyz mViewScale; #if TARGET_PC bool mbReset = false; + bool mbHadEntry = false; #endif }; diff --git a/src/d/actor/d_a_mirror.cpp b/src/d/actor/d_a_mirror.cpp index 86ef4314f3..5c5218328e 100644 --- a/src/d/actor/d_a_mirror.cpp +++ b/src/d/actor/d_a_mirror.cpp @@ -40,6 +40,7 @@ dMirror_packet_c::dMirror_packet_c() { void dMirror_packet_c::reset() { #if TARGET_PC mbReset = true; + mbHadEntry = false; #else mModelCount = 0; #endif @@ -84,11 +85,21 @@ void dMirror_packet_c::calcMinMax() { } int dMirror_packet_c::entryModel(J3DModel* i_model) { +#if TARGET_PC + if (mbReset) { + mModelCount = 0; + mbReset = false; + } +#endif + if (mModelCount >= 0x40) { return 0; } mModels[mModelCount++] = i_model; +#if TARGET_PC + mbHadEntry = true; +#endif return 1; } @@ -592,13 +603,6 @@ int daMirror_c::execute() { return 1; } -#if TARGET_PC - if (mPacket.mbReset) { - mPacket.mModelCount = 0; - mPacket.mbReset = false; - } -#endif - daPy_py_c* player = daPy_getLinkPlayerActorClass(); JUT_ASSERT(0, player != NULL); @@ -624,6 +628,12 @@ int daMirror_c::draw() { mDoExt_modelUpdateDL(mpModel); } +#if TARGET_PC + if (mPacket.mbReset && !mPacket.mbHadEntry) { + mPacket.mModelCount = 0; + } + mPacket.mbHadEntry = true; +#endif dComIfGd_getOpaListBG()->entryImm(&mPacket, 0); return 1; } From fbf63b075ad5e2c484c4f7e3f2308a5ff7eaa886 Mon Sep 17 00:00:00 2001 From: doop <56421834+dooplecks@users.noreply.github.com> Date: Thu, 30 Apr 2026 04:28:47 +0000 Subject: [PATCH 2/3] Correct JPADrawInfo proj matrix on widescreen Fixes #337. --- src/m_Do/m_Do_graphic.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/m_Do/m_Do_graphic.cpp b/src/m_Do/m_Do_graphic.cpp index 425d1e25fe..9bd6e5e327 100644 --- a/src/m_Do/m_Do_graphic.cpp +++ b/src/m_Do/m_Do_graphic.cpp @@ -2146,6 +2146,7 @@ int mDoGph_Painter() { // FRAME INTERP NOTE: Call setViewMtx earlier so that it's interpolated in time for draw_info to use it j3dSys.setViewMtx(camera_p->view.viewMtx); JPADrawInfo draw_info(j3dSys.getViewMtx(), camera_p->view.fovy, camera_p->view.aspect); + mDoGph_gInf_c::setWideZoomLightProjection(draw_info.mPrjMtx); #else JPADrawInfo draw_info(camera_p->view.viewMtx, camera_p->view.fovy, camera_p->view.aspect); #endif From fecd1d568373aa7903e0bb92b9db459ec9d03041 Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Wed, 29 Apr 2026 22:33:02 -0700 Subject: [PATCH 3/3] Update aurora --- extern/aurora | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/aurora b/extern/aurora index c77a4d0c3c..d3f34bfea8 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit c77a4d0c3c6a0d9f584a30e6ab1661634959c32b +Subproject commit d3f34bfea84b8b70bd1c8b13d78a3d67a3e4d332