From 4b9a0b89a0a6324980b20cba5b487a17010ed145 Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Fri, 25 Mar 2022 17:08:09 +0000 Subject: [PATCH] Add missing syncs for G_PM_NPRIMITIVE (#345) --- actors/bubble/model.inc.c | 2 ++ actors/coin/model.inc.c | 2 ++ actors/leaves/model.inc.c | 1 + actors/mr_i_eyeball/model.inc.c | 2 ++ actors/mr_i_iris/model.inc.c | 1 + actors/sand/model.inc.c | 1 + actors/sparkle/model.inc.c | 1 + actors/sparkle_animation/model.inc.c | 1 + actors/transparent_star/model.inc.c | 1 + actors/walk_smoke/model.inc.c | 1 + actors/water_splash/model.inc.c | 1 + bin/effect.c | 1 + bin/segment2.c | 1 + levels/menu/leveldata.c | 3 +++ src/game/game_init.c | 2 +- src/game/ingame_menu.c | 1 + src/game/puppyprint.c | 3 ++- src/goddard/renderer.c | 2 ++ 18 files changed, 25 insertions(+), 2 deletions(-) diff --git a/actors/bubble/model.inc.c b/actors/bubble/model.inc.c index 150ee15e..c01521f2 100644 --- a/actors/bubble/model.inc.c +++ b/actors/bubble/model.inc.c @@ -27,6 +27,7 @@ const Gfx bubble_seg4_dl_0401DD60[] = { gsSPVertex(bubble_seg4_vertex_0401CD20, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; @@ -40,6 +41,7 @@ const Gfx bubble_seg4_dl_0401DDE0[] = { gsSPVertex(bubble_seg4_vertex_0401CD20, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; diff --git a/actors/coin/model.inc.c b/actors/coin/model.inc.c index cc93e8c0..146f9c16 100644 --- a/actors/coin/model.inc.c +++ b/actors/coin/model.inc.c @@ -123,6 +123,7 @@ const Gfx coin_seg3_dl_start[] = { const Gfx coin_seg3_dl_end[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING), gsSPEndDisplayList(), @@ -503,6 +504,7 @@ const Gfx coin_seg3_sub_dl_begin[] = { const Gfx coin_seg3_sub_dl_end[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING), gsSPEndDisplayList(), diff --git a/actors/leaves/model.inc.c b/actors/leaves/model.inc.c index 72c52331..9485de59 100644 --- a/actors/leaves/model.inc.c +++ b/actors/leaves/model.inc.c @@ -24,6 +24,7 @@ const Gfx leaves_seg3_dl_0301CDE0[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; diff --git a/actors/mr_i_eyeball/model.inc.c b/actors/mr_i_eyeball/model.inc.c index bcb354fa..888e7468 100644 --- a/actors/mr_i_eyeball/model.inc.c +++ b/actors/mr_i_eyeball/model.inc.c @@ -36,11 +36,13 @@ const Gfx mr_i_eyeball_seg6_dl_06002080[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), + gsDPPipeSync(), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mr_i_eyeball_seg6_texture_06001080), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; diff --git a/actors/mr_i_iris/model.inc.c b/actors/mr_i_iris/model.inc.c index 17368e9b..5d7e3fc7 100644 --- a/actors/mr_i_iris/model.inc.c +++ b/actors/mr_i_iris/model.inc.c @@ -40,6 +40,7 @@ const Gfx mr_i_iris_seg6_dl_06004170[] = { gsSPVertex(mr_i_iris_seg6_vertex_06002130, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; diff --git a/actors/sand/model.inc.c b/actors/sand/model.inc.c index 88a973af..4203b5ac 100644 --- a/actors/sand/model.inc.c +++ b/actors/sand/model.inc.c @@ -23,6 +23,7 @@ const Gfx sand_seg3_dl_particle[] = { gsSPVertex(sand_seg3_vertex_billboard_16x16, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING), gsSPEndDisplayList(), diff --git a/actors/sparkle/model.inc.c b/actors/sparkle/model.inc.c index c863ad45..146cf6a2 100644 --- a/actors/sparkle/model.inc.c +++ b/actors/sparkle/model.inc.c @@ -50,6 +50,7 @@ const Gfx sparkles_seg4_dl_0402A490[] = { gsSPVertex(sparkles_seg4_vertex_04027450, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; diff --git a/actors/sparkle_animation/model.inc.c b/actors/sparkle_animation/model.inc.c index 09ef7947..ec008624 100644 --- a/actors/sparkle_animation/model.inc.c +++ b/actors/sparkle_animation/model.inc.c @@ -47,6 +47,7 @@ const Gfx sparkles_animation_seg4_dl_04035288[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsSPSetGeometryMode(G_LIGHTING), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; diff --git a/actors/transparent_star/model.inc.c b/actors/transparent_star/model.inc.c index ca3fb4d2..86b5bdb1 100644 --- a/actors/transparent_star/model.inc.c +++ b/actors/transparent_star/model.inc.c @@ -46,6 +46,7 @@ const Gfx transparent_star_seg3_dl_body[] = { gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA), gsDPSetEnvColor(255, 255, 255, 120), gsSPDisplayList(transparent_star_seg3_sub_dl_body), + gsDPPipeSync(), gsDPSetEnvColor(255, 255, 255, 255), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), diff --git a/actors/walk_smoke/model.inc.c b/actors/walk_smoke/model.inc.c index 1b0452c6..183426a1 100644 --- a/actors/walk_smoke/model.inc.c +++ b/actors/walk_smoke/model.inc.c @@ -56,6 +56,7 @@ const Gfx smoke_seg4_dl_040216A0[] = { gsSPVertex(smoke_seg4_vertex_0401DE60, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING), gsSPEndDisplayList(), diff --git a/actors/water_splash/model.inc.c b/actors/water_splash/model.inc.c index 6b7b2daf..bc51237f 100644 --- a/actors/water_splash/model.inc.c +++ b/actors/water_splash/model.inc.c @@ -61,6 +61,7 @@ const Gfx water_splash_seg4_dl_040325C8[] = { gsSPVertex(water_splash_seg4_vertex_0402A588, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPSetGeometryMode(G_LIGHTING), gsSPEndDisplayList(), diff --git a/bin/effect.c b/bin/effect.c index 1b8091b1..301c515e 100644 --- a/bin/effect.c +++ b/bin/effect.c @@ -130,6 +130,7 @@ const Gfx tiny_bubble_dl_0B006A50[] = { // 0x0B006AB0 - 0x0B006AD8 const Gfx tiny_bubble_dl_0B006AB0[] = { gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK | G_SHADING_SMOOTH), diff --git a/bin/segment2.c b/bin/segment2.c index 31b51d29..ba72215c 100644 --- a/bin/segment2.c +++ b/bin/segment2.c @@ -2328,6 +2328,7 @@ const Gfx dl_draw_triangle[] = { gsSPVertex(vertex_triangle, 3, 0), gsSP1Triangle( 0, 1, 2, 0x0), gsSPSetGeometryMode(G_LIGHTING), + gsDPPipeSync(), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), diff --git a/levels/menu/leveldata.c b/levels/menu/leveldata.c index d387f92d..56893d28 100644 --- a/levels/menu/leveldata.c +++ b/levels/menu/leveldata.c @@ -436,6 +436,7 @@ static const Gfx dl_menu_hand[] = { gsSPVertex(vertex_menu_hand, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), @@ -1786,6 +1787,7 @@ const Gfx dl_menu_rgba16_wood_course_end[] = { gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPVertex(vertex_menu_course_upper, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), + gsDPPipeSync(), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_menu_course_lower), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), @@ -1796,6 +1798,7 @@ const Gfx dl_menu_rgba16_wood_course_end[] = { gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsSPEndDisplayList(), }; diff --git a/src/game/game_init.c b/src/game/game_init.c index 4a8934c6..a53913bb 100644 --- a/src/game/game_init.c +++ b/src/game/game_init.c @@ -102,7 +102,7 @@ struct DemoInput gRecordedDemoInput = { 0 }; */ const Gfx init_rdp[] = { gsDPPipeSync(), - gsDPPipelineMode(G_PM_1PRIMITIVE), + gsDPPipelineMode(G_PM_NPRIMITIVE), gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c index 28c80f34..b8f65c27 100644 --- a/src/game/ingame_menu.c +++ b/src/game/ingame_menu.c @@ -1697,6 +1697,7 @@ void render_pause_castle_menu_box(s16 x, s16 y) { create_dl_translation_matrix(MENU_MTX_PUSH, x + 6, y - 28, 0); create_dl_rotation_matrix(MENU_MTX_NOPUSH, DEFAULT_DIALOG_BOX_ANGLE, 0, 0, 1.0f); + gDPPipeSync(gDisplayListHead++); gDPSetEnvColor(gDisplayListHead++, 255, 255, 255, gDialogTextAlpha); gSPDisplayList(gDisplayListHead++, dl_draw_triangle); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); diff --git a/src/game/puppyprint.c b/src/game/puppyprint.c index a30f9123..aadcb5f5 100644 --- a/src/game/puppyprint.c +++ b/src/game/puppyprint.c @@ -828,6 +828,7 @@ void prepare_blank_box(void) { } void finish_blank_box(void) { + gDPPipeSync(gDisplayListHead++); print_set_envcolour(255, 255, 255, 255); gSPDisplayList(gDisplayListHead++, dl_hud_img_end); } @@ -837,6 +838,7 @@ void finish_blank_box(void) { // Otherwise, if there's transparency, it uses that rendermode, which is slower than using opaque rendermodes. void render_blank_box(s32 x1, s32 y1, s32 x2, s32 y2, s32 r, s32 g, s32 b, s32 a) { s32 cycleadd = 0; + gDPPipeSync(gDisplayListHead++); if (((absi(x1 - x2) % 4) == 0) && (a == 255)) { gDPSetCycleType( gDisplayListHead++, G_CYC_FILL); gDPSetRenderMode(gDisplayListHead++, G_RM_NOOP, G_RM_NOOP); @@ -851,7 +853,6 @@ void render_blank_box(s32 x1, s32 y1, s32 x2, s32 y2, s32 r, s32 g, s32 b, s32 a cycleadd = 0; } - gDPPipeSync(gDisplayListHead++); gDPSetFillColor(gDisplayListHead++, (GPACK_RGBA5551(r, g, b, 1) << 16) | GPACK_RGBA5551(r, g, b, 1)); print_set_envcolour(r, g, b, a); gDPFillRectangle(gDisplayListHead++, x1, y1, x2 - cycleadd, y2 - cycleadd); diff --git a/src/goddard/renderer.c b/src/goddard/renderer.c index c8c5c7b9..5f84ddde 100644 --- a/src/goddard/renderer.c +++ b/src/goddard/renderer.c @@ -329,6 +329,7 @@ static Gfx gd_dl_star_common[] = { gsSPVertex(gd_vertex_star, 4, 0), gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetRenderMode(G_RM_AA_ZB_OPA_INTER, G_RM_NOOP2), gsSPEndDisplayList(), @@ -516,6 +517,7 @@ static Gfx gd_dl_sparkle[] = { gsSPVertex(gd_vertex_sparkle, 4, 0), gsSP2Triangles(0, 1, 2, 0x0, 0, 2, 3, 0x0), gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), gsDPSetRenderMode(G_RM_AA_ZB_OPA_INTER, G_RM_NOOP2), gsSPEndDisplayList(),