From a40cf7f7ef7d0d4efbd005968f5daa7dd2d185bc Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Wed, 15 Sep 2021 15:05:44 +0100 Subject: [PATCH] Small order fix --- data/behavior_data.c | 22 +++++++++++----------- src/game/rendering_graph_node.c | 9 +++++++-- src/goddard/renderer.c | 32 ++++++++++++++++---------------- 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/data/behavior_data.c b/data/behavior_data.c index 17352732..4f8f5a05 100644 --- a/data/behavior_data.c +++ b/data/behavior_data.c @@ -2003,7 +2003,7 @@ const BehaviorScript bhvBowserFlameSpawn[] = { const BehaviorScript bhvTiltingBowserLavaPlatform[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), + OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)), LOAD_COLLISION_DATA(bowser_2_seg7_collision_tilting_platform), SET_FLOAT(oDrawingDistance, 20000), SET_FLOAT(oCollisionDistance, 20000), @@ -2017,7 +2017,7 @@ const BehaviorScript bhvTiltingBowserLavaPlatform[] = { const BehaviorScript bhvFallingBowserPlatform[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + OR_LONG(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE), SET_FLOAT(oDrawingDistance, 20000), SET_FLOAT(oCollisionDistance, 20000), SET_HOME(), @@ -2190,7 +2190,7 @@ const BehaviorScript bhvWaterLevelPillar[] = { const BehaviorScript bhvDddWarp[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + OR_LONG(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE), SET_FLOAT(oCollisionDistance, 30000), BEGIN_LOOP(), CALL_NATIVE(bhv_ddd_warp_loop), @@ -4246,7 +4246,7 @@ const BehaviorScript bhvLllDrawbridge[] = { const BehaviorScript bhvSmallBomp[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, (OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), + OR_LONG(oFlags, (OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)), LOAD_COLLISION_DATA(wf_seg7_collision_small_bomp), CALL_NATIVE(bhv_small_bomp_init), BEGIN_LOOP(), @@ -4257,7 +4257,7 @@ const BehaviorScript bhvSmallBomp[] = { const BehaviorScript bhvLargeBomp[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, (OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), + OR_LONG(oFlags, (OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)), LOAD_COLLISION_DATA(wf_seg7_collision_large_bomp), CALL_NATIVE(bhv_large_bomp_init), BEGIN_LOOP(), @@ -4367,7 +4367,7 @@ const BehaviorScript bhvThiBowlingBallSpawner[] = { const BehaviorScript bhvRrCruiserWing[] = { BEGIN(OBJ_LIST_DEFAULT), - OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + OR_LONG(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE), CALL_NATIVE(bhv_rr_cruiser_wing_init), BEGIN_LOOP(), CALL_NATIVE(bhv_rr_cruiser_wing_loop), @@ -4398,7 +4398,7 @@ const BehaviorScript bhvSslMovingPyramidWall[] = { const BehaviorScript bhvPyramidElevator[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + OR_LONG(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE), LOAD_COLLISION_DATA(ssl_seg7_collision_pyramid_elevator), SET_HOME(), SET_FLOAT(oCollisionDistance, 20000), @@ -4420,7 +4420,7 @@ const BehaviorScript bhvPyramidElevatorTrajectoryMarkerBall[] = { const BehaviorScript bhvPyramidTop[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + OR_LONG(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE), LOAD_COLLISION_DATA(ssl_seg7_collision_pyramid_top), SET_HOME(), SET_FLOAT(oCollisionDistance, 20000), @@ -5392,7 +5392,7 @@ const BehaviorScript bhvTrackBall[] = { const BehaviorScript bhvSeesawPlatform[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), + OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)), CALL_NATIVE(bhv_seesaw_platform_init), BEGIN_LOOP(), CALL_NATIVE(bhv_seesaw_platform_update), @@ -5431,7 +5431,7 @@ const BehaviorScript bhvWaterBombSpawner[] = { const BehaviorScript bhvWaterBomb[] = { BEGIN(OBJ_LIST_GENACTOR), - OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), + OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 120, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), BEGIN_LOOP(), CALL_NATIVE(bhv_water_bomb_update), @@ -5626,7 +5626,7 @@ const BehaviorScript bhvAnimatesOnFloorSwitchPress[] = { const BehaviorScript bhvActivatedBackAndForthPlatform[] = { BEGIN(OBJ_LIST_SURFACE), - OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), + OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)), SET_HOME(), CALL_NATIVE(bhv_activated_back_and_forth_platform_init), BEGIN_LOOP(), diff --git a/src/game/rendering_graph_node.c b/src/game/rendering_graph_node.c index 8305f70b..aa7c72ca 100644 --- a/src/game/rendering_graph_node.c +++ b/src/game/rendering_graph_node.c @@ -137,6 +137,8 @@ u16 gAreaUpdateCounter = 0; LookAt lookAt; #endif +u8 ucodeTestSwitch = 1; + /** * Process a master list node. This has been modified, so now it runs twice, for each microcode. It iterates through the first 5 layers of if the first index using F3DLX2.Rej, then it switches @@ -158,10 +160,13 @@ static void geo_process_master_list_sub(struct GraphNodeMasterList *node) { gDPPipeSync(gDisplayListHead++); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER); } + //if (gPlayer1Controller->buttonPressed & L_TRIG) + // ucodeTestSwitch ^= 1; + //print_text_fmt_int(32,32,"%d",ucodeTestSwitch); #ifdef F3DZEX_GBI_2 loopBegin: //Load rejection on pass 2. ZEX is loaded afterwards. - if (renderPhase == 2) + if (renderPhase == 0 || renderPhase == 2) { gSPLoadUcodeL(gDisplayListHead++, gspF3DLX2_Rej_fifo); init_rcp(0); @@ -235,7 +240,7 @@ static void geo_append_display_list(void *displayList, s32 layer) #ifdef F3DZEX_GBI_2 if (gCurGraphNodeObject != NULL) { - if (gCurGraphNodeObject->uCode == UCODE_REJ) + if (gCurGraphNodeObject->uCode == UCODE_REJ && ucodeTestSwitch) index = 1; } #endif diff --git a/src/goddard/renderer.c b/src/goddard/renderer.c index 6e8dd3a8..34c9a064 100644 --- a/src/goddard/renderer.c +++ b/src/goddard/renderer.c @@ -510,11 +510,11 @@ static Gfx gd_dl_sparkle[] = { gsSPClearGeometryMode(G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2), gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), - 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, + 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(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 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), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), gsSPVertex(gd_vertex_sparkle, 4, 0), @@ -663,7 +663,7 @@ static Gfx gd_dl_mario_face_shine[] = { gsDPSetTexturePersp(G_TP_PERSP), gsDPSetTextureFilter(G_TF_BILERP), gsDPSetCombineMode(G_CC_HILITERGBA, G_CC_HILITERGBA), - gsDPLoadTextureBlock(gd_texture_mario_face_shine, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, + gsDPLoadTextureBlock(gd_texture_mario_face_shine, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsDPPipeSync(), gsSPEndDisplayList(), @@ -1192,7 +1192,7 @@ void print_gdm_stats(void) { /* 24AC80 -> 24AD14; orig name: func_8019C4B0 */ struct ObjView *make_view_withgrp(char *name, struct ObjGroup *grp) { - struct ObjView *view = make_view(name, (VIEW_DRAW | VIEW_ALLOC_ZBUF | VIEW_MOVEMENT), 1, 0, 0, 320, 240, grp); + struct ObjView *view = make_view(name, (VIEW_DRAW | VIEW_ALLOC_ZBUF | VIEW_MOVEMENT), 1, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, grp); UNUSED struct ObjGroup *viewgrp = make_group(2, grp, view); view->lights = gGdLightGroup; @@ -1270,7 +1270,7 @@ void gd_vblank(void) { } /** - * Copies the player1 controller data from p1cont to sGdContPads[0]. + * Copies the player1 controller data from p1cont to sGdContPads[0]. */ void gd_copy_p1_contpad(OSContPad *p1cont) { u32 i; // 24 @@ -1942,7 +1942,7 @@ Vtx *gd_dl_make_vertex(f32 x, f32 y, f32 z, f32 alpha) { /* 24E6C0 -> 24E724 */ void func_8019FEF0(void) { sTriangleBufCount++; - if (sVertexBufCount >= 12) { + if (sVertexBufCount >= 30) { gd_dl_flush_vertices(); func_801A0038(); } @@ -2366,7 +2366,7 @@ void parse_p1_controller(void) { OSContPad *currInputs; OSContPad *prevInputs; - // Copy current inputs to previous + // Copy current inputs to previous u8 *src = (u8 *) gdctrl; u8 *dest = (u8 *) gdctrl->prevFrame; for (i = 0; i < sizeof(struct GdControl); i++) { @@ -2891,7 +2891,7 @@ void Unknown801A4F58(void) { cbufOn = sScreenView->colourBufs[gGdFrameBufNum]; zbuf = sScreenView->zbuf; - for (i = 0; i < (320 * 240); i++) { // L801A4FCC + for (i = 0; i < (SCREEN_WIDTH * SCREEN_HEIGHT); i++) { // L801A4FCC colour = cbufOff[i]; if (colour) { r = (s16)(colour >> 11 & 0x1F); @@ -3000,7 +3000,7 @@ void gd_init(void) { sScreenView = make_view("screenview2", (VIEW_2_COL_BUF | VIEW_UNK_1000 | VIEW_COLOUR_BUF | VIEW_Z_BUF), 0, 0, - 0, 320, 240, NULL); + 0, SCREEN_WIDTH, SCREEN_HEIGHT, NULL); sScreenView->colour.r = 0.0f; sScreenView->colour.g = 0.0f; sScreenView->colour.b = 0.0f; @@ -3033,7 +3033,7 @@ void gd_init(void) { * functions from IRIS GL. * @param buf pointer to an array of 16-bit values * @param len maximum number of values to store - */ + */ void init_pick_buf(s16 *buf, s32 len) { buf[0] = 0; buf[1] = 0; @@ -3105,8 +3105,8 @@ void Unknown801A5C80(struct ObjGroup *parentGroup) { d_end_group("debugg"); debugGroup = (struct ObjGroup *) d_use_obj("debugg"); - make_view("debugview", (VIEW_2_COL_BUF | VIEW_ALLOC_ZBUF | VIEW_1_CYCLE | VIEW_DRAW), 2, 0, 0, 320, - 240, debugGroup); + make_view("debugview", (VIEW_2_COL_BUF | VIEW_ALLOC_ZBUF | VIEW_1_CYCLE | VIEW_DRAW), 2, 0, 0, SCREEN_WIDTH, + SCREEN_HEIGHT, debugGroup); if (parentGroup != NULL) { addto_group(parentGroup, &debugGroup->header); @@ -3149,7 +3149,7 @@ void Unknown801A5D90(struct ObjGroup *arg0) { d_add_valproc(cvrt_val_to_kb); sp23C = TRUE; sp244 += 14; - if (sp244 > 200) { + if (sp244 > SCREEN_HEIGHT) { break; } } @@ -3167,7 +3167,7 @@ void Unknown801A5D90(struct ObjGroup *arg0) { memview = make_view("memview", (VIEW_2_COL_BUF | VIEW_ALLOC_ZBUF | VIEW_UNK_2000 | VIEW_UNK_4000 | VIEW_1_CYCLE | VIEW_DRAW), - 2, 0, 10, 320, 200, labelgrp); + 2, 0, 10, SCREEN_WIDTH, SCREEN_HEIGHT-40, labelgrp); memview->colour.r = 0.0f; memview->colour.g = 0.0f; memview->colour.b = 0.0f; @@ -3407,7 +3407,7 @@ void make_timer_gadgets(void) { timerg = (struct ObjGroup *) d_use_obj("timerg"); timersview = make_view( "timersview", (VIEW_2_COL_BUF | VIEW_ALLOC_ZBUF | VIEW_1_CYCLE | VIEW_MOVEMENT | VIEW_DRAW), 2, - 0, 10, 320, 270, timerg); + 0, 10, SCREEN_WIDTH, SCREEN_HEIGHT+30, timerg); timersview->colour.r = 0.0f; timersview->colour.g = 0.0f; timersview->colour.b = 0.0f; @@ -3472,7 +3472,7 @@ struct GdObj *load_dynlist(struct DynList *dynlist) { fatal_printf("load_dynlist() unkown bank"); } -#define PAGE_SIZE 65536 // size of a 64K TLB page +#define PAGE_SIZE 65536 // size of a 64K TLB page segSize = dynlistSegEnd - dynlistSegStart; allocSegSpace = gd_malloc_temp(segSize + PAGE_SIZE);