diff --git a/assets/ymls/us/textures/intro_raw.yml b/assets/ymls/us/textures/intro_raw.yml index 76b075c7..2e312b09 100644 --- a/assets/ymls/us/textures/intro_raw.yml +++ b/assets/ymls/us/textures/intro_raw.yml @@ -1,3 +1,7 @@ +:config: + virtual: + [0x801A8800, 0x258CC0] + hand_open: type: TEXTURE size: 2048 @@ -169,6 +173,119 @@ sparkle_0: format: RGBA16 symbol: gd_texture_sparkle_0 +gd_vertex_star: + type: VTX + count: 4 + offset: 0x261D88 + symbol: gd_vertex_star + +gd_unused_vertex: + type: VTX + count: 4 + offset: 0x261DC8 + symbol: gd_unused_vertex + +gd_dl_star_common: + type: GFX + offset: 0x261E08 + symbol: gd_dl_star_common + +gd_dl_red_star_0: + type: GFX + offset: 0x261E88 + symbol: gd_dl_red_star_0 + +gd_dl_red_star_1: + type: GFX + offset: 0x261EA0 + symbol: gd_dl_red_star_1 + +gd_dl_red_star_2: + type: GFX + offset: 0x261EB8 + symbol: gd_dl_red_star_2 + +gd_dl_red_star_3: + type: GFX + offset: 0x261ED0 + symbol: gd_dl_red_star_3 + +gd_dl_red_star_4: + type: GFX + offset: 0x261EE8 + symbol: gd_dl_red_star_4 + +gd_dl_red_star_5: + type: GFX + offset: 0x261F00 + symbol: gd_dl_red_star_5 + +gd_dl_red_star_6: + type: GFX + offset: 0x261F18 + symbol: gd_dl_red_star_6 + +gd_dl_red_star_7: + type: GFX + offset: 0x261F30 + symbol: gd_dl_red_star_7 + +gd_dl_silver_star_0: + type: GFX + offset: 0x261F48 + symbol: gd_dl_silver_star_0 + +gd_dl_silver_star_1: + type: GFX + offset: 0x261F60 + symbol: gd_dl_silver_star_1 + +gd_dl_silver_star_2: + type: GFX + offset: 0x261F78 + symbol: gd_dl_silver_star_2 + +gd_dl_silver_star_3: + type: GFX + offset: 0x261F90 + symbol: gd_dl_silver_star_3 + +gd_dl_silver_star_4: + type: GFX + offset: 0x261FA8 + symbol: gd_dl_silver_star_4 + +gd_dl_silver_star_5: + type: GFX + offset: 0x261FC0 + symbol: gd_dl_silver_star_5 + +gd_dl_silver_star_6: + type: GFX + offset: 0x261FD8 + symbol: gd_dl_silver_star_6 + +gd_dl_silver_star_7: + type: GFX + offset: 0x261FF0 + symbol: gd_dl_silver_star_7 + +gd_red_star_dl_array: + type: ASSET_ARRAY + assetType: Gfx + factoryType: GFX + count: 16 + offset: 0x262008 + symbol: gd_red_star_dl_array + +gd_silver_star_dl_array: + type: ASSET_ARRAY + assetType: Gfx + factoryType: GFX + count: 16 + offset: 0x262048 + symbol: gd_silver_star_dl_array + sparkle_1: type: TEXTURE size: 2048 @@ -214,6 +331,103 @@ sparkle_5: format: RGBA16 symbol: gd_texture_sparkle_5 +gd_vertex_sparkle: + type: VTX + count: 4 + offset: 0x265088 + symbol: gd_vertex_sparkle + +gd_dl_sparkle: + type: GFX + offset: 0x2650C8 + symbol: gd_dl_sparkle + +gd_dl_sparkle_red_color: + type: GFX + offset: 0x265148 + symbol: gd_dl_sparkle_red_color + +gd_dl_sparkle_white_color: + type: GFX + offset: 0x265158 + symbol: gd_dl_sparkle_white_color + +gd_dl_red_sparkle_0: + type: GFX + offset: 0x265168 + symbol: gd_dl_red_sparkle_0 + +gd_dl_red_sparkle_1: + type: GFX + offset: 0x265188 + symbol: gd_dl_red_sparkle_1 + +gd_dl_red_sparkle_2: + type: GFX + offset: 0x2651A8 + symbol: gd_dl_red_sparkle_2 + +gd_dl_red_sparkle_3: + type: GFX + offset: 0x2651C8 + symbol: gd_dl_red_sparkle_3 + +gd_dl_red_sparkle_4: + type: GFX + offset: 0x2651E8 + symbol: gd_dl_red_sparkle_4 + +gd_dl_red_sparkle_4_dup: + type: GFX + offset: 0x265208 + symbol: gd_dl_red_sparkle_4_dup + +gd_red_sparkle_dl_array: + type: ASSET_ARRAY + assetType: Gfx + factoryType: GFX + count: 12 + offset: 0x2652E8 + symbol: gd_red_sparkle_dl_array + +gd_dl_silver_sparkle_0: + type: GFX + offset: 0x265228 + symbol: gd_dl_silver_sparkle_0 + +gd_dl_silver_sparkle_1: + type: GFX + offset: 0x265248 + symbol: gd_dl_silver_sparkle_1 + +gd_dl_silver_sparkle_2: + type: GFX + offset: 0x265268 + symbol: gd_dl_silver_sparkle_2 + +gd_dl_silver_sparkle_3: + type: GFX + offset: 0x265288 + symbol: gd_dl_silver_sparkle_3 + +gd_dl_silver_sparkle_4: + type: GFX + offset: 0x2652A8 + symbol: gd_dl_silver_sparkle_4 + +gd_dl_silver_sparkle_4_dup: + type: GFX + offset: 0x2652C8 + symbol: gd_dl_silver_sparkle_4_dup + +gd_silver_sparkle_dl_array: + type: ASSET_ARRAY + assetType: Gfx + factoryType: GFX + count: 12 + offset: 0x265318 + symbol: gd_silver_sparkle_dl_array + mario_face_shine: type: TEXTURE size: 1024 @@ -222,3 +436,28 @@ mario_face_shine: offset: 0x265350 format: IA8 symbol: gd_texture_mario_face_shine + +gd_dl_mario_face_shine: + type: GFX + offset: 0x265750 + symbol: gd_dl_mario_face_shine + +gd_dl_rsp_init: + type: GFX + offset: 0x2657C0 + symbol: gd_dl_rsp_init + +gd_dl_rdp_init: + type: GFX + offset: 0x2657D8 + symbol: gd_dl_rdp_init + +gd_dl_unused_mesh: + type: GFX + offset: 0x2658D8 + symbol: gd_dl_unused_mesh + +gd_dl_sprite_start_tex_block: + type: GFX + offset: 0x265928 + symbol: gd_dl_sprite_start_tex_block \ No newline at end of file diff --git a/include/assets/textures/intro_raw.h b/include/assets/textures/intro_raw.h index ee0e6d14..ea6ff960 100644 --- a/include/assets/textures/intro_raw.h +++ b/include/assets/textures/intro_raw.h @@ -36,6 +36,48 @@ static const ALIGN_ASSET(2) char gd_texture_white_star_6[] = "__OTR__textures/in static const ALIGN_ASSET(2) char gd_texture_white_star_7[] = "__OTR__textures/intro_raw/white_star_7"; +static const ALIGN_ASSET(2) char gd_vertex_star[] = "__OTR__textures/intro_raw/gd_vertex_star"; + +static const ALIGN_ASSET(2) char gd_unused_vertex[] = "__OTR__textures/intro_raw/gd_unused_vertex"; + +static const ALIGN_ASSET(2) char gd_dl_star_common[] = "__OTR__textures/intro_raw/gd_dl_star_common"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_0[] = "__OTR__textures/intro_raw/gd_dl_red_star_0"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_1[] = "__OTR__textures/intro_raw/gd_dl_red_star_1"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_2[] = "__OTR__textures/intro_raw/gd_dl_red_star_2"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_3[] = "__OTR__textures/intro_raw/gd_dl_red_star_3"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_4[] = "__OTR__textures/intro_raw/gd_dl_red_star_4"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_5[] = "__OTR__textures/intro_raw/gd_dl_red_star_5"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_6[] = "__OTR__textures/intro_raw/gd_dl_red_star_6"; + +static const ALIGN_ASSET(2) char gd_dl_red_star_7[] = "__OTR__textures/intro_raw/gd_dl_red_star_7"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_0[] = "__OTR__textures/intro_raw/gd_dl_silver_star_0"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_1[] = "__OTR__textures/intro_raw/gd_dl_silver_star_1"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_2[] = "__OTR__textures/intro_raw/gd_dl_silver_star_2"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_3[] = "__OTR__textures/intro_raw/gd_dl_silver_star_3"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_4[] = "__OTR__textures/intro_raw/gd_dl_silver_star_4"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_5[] = "__OTR__textures/intro_raw/gd_dl_silver_star_5"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_6[] = "__OTR__textures/intro_raw/gd_dl_silver_star_6"; + +static const ALIGN_ASSET(2) char gd_dl_silver_star_7[] = "__OTR__textures/intro_raw/gd_dl_silver_star_7"; + +static const char gd_red_star_dl_array[] = "__OTR__textures/intro_raw/gd_red_star_dl_array"; + +static const char gd_silver_star_dl_array[] = "__OTR__textures/intro_raw/gd_silver_star_dl_array"; + static const ALIGN_ASSET(2) char gd_texture_sparkle_0[] = "__OTR__textures/intro_raw/sparkle_0"; static const ALIGN_ASSET(2) char gd_texture_sparkle_1[] = "__OTR__textures/intro_raw/sparkle_1"; @@ -48,5 +90,55 @@ static const ALIGN_ASSET(2) char gd_texture_sparkle_4[] = "__OTR__textures/intro static const ALIGN_ASSET(2) char gd_texture_sparkle_5[] = "__OTR__textures/intro_raw/sparkle_5"; +static const ALIGN_ASSET(2) char gd_vertex_sparkle[] = "__OTR__textures/intro_raw/gd_vertex_sparkle"; + +static const ALIGN_ASSET(2) char gd_dl_sparkle[] = "__OTR__textures/intro_raw/gd_dl_sparkle"; + +static const ALIGN_ASSET(2) char gd_dl_sparkle_red_color[] = "__OTR__textures/intro_raw/gd_dl_sparkle_red_color"; + +static const ALIGN_ASSET(2) char gd_dl_sparkle_white_color[] = "__OTR__textures/intro_raw/gd_dl_sparkle_white_color"; + +static const ALIGN_ASSET(2) char gd_dl_red_sparkle_0[] = "__OTR__textures/intro_raw/gd_dl_red_sparkle_0"; + +static const ALIGN_ASSET(2) char gd_dl_red_sparkle_1[] = "__OTR__textures/intro_raw/gd_dl_red_sparkle_1"; + +static const ALIGN_ASSET(2) char gd_dl_red_sparkle_2[] = "__OTR__textures/intro_raw/gd_dl_red_sparkle_2"; + +static const ALIGN_ASSET(2) char gd_dl_red_sparkle_3[] = "__OTR__textures/intro_raw/gd_dl_red_sparkle_3"; + +static const ALIGN_ASSET(2) char gd_dl_red_sparkle_4[] = "__OTR__textures/intro_raw/gd_dl_red_sparkle_4"; + +static const ALIGN_ASSET(2) char gd_dl_red_sparkle_4_dup[] = "__OTR__textures/intro_raw/gd_dl_red_sparkle_4_dup"; + +static const ALIGN_ASSET(2) char gd_dl_silver_sparkle_0[] = "__OTR__textures/intro_raw/gd_dl_silver_sparkle_0"; + +static const ALIGN_ASSET(2) char gd_dl_silver_sparkle_1[] = "__OTR__textures/intro_raw/gd_dl_silver_sparkle_1"; + +static const ALIGN_ASSET(2) char gd_dl_silver_sparkle_2[] = "__OTR__textures/intro_raw/gd_dl_silver_sparkle_2"; + +static const ALIGN_ASSET(2) char gd_dl_silver_sparkle_3[] = "__OTR__textures/intro_raw/gd_dl_silver_sparkle_3"; + +static const ALIGN_ASSET(2) char gd_dl_silver_sparkle_4[] = "__OTR__textures/intro_raw/gd_dl_silver_sparkle_4"; + +static const ALIGN_ASSET(2) char gd_dl_silver_sparkle_4_dup[] = "__OTR__textures/intro_raw/gd_dl_silver_sparkle_4_dup"; + +static const char gd_red_sparkle_dl_array[] = "__OTR__textures/intro_raw/gd_red_sparkle_dl_array"; + +static const char gd_silver_sparkle_dl_array[] = "__OTR__textures/intro_raw/gd_silver_sparkle_dl_array"; + static const ALIGN_ASSET(2) char gd_texture_mario_face_shine[] = "__OTR__textures/intro_raw/mario_face_shine"; +static const ALIGN_ASSET(2) char gd_dl_mario_face_shine[] = "__OTR__textures/intro_raw/gd_dl_mario_face_shine"; + +static const ALIGN_ASSET(2) char gd_dl_rsp_init[] = "__OTR__textures/intro_raw/gd_dl_rsp_init"; + +static const ALIGN_ASSET(2) char gd_dl_rdp_init[] = "__OTR__textures/intro_raw/gd_dl_rdp_init"; + +static const ALIGN_ASSET(2) char intro_raw_vtx_265878[] = "__OTR__textures/intro_raw/intro_raw_vtx_265878"; + +static const ALIGN_ASSET(2) char intro_raw_vtx_2658A8[] = "__OTR__textures/intro_raw/intro_raw_vtx_2658A8"; + +static const ALIGN_ASSET(2) char gd_dl_unused_mesh[] = "__OTR__textures/intro_raw/gd_dl_unused_mesh"; + +static const ALIGN_ASSET(2) char gd_dl_sprite_start_tex_block[] = "__OTR__textures/intro_raw/gd_dl_sprite_start_tex_block"; + diff --git a/src/goddard/renderer.c b/src/goddard/renderer.c index dfa5d49e..094e55f4 100644 --- a/src/goddard/renderer.c +++ b/src/goddard/renderer.c @@ -19,6 +19,8 @@ #include "skin.h" #include "types.h" #include "sm64.h" +#include "game/memory.h" +#include "assets/textures/intro_raw.h" #include "port/interpolation/FrameInterpolation.h" #define MAX_GD_DLS 1000 @@ -216,471 +218,12 @@ static struct DynListBankInfo sDynLists[] = { // @ 801A8704 { TABLE_END, NULL } }; -// textures and display list data -UNUSED static Gfx gd_texture1_dummy_aligner1[] = { // @ 801A8728 - gsSPEndDisplayList(), -}; - -ALIGNED8 static Texture gd_texture_hand_open[] = "__OTR__textures/intro_raw/hand_open"; - -UNUSED static Gfx gd_texture2_dummy_aligner1[] = { - gsSPEndDisplayList() -}; - -ALIGNED8 static Texture gd_texture_hand_closed[] = "__OTR__textures/intro_raw/hand_closed"; - -ALIGNED8 static Texture gd_texture_red_star_0[] = "__OTR__textures/intro_raw/red_star_0"; - -ALIGNED8 static Texture gd_texture_red_star_1[] = "__OTR__textures/intro_raw/red_star_1"; - -ALIGNED8 static Texture gd_texture_red_star_2[] = "__OTR__textures/intro_raw/red_star_2"; - -ALIGNED8 static Texture gd_texture_red_star_3[] = "__OTR__textures/intro_raw/red_star_3"; - -ALIGNED8 static Texture gd_texture_red_star_4[] = "__OTR__textures/intro_raw/red_star_4"; - -ALIGNED8 static Texture gd_texture_red_star_5[] = "__OTR__textures/intro_raw/red_star_5"; - -ALIGNED8 static Texture gd_texture_red_star_6[] = "__OTR__textures/intro_raw/red_star_6"; - -ALIGNED8 static Texture gd_texture_red_star_7[] = "__OTR__textures/intro_raw/red_star_7"; - -ALIGNED8 static Texture gd_texture_white_star_0[] = "__OTR__textures/intro_raw/white_star_0"; - -ALIGNED8 static Texture gd_texture_white_star_1[] = "__OTR__textures/intro_raw/white_star_1"; - -ALIGNED8 static Texture gd_texture_white_star_2[] = "__OTR__textures/intro_raw/white_star_2"; - -ALIGNED8 static Texture gd_texture_white_star_3[] = "__OTR__textures/intro_raw/white_star_3"; - -ALIGNED8 static Texture gd_texture_white_star_4[] = "__OTR__textures/intro_raw/white_star_4"; - -ALIGNED8 static Texture gd_texture_white_star_5[] = "__OTR__textures/intro_raw/white_star_5"; - -ALIGNED8 static Texture gd_texture_white_star_6[] = "__OTR__textures/intro_raw/white_star_6"; - -ALIGNED8 static Texture gd_texture_white_star_7[] = "__OTR__textures/intro_raw/white_star_7"; - -static Vtx_t gd_vertex_star[] = { - {{-64, 0, 0}, 0, { 0, 992}, {0x00, 0x00, 0x7F}}, - {{ 64, 0, 0}, 0, {992, 992}, {0x00, 0x00, 0x7F}}, - {{ 64, 128, 0}, 0, {992, 0}, {0x00, 0x00, 0x7F}}, - {{-64, 128, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7F}}, -}; - -//! no references to these vertices -UNUSED static Vtx_t gd_unused_vertex[] = { - {{16384, 0, 0}, 0, {0, 16384}, {0x00, 0x00, 0x00}}, - {{ 0, 0, 16384}, 0, {0, 0}, {0x00, 0x00, 0x40}}, - {{ 0, 0, 0}, 0, {0, 0}, {0x00, 0x00, 0x00}}, - {{ 0, 0, 0}, 0, {0, 0}, {0x00, 0x00, 0x00}}, -}; - -static Gfx gd_dl_star_common[] = { - gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsSPClearGeometryMode(G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, 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_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), - gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPVertex(gd_vertex_star, 4, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_INTER, G_RM_NOOP2), - gsSPEndDisplayList(), -}; - -static Gfx gd_dl_red_star_0[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_0), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_red_star_1[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_1), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_red_star_2[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_2), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_red_star_3[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_3), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_red_star_4[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_4), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_red_star_5[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_5), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_red_star_6[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_6), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_red_star_7[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_red_star_7), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_0[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_0), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_1[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_1), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_2[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_2), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_3[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_3), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_4[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_4), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_5[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_5), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_6[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_6), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx gd_dl_silver_star_7[] = { - gsDPPipeSync(), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_white_star_7), - gsSPBranchList(gd_dl_star_common), -}; - -static Gfx *gd_red_star_dl_array[] = { - gd_dl_red_star_0, - gd_dl_red_star_0, - gd_dl_red_star_1, - gd_dl_red_star_1, - gd_dl_red_star_2, - gd_dl_red_star_2, - gd_dl_red_star_3, - gd_dl_red_star_3, - gd_dl_red_star_4, - gd_dl_red_star_4, - gd_dl_red_star_5, - gd_dl_red_star_5, - gd_dl_red_star_6, - gd_dl_red_star_6, - gd_dl_red_star_7, - gd_dl_red_star_7, -}; - -static Gfx *gd_silver_star_dl_array[] = { - gd_dl_silver_star_0, - gd_dl_silver_star_0, - gd_dl_silver_star_1, - gd_dl_silver_star_1, - gd_dl_silver_star_2, - gd_dl_silver_star_2, - gd_dl_silver_star_3, - gd_dl_silver_star_3, - gd_dl_silver_star_4, - gd_dl_silver_star_4, - gd_dl_silver_star_5, - gd_dl_silver_star_5, - gd_dl_silver_star_6, - gd_dl_silver_star_6, - gd_dl_silver_star_7, - gd_dl_silver_star_7, -}; - -ALIGNED8 static Texture gd_texture_sparkle_0[] = "__OTR__textures/intro_raw/sparkle_0"; - -ALIGNED8 static Texture gd_texture_sparkle_1[] = "__OTR__textures/intro_raw/sparkle_1"; - -ALIGNED8 static Texture gd_texture_sparkle_2[] = "__OTR__textures/intro_raw/sparkle_2"; - -ALIGNED8 static Texture gd_texture_sparkle_3[] = "__OTR__textures/intro_raw/sparkle_3"; - -ALIGNED8 static Texture gd_texture_sparkle_4[] = "__OTR__textures/intro_raw/sparkle_4"; - -static Vtx_t gd_vertex_sparkle[] = { - {{ -32, 0, 0}, 0, { 0, 1984}, { 0x00, 0x00, 0x7F, 0x00}}, - {{ 32, 0, 0}, 0, { 1984, 1984}, { 0x00, 0x00, 0x7F, 0x00}}, - {{ 32, 64, 0}, 0, { 1984, 0}, { 0x00, 0x00, 0x7F, 0x00}}, - {{ -32, 64, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x7F, 0x00}}, -}; - -static Gfx gd_dl_sparkle[] = { - gsDPSetCombineMode(G_CC_MODULATERGBA_PRIM, G_CC_MODULATERGBA_PRIM), - 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, - 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, - 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), - gsSP2Triangles(0, 1, 2, 0x0, 0, 2, 3, 0x0), - gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_INTER, G_RM_NOOP2), - gsSPEndDisplayList(), -}; - -static Gfx gd_dl_sparkle_red_color[] = { - gsDPSetPrimColor(0, 0, 255, 0, 0, 255), - gsSPEndDisplayList(), -}; - -static Gfx gd_dl_sparkle_white_color[] = { - gsDPSetPrimColor(0, 0, 255, 255, 255, 255), - gsSPEndDisplayList(), -}; - -static Gfx gd_dl_red_sparkle_0[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_red_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_0), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_red_sparkle_1[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_red_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_1), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_red_sparkle_2[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_red_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_2), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_red_sparkle_3[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_red_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_3), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_red_sparkle_4[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_red_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_red_sparkle_4_dup[] ={ - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_red_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), // 4 again, correct texture would be 5 - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_silver_sparkle_0[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_white_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_0), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_silver_sparkle_1[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_white_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_1), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_silver_sparkle_2[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_white_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_2), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_silver_sparkle_3[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_white_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_3), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_silver_sparkle_4[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_white_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx gd_dl_silver_sparkle_4_dup[] = { - gsDPPipeSync(), - gsSPDisplayList(gd_dl_sparkle_white_color), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gd_texture_sparkle_4), // 4 again, correct texture would be 5 - gsSPBranchList(gd_dl_sparkle), -}; - -static Gfx *gd_red_sparkle_dl_array[] = { - gd_dl_red_sparkle_4, - gd_dl_red_sparkle_4, - gd_dl_red_sparkle_3, - gd_dl_red_sparkle_3, - gd_dl_red_sparkle_2, - gd_dl_red_sparkle_2, - gd_dl_red_sparkle_1, - gd_dl_red_sparkle_1, - gd_dl_red_sparkle_0, - gd_dl_red_sparkle_0, - gd_dl_red_sparkle_4_dup, - gd_dl_red_sparkle_4_dup, -}; - -static Gfx *gd_silver_sparkle_dl_array[] = { - gd_dl_silver_sparkle_4, - gd_dl_silver_sparkle_4, - gd_dl_silver_sparkle_3, - gd_dl_silver_sparkle_3, - gd_dl_silver_sparkle_2, - gd_dl_silver_sparkle_2, - gd_dl_silver_sparkle_1, - gd_dl_silver_sparkle_1, - gd_dl_silver_sparkle_0, - gd_dl_silver_sparkle_0, - gd_dl_silver_sparkle_4_dup, - gd_dl_silver_sparkle_4_dup, -}; - -UNUSED static Gfx gd_texture3_dummy_aligner1[] = { - gsSPEndDisplayList(), -}; - -ALIGNED8 static Texture gd_texture_mario_face_shine[] = "__OTR__textures/intro_raw/mario_face_shine"; - -static Gfx gd_dl_mario_face_shine[] = { - gsSPSetGeometryMode(G_TEXTURE_GEN), - gsSPTexture(0x07C0, 0x07C0, 0, G_TX_RENDERTILE, G_ON), - 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, - G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPPipeSync(), - gsSPEndDisplayList(), -}; - -static Gfx gd_dl_rsp_init[] = { - gsSPClearGeometryMode(0xFFFFFFFF), - gsSPSetGeometryMode(G_SHADING_SMOOTH | G_SHADE), - gsSPEndDisplayList(), -}; - -static Gfx gd_dl_rdp_init[] = { - gsDPPipeSync(), - gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetTextureLOD(G_TL_TILE), - gsDPSetTextureLUT(G_TT_NONE), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsDPSetTextureConvert(G_TC_FILT), - gsDPSetCombineKey(G_CK_NONE), - gsDPSetAlphaCompare(G_AC_NONE), - gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2), - gsDPNoOp(), - gsDPSetColorDither(G_CD_MAGICSQ), - gsDPPipeSync(), - gsSPEndDisplayList(), -}; - UNUSED static u32 gd_unused_pad1 = 0; float sGdPerspTimer = 1.0; UNUSED static u32 gd_unused_pad2 = 0; -UNUSED static Gfx gd_texture4_dummy_aligner1[] = { - gsDPPipeSync(), - gsSPEndDisplayList(), -}; - -static Vtx_t gd_unused_mesh_vertex_group1[] = { - {{-8, 8, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x00, 0xFF}}, - {{ 8, -2, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x00, 0xFF}}, - {{ 2, -8, 0}, 0, { 0, 0}, { 0x00, 0x00, 0x00, 0xFF}}, -}; - -static Vtx_t gd_unused_mesh_vertex_group2[] = { - {{-6, 6, 0}, 0, { 0, 0}, { 0xFF, 0xFF, 0xFF, 0xFF}}, - {{ 7, -3, 0}, 0, { 0, 0}, { 0xFF, 0x00, 0x00, 0xFF}}, - {{ 3, -7, 0}, 0, { 0, 0}, { 0xFF, 0x00, 0x00, 0xFF}}, -}; - -UNUSED static Gfx gd_dl_unused_mesh[] = { - gsDPPipeSync(), - gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2), - gsSPClearGeometryMode(0xFFFFFFFF), - gsSPSetGeometryMode(G_SHADING_SMOOTH | G_SHADE), - gsDPPipeSync(), - gsSPVertex(gd_unused_mesh_vertex_group1, 3, 0), - gsSP1Triangle(0, 1, 2, 0x0), - gsSPVertex(gd_unused_mesh_vertex_group2, 3, 0), - gsSP1Triangle(0, 1, 2, 0x0), - gsSPEndDisplayList(), -}; - -static Gfx gd_dl_sprite_start_tex_block[] = { - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), - gsDPSetAlphaCompare(G_AC_THRESHOLD), - gsDPSetBlendColor(0, 0, 0, 1), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_NOOP2), - gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsDPSetTextureFilter(G_TF_BILERP), - gsDPSetTexturePersp(G_TP_NONE), - gsSPEndDisplayList(), -}; - // linker (ROM addresses) extern u8 _gd_dynlistsSegmentRomStart[]; extern u8 _gd_dynlistsSegmentRomEnd[]; @@ -1011,28 +554,28 @@ void setup_stars(void) { gShapeRedStar = make_shape(0, "redstar"); gShapeRedStar->dlNums[0] = new_gddl_from(NULL, 0); gShapeRedStar->dlNums[1] = gShapeRedStar->dlNums[0]; - sGdDLArray[gShapeRedStar->dlNums[0]]->dlptr = gd_red_star_dl_array; - sGdDLArray[gShapeRedStar->dlNums[1]]->dlptr = gd_red_star_dl_array; + sGdDLArray[gShapeRedStar->dlNums[0]]->dlptr = segmented_to_virtual(gd_red_star_dl_array); + sGdDLArray[gShapeRedStar->dlNums[1]]->dlptr = segmented_to_virtual(gd_red_star_dl_array); gShapeSilverStar = make_shape(0, "silverstar"); gShapeSilverStar->dlNums[0] = new_gddl_from(NULL, 0); gShapeSilverStar->dlNums[1] = gShapeSilverStar->dlNums[0]; - sGdDLArray[gShapeSilverStar->dlNums[0]]->dlptr = gd_silver_star_dl_array; - sGdDLArray[gShapeSilverStar->dlNums[1]]->dlptr = gd_silver_star_dl_array; + sGdDLArray[gShapeSilverStar->dlNums[0]]->dlptr = segmented_to_virtual(gd_silver_star_dl_array); + sGdDLArray[gShapeSilverStar->dlNums[1]]->dlptr = segmented_to_virtual(gd_silver_star_dl_array); // make_shape names of the dl array they call are misnamed (swapped) // "sspark" calls red sparkles and "rspark" calls silver sparkles gShapeRedSpark = make_shape(0, "sspark"); gShapeRedSpark->dlNums[0] = new_gddl_from(NULL, 0); gShapeRedSpark->dlNums[1] = gShapeRedSpark->dlNums[0]; - sGdDLArray[gShapeRedSpark->dlNums[0]]->dlptr = gd_red_sparkle_dl_array; - sGdDLArray[gShapeRedSpark->dlNums[1]]->dlptr = gd_red_sparkle_dl_array; + sGdDLArray[gShapeRedSpark->dlNums[0]]->dlptr = segmented_to_virtual(gd_red_sparkle_dl_array); + sGdDLArray[gShapeRedSpark->dlNums[1]]->dlptr = segmented_to_virtual(gd_red_sparkle_dl_array); gShapeSilverSpark = make_shape(0, "rspark"); gShapeSilverSpark->dlNums[0] = new_gddl_from(NULL, 0); gShapeSilverSpark->dlNums[1] = gShapeSilverSpark->dlNums[0]; - sGdDLArray[gShapeSilverSpark->dlNums[0]]->dlptr = gd_silver_sparkle_dl_array; - sGdDLArray[gShapeSilverSpark->dlNums[1]]->dlptr = gd_silver_sparkle_dl_array; + sGdDLArray[gShapeSilverSpark->dlNums[0]]->dlptr = segmented_to_virtual(gd_silver_sparkle_dl_array); + sGdDLArray[gShapeSilverSpark->dlNums[1]]->dlptr = segmented_to_virtual(gd_silver_sparkle_dl_array); } /* 24A8D0 -> 24AA40 */ @@ -1470,13 +1013,13 @@ struct GdDisplayList *new_gd_dl(s32 id, s32 gfxs, s32 verts, s32 mtxs, s32 light /* 24BA48 -> 24BABC; not called */ void gd_rsp_init(void) { - gSPDisplayList(next_gfx(), osVirtualToPhysical(&gd_dl_rsp_init)); + gSPDisplayList(next_gfx(), segmented_to_virtual(gd_dl_rsp_init)); gDPPipeSync(next_gfx()); } /* 24BABC -> 24BB30; not called */ void gd_rdp_init(void) { - gSPDisplayList(next_gfx(), osVirtualToPhysical(&gd_dl_rdp_init)); + gSPDisplayList(next_gfx(), segmented_to_virtual(gd_dl_rdp_init)); gDPPipeSync(next_gfx()); } @@ -2274,7 +1817,7 @@ void gddl_is_loading_stub_dl(UNUSED s32 dlLoad) { /* 250B58 -> 250C18 */ void gddl_is_loading_shine_dl(s32 dlLoad) { if (dlLoad) { - gSPDisplayList(next_gfx(), osVirtualToPhysical(&gd_dl_mario_face_shine)); + gSPDisplayList(next_gfx(), segmented_to_virtual(gd_dl_mario_face_shine)); } else { gSPTexture(next_gfx(), 0x8000, 0x8000, 0, G_TX_RENDERTILE, G_OFF); gDPSetCombineMode(next_gfx(), G_CC_SHADE, G_CC_SHADE); @@ -3464,7 +3007,7 @@ void gd_put_sprite(u16 *sprite, s32 x, s32 y, s32 wx, s32 wy) { s32 c; // 5c s32 r; // 58 - gSPDisplayList(next_gfx(), osVirtualToPhysical(gd_dl_sprite_start_tex_block)); + gSPDisplayList(next_gfx(), segmented_to_virtual(gd_dl_sprite_start_tex_block)); for (r = 0; r < wy; r += 32) { for (c = 0; c < wx; c += 32) { gDPLoadTextureBlock(next_gfx(), (r * 32) + sprite + c, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0,