From 8456e4be8a61c586b84476e7b17a32d971099593 Mon Sep 17 00:00:00 2001 From: cadmic Date: Sat, 23 Mar 2024 09:58:02 -0700 Subject: [PATCH] Match retail ovl_kaleido_scope (#1931) * WIP * cleanup * small progress * small cleanup * Finish retail ovl_kaleido_scope * GREG + markPoint -> markPoint + GREG --------- Co-authored-by: engineer124 --- .../ovl_kaleido_scope/z_kaleido_collect.c | 11 ++++---- .../ovl_kaleido_scope/z_kaleido_equipment.c | 10 ++----- .../misc/ovl_kaleido_scope/z_kaleido_item.c | 6 ++++ .../ovl_kaleido_scope/z_kaleido_map_PAL.c | 4 ++- .../ovl_kaleido_scope/z_kaleido_scope_PAL.c | 28 +++++++++++-------- .../misc/ovl_kaleido_scope/z_lmap_mark.c | 8 +++++- 6 files changed, 41 insertions(+), 26 deletions(-) diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c index a372bdf153..1a809fa970 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c @@ -464,10 +464,11 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { } if (pauseCtx->state == PAUSE_STATE_MAIN) { + sp21A += 4; + gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); - sp21A += 4; if ((pauseCtx->cursorSpecialPos == 0) && (sp216 >= 6) && (sp216 < 0x12)) { if ((pauseCtx->mainState < PAUSE_MAIN_STATE_3) || (pauseCtx->mainState == PAUSE_MAIN_STATE_5) || (pauseCtx->mainState == PAUSE_MAIN_STATE_8)) { @@ -484,7 +485,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); if (pauseCtx->ocarinaStaff->pos != 0) { - if (D_8082A11C + 1 == pauseCtx->ocarinaStaff->pos) { + if (D_8082A11C == (pauseCtx->ocarinaStaff->pos - 1)) { D_8082A11C++; D_8082A124[pauseCtx->ocarinaStaff->pos - 1] = pauseCtx->ocarinaStaff->buttonIndex; } @@ -660,16 +661,16 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha); } - phi_s0 = 0; + cursorItem = 0; for (sp21A = 0; sp21A < 3; sp21A++, sp218 += 4) { - if ((sp21A >= 2) || (sp208[sp21A] != 0) || (phi_s0 != 0)) { + if ((sp21A >= 2) || (sp208[sp21A] != 0) || (cursorItem != 0)) { gDPLoadTextureBlock(POLY_OPA_DISP++, ((u8*)gCounterDigit0Tex + (8 * 16 * sp208[sp21A])), G_IM_FMT_I, G_IM_SIZ_8b, 8, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, sp218, sp218 + 2, sp218 + 3, sp218 + 1, 0); - phi_s0 = 1; + cursorItem = 1; } } } diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c index e5a3a9918a..529bb61424 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c @@ -16,8 +16,6 @@ static u8 sEquipmentItemOffsets[] = { 0x00, 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x00, 0x06, 0x07, 0x08, 0x00, 0x09, 0x0A, 0x0B, }; -static s16 sEquipTimer = 0; - void KaleidoScope_DrawEquipmentImage(PlayState* play, void* source, u32 width, u32 height) { PauseContext* pauseCtx = &play->pauseCtx; u8* curTexture; @@ -119,6 +117,7 @@ void KaleidoScope_DrawPlayerWork(PlayState* play) { void KaleidoScope_ProcessPlayerPreRender(PlayState* play); void KaleidoScope_DrawEquipment(PlayState* play) { + static s16 sEquipTimer = 0; PauseContext* pauseCtx = &play->pauseCtx; Input* input = &play->state.input[0]; u16 i; @@ -437,8 +436,8 @@ void KaleidoScope_DrawEquipment(PlayState* play) { cursorSlot = pauseCtx->cursorPoint[PAUSE_EQUIP]; - pauseCtx->cursorItem[PAUSE_EQUIP] = cursorItem; pauseCtx->cursorSlot[PAUSE_EQUIP] = cursorSlot; + pauseCtx->cursorItem[PAUSE_EQUIP] = cursorItem; PRINTF("kscope->select_name[Display_Equipment] = %d\n", pauseCtx->cursorItem[PAUSE_EQUIP]); @@ -552,8 +551,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) { point = CUR_UPG_VALUE(sChildUpgrades[i]); - if (1) {} - if ((point != 0) && (CUR_UPG_VALUE(sChildUpgrades[i]) != 0)) { + if (((u32)point != 0) && (CUR_UPG_VALUE(sChildUpgrades[i]) != 0)) { KaleidoScope_DrawQuadTextureRGBA32(play->state.gfxCtx, gItemIcons[sChildUpgradeItemBases[i] + point - 1], ITEM_ICON_WIDTH, ITEM_ICON_HEIGHT, 0); @@ -606,7 +604,5 @@ void KaleidoScope_DrawEquipment(PlayState* play) { Gfx_SetupDL_42Opa(play->state.gfxCtx); KaleidoScope_DrawEquipmentImage(play, pauseCtx->playerSegment, PAUSE_EQUIP_PLAYER_WIDTH, PAUSE_EQUIP_PLAYER_HEIGHT); - if (gUpgradeMasks[0]) {} - CLOSE_DISPS(play->state.gfxCtx, "../z_kaleido_equipment.c", 609); } diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c index 090fa4114c..0327e95127 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c @@ -118,6 +118,10 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { pauseCtx->stickAdjX = 40; } +#if !OOT_DEBUG + if (&gSaveContext) {} +#endif + if (ABS(pauseCtx->stickAdjX) > 30) { cursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM]; cursorX = pauseCtx->cursorX[PAUSE_ITEM]; @@ -125,9 +129,11 @@ void KaleidoScope_DrawItemSelect(PlayState* play) { PRINTF("now=%d ccc=%d\n", cursorPoint, cursorItem); +#if OOT_DEBUG // Seems necessary to match if (pauseCtx->cursorX[PAUSE_ITEM]) {} if (gSaveContext.save.info.inventory.items[pauseCtx->cursorPoint[PAUSE_ITEM]]) {} +#endif while (moveCursorResult == 0) { if (pauseCtx->stickAdjX < -30) { diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c index 5bf7b93d4e..9e43d43486 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c @@ -495,7 +495,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gDPPipeSync(POLY_OPA_DISP++); - if (HREG(15) == 0) { + if (!OOT_DEBUG || (HREG(15) == 0)) { gDPSetTextureFilter(POLY_OPA_DISP++, G_TF_POINT); gDPLoadTLUT_pal256(POLY_OPA_DISP++, gWorldMapImageTLUT); @@ -540,11 +540,13 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { POLY_OPA_DISP = gfx; } +#if OOT_DEBUG if (HREG(15) == 2) { HREG(15) = 1; HREG(14) = 6100; HREG(13) = 5300; } +#endif if (ZREG(38) == 0) { gDPPipeSync(POLY_OPA_DISP++); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c index 0cecf55e2b..ce36a4311b 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c @@ -406,6 +406,8 @@ Gfx* KaleidoScope_QuadTextureIA8(Gfx* gfx, void* texture, s16 width, s16 height, void KaleidoScope_OverridePalIndexCI4(u8* texture, s32 size, s32 targetIndex, s32 newIndex) { s32 i; + s32 index1; + s32 index2; targetIndex &= 0xF; newIndex &= 0xF; @@ -415,9 +417,6 @@ void KaleidoScope_OverridePalIndexCI4(u8* texture, s32 size, s32 targetIndex, s3 } for (i = 0; i < size; i++) { - s32 index1; - s32 index2; - index1 = index2 = texture[i]; index1 = (index1 >> 4) & 0xF; @@ -519,7 +518,9 @@ void KaleidoScope_SwitchPage(PauseContext* pauseCtx, u8 pt) { void KaleidoScope_HandlePageToggles(PauseContext* pauseCtx, Input* input) { if ((pauseCtx->debugState == 0) && CHECK_BTN_ALL(input->press.button, BTN_L)) { +#if OOT_DEBUG pauseCtx->debugState = 1; +#endif return; } @@ -556,20 +557,19 @@ void KaleidoScope_HandlePageToggles(PauseContext* pauseCtx, Input* input) { void KaleidoScope_DrawCursor(PlayState* play, u16 pageIndex) { PauseContext* pauseCtx = &play->pauseCtx; - u16 temp; + s32 pad; OPEN_DISPS(play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 955); - temp = pauseCtx->mainState; - - if ((((pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) || (temp == PAUSE_MAIN_STATE_8)) && + if (((((u32)pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE) || (pauseCtx->mainState == PAUSE_MAIN_STATE_8)) && (pauseCtx->state == PAUSE_STATE_MAIN)) || ((pauseCtx->pageIndex == PAUSE_QUEST) && - ((temp < PAUSE_MAIN_STATE_3) || (temp == PAUSE_MAIN_STATE_5) || (temp == PAUSE_MAIN_STATE_8)))) { + ((pauseCtx->mainState < PAUSE_MAIN_STATE_3) || (pauseCtx->mainState == PAUSE_MAIN_STATE_5) || + (pauseCtx->mainState == PAUSE_MAIN_STATE_8)))) { + s16 i; + s16 j; if (pauseCtx->pageIndex == pageIndex) { - s16 i; - s16 j; gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, @@ -1279,6 +1279,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { ITEM_NAME_TEX_HEIGHT, 0); } +#if OOT_DEBUG if (pauseCtx->pageIndex == PAUSE_MAP) { if (YREG(7) != 0) { PRINTF(VT_FGCOL(YELLOW)); @@ -1291,6 +1292,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { gAreaGsFlags[D_8082AE30[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]]); } } +#endif if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) { if (GET_GS_FLAGS(D_8082AE30[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]) == @@ -1913,7 +1915,6 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) { PauseContext* pauseCtx = &play->pauseCtx; s16 phi_t1; s16 phi_t2; - s16 phi_t2_2; s16 phi_t3; s16 phi_t4; s16 phi_t5; @@ -2282,7 +2283,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->questVtx = GRAPH_ALLOC(gfxCtx, 188 * sizeof(Vtx)); for (phi_t4 = 0, phi_t3 = 0; phi_t3 < 47; phi_t3++, phi_t4 += 4) { - phi_t2_2 = D_8082B1F8[phi_t3]; + s16 phi_t2_2 = D_8082B1F8[phi_t3]; if ((phi_t3 < 6) || (phi_t3 >= 41)) { pauseCtx->questVtx[phi_t4 + 0].v.ob[0] = pauseCtx->questVtx[phi_t4 + 2].v.ob[0] = D_8082B138[phi_t3]; @@ -3289,6 +3290,9 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->unk_204 = -434.0f; } break; + + default: + break; } break; diff --git a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c index 29191c6893..8ed0e6005b 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c @@ -127,7 +127,13 @@ void PauseMapMark_DrawForDungeon(PlayState* play) { G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); Matrix_Push(); - Matrix_Translate(GREG(92) + markPoint->x, GREG(93) + markPoint->y, 0.0f, MTXMODE_APPLY); + +#if OOT_DEBUG + Matrix_Translate(markPoint->x + GREG(92), markPoint->y + GREG(93), 0.0f, MTXMODE_APPLY); +#else + Matrix_Translate(markPoint->x, markPoint->y, 0.0f, MTXMODE_APPLY); +#endif + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_lmap_mark.c", 272), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);