From 58dee066bd2411feead2ae02329adfd20acb4641 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Fri, 21 Jun 2024 20:43:12 -0400 Subject: [PATCH] d_a_sea OK on JPN fixes #586 --- configure.py | 2 +- src/d/actor/d_a_sea.cpp | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/configure.py b/configure.py index 29bca88ad..3cbfb8058 100644 --- a/configure.py +++ b/configure.py @@ -454,7 +454,7 @@ config.libs = [ Object(Matching, "d/actor/d_a_player.cpp"), Object(NonMatching, "d/actor/d_a_player_main.cpp"), Object(Matching, "d/actor/d_a_player_npc.cpp"), - Object(NonMatching, "d/actor/d_a_sea.cpp"), + Object(Matching, "d/actor/d_a_sea.cpp"), Object(Matching, "d/actor/d_a_spc_item01.cpp"), Object(Matching, "d/actor/d_a_vrbox.cpp", extra_cflags=['-pragma "nosyminline on"']), Object(Matching, "d/actor/d_a_vrbox2.cpp"), diff --git a/src/d/actor/d_a_sea.cpp b/src/d/actor/d_a_sea.cpp index 39385365a..18195ecca 100644 --- a/src/d/actor/d_a_sea.cpp +++ b/src/d/actor/d_a_sea.cpp @@ -648,10 +648,11 @@ void daSea_packet_c::draw() { return; } - JUT_ASSERT(0x518, m_draw_vtx != 0); // Redundant assert + JUT_ASSERT(VERSION_SELECT(0x519, 0x518, 0x518), m_draw_vtx != 0); // Redundant assert +#if VERSION != VERSION_JPN j3dSys.reinitGX(); - +#endif cXyz* vtx = m_draw_vtx; f32* pY = mpHeightTable; @@ -671,7 +672,11 @@ void daSea_packet_c::draw() { minZ += 800.0f; } +#if VERSION == VERSION_JPN + DCFlushRange(m_draw_vtx, 0xC60C); +#else DCStoreRange(m_draw_vtx, 0xC60C); +#endif ResTIMG* pResTIMG = static_cast(dComIfG_getObjectRes("Always", ALWAYS_BTI_B_SEA_TEX0AND2)); @@ -787,19 +792,19 @@ void daSea_packet_c::draw() { GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX2, GX_FALSE, GX_PTIDENTITY); - GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD0,GX_TEXMAP0,GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE0,GX_TEXCOORD0,GX_TEXMAP0, VERSION_SELECT(GX_COLOR_ZERO, GX_COLOR_NULL, GX_COLOR_NULL)); GXSetTevColorIn(GX_TEVSTAGE0,GX_CC_C0,GX_CC_KONST,GX_CC_TEXC,GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,true,GX_TEVREG2); GXSetTevAlphaIn(GX_TEVSTAGE0,GX_CA_ZERO,GX_CA_KONST,GX_CA_TEXA,GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,true,GX_TEVPREV); GXSetTevSwapMode(GX_TEVSTAGE0,GX_TEV_SWAP0,GX_TEV_SWAP0); - GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP2,GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE1,GX_TEXCOORD2,GX_TEXMAP2, VERSION_SELECT(GX_COLOR_ZERO, GX_COLOR_NULL, GX_COLOR_NULL)); GXSetTevColorIn(GX_TEVSTAGE1,GX_CC_C0,GX_CC_KONST,GX_CC_TEXC,GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE1,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,true,GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE1,GX_CA_APREV,GX_CA_ZERO,GX_CA_ZERO,GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE1,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,true,GX_TEVPREV); GXSetTevSwapMode(GX_TEVSTAGE1,GX_TEV_SWAP0,GX_TEV_SWAP0); - GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD_NULL,GX_TEXMAP_NULL,GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE2,GX_TEXCOORD_NULL,GX_TEXMAP_NULL, VERSION_SELECT(GX_COLOR_ZERO, GX_COLOR_NULL, GX_COLOR_NULL)); GXSetTevColorIn(GX_TEVSTAGE2,GX_CC_CPREV,GX_CC_C2,GX_CC_APREV,GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE2,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,true,GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE2,GX_CA_ZERO,GX_CA_KONST,GX_CA_APREV,GX_CA_ZERO); @@ -1117,7 +1122,9 @@ void daSea_packet_c::draw() { } GXSetNumIndStages(0); +#if VERSION != VERSION_JPN J3DShape::resetVcdVatCache(); +#endif } /* 8015D80C-8015D87C .text daSea_Draw__FP9sea_class */