summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt6
-rw-r--r--include/assets/luigi_raceway_data.h8
-rw-r--r--include/assets/rainbow_road_data.h34
-rw-r--r--src/render_objects.c31
-rw-r--r--src/update_objects.c31
-rw-r--r--yamls/us/rainbow_road_data.yml131
6 files changed, 200 insertions, 41 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 120d049bc..2da9881fb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -58,10 +58,8 @@ set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
endif()
-if(NOT EXISTS ${CMAKE_BINARY_DIR}/config.yml)
- execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/config.yml" "${CMAKE_BINARY_DIR}/config.yml")
- execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/yamls/" "${CMAKE_BINARY_DIR}/yamls/")
-endif()
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/config.yml" "${CMAKE_BINARY_DIR}/config.yml")
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/yamls/" "${CMAKE_BINARY_DIR}/yamls/")
if (MSVC)
set(CPP "${CMAKE_C_COMPILER}" "/EP")
diff --git a/include/assets/luigi_raceway_data.h b/include/assets/luigi_raceway_data.h
index dfab48ddf..51b2314ab 100644
--- a/include/assets/luigi_raceway_data.h
+++ b/include/assets/luigi_raceway_data.h
@@ -248,7 +248,7 @@ static const ALIGN_ASSET(2) char d_course_luigi_raceway_unknown_waypoints[] = "_
static const ALIGN_ASSET(2) char d_course_luigi_raceway_track_waypoints[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_track_waypoints";
-static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_vtx_BA90[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_vtx_BA90";
+static const ALIGN_ASSET(2) char d_course_luigi_raceway_basket_model_lod2[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_basket_model_lod2";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_unknown_model1[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_unknown_model1";
@@ -280,14 +280,14 @@ static const ALIGN_ASSET(2) char d_course_luigi_raceway_balloon_basket[] = "__OT
static const ALIGN_ASSET(2) char d_course_luigi_raceway_balloon_rope[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_balloon_rope";
-static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F588[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F588";
-
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F588[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F588";
-static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F630[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F630";
+static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F588[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F588";
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F630[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F630";
+static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F630[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F630";
+
static const ALIGN_ASSET(2) char luigi_raceway_data_seg6_gfx_F640[] = "__OTR__luigi_raceway_data/luigi_raceway_data_seg6_gfx_F640";
static const ALIGN_ASSET(2) char d_course_luigi_raceway_dl_F640[] = "__OTR__luigi_raceway_data/d_course_luigi_raceway_dl_F640";
diff --git a/include/assets/rainbow_road_data.h b/include/assets/rainbow_road_data.h
index 830110eb3..6bfff60e2 100644
--- a/include/assets/rainbow_road_data.h
+++ b/include/assets/rainbow_road_data.h
@@ -190,11 +190,35 @@ static const char* d_course_rainbow_road_static_tluts[] = {
gTLUTRainbowRoadNeonToad,
};
-static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom";
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom1";
-static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario";
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom2[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom2";
-static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo";
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom3[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom3";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom4[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom4";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mushroom5[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mushroom5";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario1";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario2[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario2";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario3[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario3";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario4[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario4";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_mario5[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_mario5";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo1";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo2[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo2";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo3[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo3";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo4[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo4";
+
+static const ALIGN_ASSET(2) char d_course_rainbow_road_neon_boo5[] = "__OTR__rainbow_road_data/d_course_rainbow_road_neon_boo5";
static const ALIGN_ASSET(2) char gTextureRainbowRoadNeonPeach[] = "__OTR__rainbow_road_data/gTextureRainbowRoadNeonPeach";
@@ -220,10 +244,10 @@ static const char* d_course_rainbow_road_static_textures[] = {
gTextureRainbowRoadNeonToad,
};
-static const ALIGN_ASSET(2) char d_course_rainbow_road_light1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_light1";
-
static const ALIGN_ASSET(2) char rainbow_road_data_seg6_lights_12010[] = "__OTR__rainbow_road_data/rainbow_road_data_seg6_lights_12010";
+static const ALIGN_ASSET(2) char d_course_rainbow_road_light1[] = "__OTR__rainbow_road_data/d_course_rainbow_road_light1";
+
static const ALIGN_ASSET(2) char d_course_rainbow_road_sphere[] = "__OTR__rainbow_road_data/d_course_rainbow_road_sphere";
static const ALIGN_ASSET(2) char d_course_rainbow_road_reflection_map_metal[] = "__OTR__rainbow_road_data/d_course_rainbow_road_reflection_map_metal";
diff --git a/src/render_objects.c b/src/render_objects.c
index ee0fa7592..89fad088e 100644
--- a/src/render_objects.c
+++ b/src/render_objects.c
@@ -2081,7 +2081,8 @@ void render_texture_tile_rgba32_block(s16 x, s16 y, u8* texture, u32 width, u32
void render_game_logo(s16 x, s16 y) {
int32_t height = 128;
- int32_t width = ResourceGetTexWidthByName(logo_mario_kart_64) * height / ResourceGetTexHeightByName(logo_mario_kart_64);
+ int32_t width =
+ ResourceGetTexWidthByName(logo_mario_kart_64) * height / ResourceGetTexHeightByName(logo_mario_kart_64);
render_texture_tile_rgba32_block(x, y, logo_mario_kart_64, width, height);
}
@@ -2706,7 +2707,7 @@ void render_digital_speedometer(s32 playerIdx) {
size_t len = (size_t) snprintf(str, sizeof(str), "%.2f", speed);
if (len >= sizeof(str)) {
- printf("[render_objects.c] [render_digital_speedometer] str buffer too small, characters were discarded!\n");
+ printf("[render_objects.c] [render_digital_speedometer] str buffer too small, characters were discarded!\n");
}
text_draw_wide(270, 224, str, 0, 0.5f, 0.5f);
@@ -2747,8 +2748,8 @@ void func_8004EF9C(s32 arg0) {
temp_v0 = CM_GetPropsCourseId(arg0)->Minimap.Width;
temp_t0 = CM_GetPropsCourseId(arg0)->Minimap.Height;
- func_8004D37C(0x00000104, 0x0000003C, CM_GetPropsCourseId(arg0)->Minimap.Texture, 0x000000FF, 0x000000FF, 0x000000FF,
- 0x000000FF, temp_v0, temp_t0, temp_v0, temp_t0);
+ func_8004D37C(0x00000104, 0x0000003C, CM_GetPropsCourseId(arg0)->Minimap.Texture, 0x000000FF, 0x000000FF,
+ 0x000000FF, 0x000000FF, temp_v0, temp_t0, temp_v0, temp_t0);
}
void set_minimap_finishline_position(s32 playerId) {
@@ -2812,7 +2813,7 @@ void draw_minimap_character(s32 arg0, s32 playerId, s32 characterId) {
x = (center - (CM_GetProps()->Minimap.Width / 2)) + CM_GetProps()->Minimap.PlayerX + (s16) (thing0);
y = (CM_GetProps()->Minimap.Pos[arg0].Y - (CM_GetProps()->Minimap.Height / 2)) +
- CM_GetProps()->Minimap.PlayerY + (s16) (thing1);
+ CM_GetProps()->Minimap.PlayerY + (s16) (thing1);
if (characterId != 8) {
if ((gGPCurrentRaceRankByPlayerId[playerId] == 0) && (gModeSelection != 3) && (gModeSelection != 1)) {
func_80046424(x, y, player->rotation[1] + 0x8000, 1.0f,
@@ -2834,7 +2835,6 @@ void draw_minimap_character(s32 arg0, s32 playerId, s32 characterId) {
// @port Resume Interpolation, if interpolated later remove this tag
FrameInterpolation_ShouldInterpolateFrame(true);
-
}
#else
GLOBAL_ASM("asm/non_matchings/render_objects/draw_minimap_character.s")
@@ -3543,7 +3543,6 @@ void func_80051ABC(s16 arg0, s32 arg1) {
func_800519D4(objectIndex, object->unk_09C, arg0 - object->unk_09E);
FrameInterpolation_RecordCloseChild();
-
}
} else {
func_8004B6C4(255, 255, 255);
@@ -4027,6 +4026,14 @@ void func_80055EF4(s32 objectIndex, UNUSED s32 arg1) {
}
}
+Vtx common_vtx_neon[] = {
+ { { { -32, -31, 0 }, 0, { 0, 0 }, { 255, 255, 255, 255 } } },
+ { { { 31, -31, 0 }, 0, { 4032, 0 }, { 255, 255, 255, 255 } } },
+ { { { 31, 31, 0 }, 0, { 4032, 3968 }, { 255, 255, 255, 255 } } },
+ { { { -32, 31, 0 }, 0, { 0, 3968 }, { 255, 255, 255, 255 } } },
+
+};
+
void render_object_neon(s32 cameraId) {
Camera* camera;
s32 objectIndex;
@@ -4040,10 +4047,14 @@ void render_object_neon(s32 cameraId) {
FrameInterpolation_RecordOpenChild(object, TAG_OBJECT((objectIndex << 8) + i));
if ((object->state >= 2) && (is_obj_index_flag_status_inactive(objectIndex, 0x00080000) != 0) &&
(is_object_visible_on_camera(objectIndex, camera, 0x2AABU) != 0)) {
- Vtx* vtx = (Vtx*) LOAD_ASSET(common_vtx_hedgehog);
object->orientation[1] = angle_between_object_camera(objectIndex, camera);
- draw_2d_texture_at(object->pos, object->orientation, object->sizeScaling, (u8*) object->activeTLUT,
- object->activeTexture, vtx, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
+ rsp_set_matrix_transformation(object->pos, object->orientation, object->sizeScaling);
+ gSPDisplayList(gDisplayListHead++, D_0D007D78);
+ gDPLoadTLUT_pal256(gDisplayListHead++, object->activeTLUT);
+ rsp_load_texture(object->activeTexture, 64, 64);
+ gSPVertex(gDisplayListHead++, common_vtx_neon, 4, 0);
+ gSPDisplayList(gDisplayListHead++, common_rectangle_display);
+ gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
}
FrameInterpolation_RecordCloseChild();
}
diff --git a/src/update_objects.c b/src/update_objects.c
index 5b2758466..990646a74 100644
--- a/src/update_objects.c
+++ b/src/update_objects.c
@@ -756,7 +756,10 @@ void update_neon_texture(s32 objectIndex) {
// I have no idea why this typecast works
gObjectList[objectIndex].activeTLUT =
(u8*) ((u32*) gObjectList[objectIndex].tlutList + (gObjectList[objectIndex].textureListIndex * 128));
- gObjectList[objectIndex].activeTexture = gObjectList[objectIndex].textureList;
+ int idx = gObjectList[objectIndex].textureListIndex;
+ char* texture = gObjectList[objectIndex].textureList[idx];
+ gObjectList[objectIndex].activeTexture =
+ gObjectList[objectIndex].textureList[gObjectList[objectIndex].textureListIndex];
}
void func_80073514(s32 objectIndex) {
@@ -3259,10 +3262,10 @@ void verify_probability_table(char* str, const ItemProbabilities* probs, int16_t
getProbabilityArray(probs, itemProbabilities);
size_t count = 0;
for (size_t i = 0; i < ITEM_MAX; i++) {
- //printf("prob %d ", itemProbabilities[i]);
+ // printf("prob %d ", itemProbabilities[i]);
count += itemProbabilities[i];
}
- //printf("\n");
+ // printf("\n");
if (count != 100) {
printf("update_objects.c::verify_probability_table\n %s table for rank %d is imba %d/100\n", str, rank, count);
@@ -3289,7 +3292,7 @@ u8 gen_random_item(s16 rank, s16 option) {
switch (gModeSelection) {
case GRAND_PRIX:
- switch(option) {
+ switch (option) {
case HUMAN_TABLE:
distributionTable = &grandPrixHumanProbabilityTable[rank];
verify_probability_table("Human", distributionTable, rank);
@@ -4099,14 +4102,16 @@ void func_80085BB4(s32 objectIndex) {
object_next_state(objectIndex);
}
-const char* sNeonMushroomList[] = { d_course_rainbow_road_neon_mushroom };
+const char* sNeonMushroomList[] = { d_course_rainbow_road_neon_mushroom1, d_course_rainbow_road_neon_mushroom2,
+ d_course_rainbow_road_neon_mushroom3, d_course_rainbow_road_neon_mushroom4,
+ d_course_rainbow_road_neon_mushroom5 };
void init_obj_neon_mushroom(s32 objectIndex) {
set_obj_origin_pos(objectIndex, xOrientation * -1431.0, 827.0f, -2957.0f);
init_texture_object(objectIndex,
load_lakitu_tlut_x64(d_course_rainbow_road_neon_mushroom_tlut_list,
ARRAY_COUNT(d_course_rainbow_road_neon_mushroom_tlut_list)),
- d_course_rainbow_road_neon_mushroom, 0x40U, (u16) 0x00000040);
+ sNeonMushroomList, 0x40U, (u16) 0x00000040);
func_80085BB4(objectIndex);
}
@@ -4142,14 +4147,16 @@ void func_80085CA0(s32 objectIndex) {
}
}
-const char* sNeonList[] = { d_course_rainbow_road_neon_mario };
+const char* sNeonMarioList[] = { d_course_rainbow_road_neon_mario1, d_course_rainbow_road_neon_mario2,
+ d_course_rainbow_road_neon_mario3, d_course_rainbow_road_neon_mario4,
+ d_course_rainbow_road_neon_mario5 };
void func_80085DB8(s32 objectIndex) {
set_obj_origin_pos(objectIndex, xOrientation * 799.0, 1193.0f, -5891.0f);
init_texture_object(objectIndex,
load_lakitu_tlut_x64(d_course_rainbow_road_neon_mario_tlut_list,
ARRAY_COUNT(d_course_rainbow_road_neon_mario_tlut_list)),
- d_course_rainbow_road_neon_mario, 0x40U, (u16) 0x00000040);
+ sNeonMarioList, 0x40U, (u16) 0x00000040);
func_80085BB4(objectIndex);
}
@@ -4176,14 +4183,16 @@ void func_80085E38(s32 objectIndex) {
}
}
-const char* sNeonBooList[] = { d_course_rainbow_road_neon_boo };
+const char* sNeonBooList[] = { d_course_rainbow_road_neon_boo1, d_course_rainbow_road_neon_boo2,
+ d_course_rainbow_road_neon_boo3, d_course_rainbow_road_neon_boo4,
+ d_course_rainbow_road_neon_boo5 };
void func_80085EF8(s32 objectIndex) {
set_obj_origin_pos(objectIndex, xOrientation * -2013.0, 555.0f, 0.0f);
init_texture_object(objectIndex,
load_lakitu_tlut_x64(d_course_rainbow_road_neon_boo_tlut_list,
ARRAY_COUNT(d_course_rainbow_road_neon_boo_tlut_list)),
- d_course_rainbow_road_neon_boo, 0x40U, (u16) 0x00000040);
+ sNeonBooList, 0x40U, (u16) 0x00000040);
func_80085BB4(objectIndex);
}
@@ -4229,7 +4238,7 @@ void func_80085F74(s32 objectIndex) {
void func_80086074(s32 objectIndex, s32 arg1) {
set_obj_origin_pos(objectIndex, D_800E6734[arg1][0] * xOrientation, D_800E6734[arg1][1], D_800E6734[arg1][2]);
init_texture_object(objectIndex, d_course_rainbow_road_static_tluts[arg1],
- d_course_rainbow_road_static_textures[arg1], 64, 64);
+ &d_course_rainbow_road_static_textures[arg1], 64, 64);
func_80085BB4(objectIndex);
}
#else
diff --git a/yamls/us/rainbow_road_data.yml b/yamls/us/rainbow_road_data.yml
index bf3d46997..cf297cdde 100644
--- a/yamls/us/rainbow_road_data.yml
+++ b/yamls/us/rainbow_road_data.yml
@@ -412,30 +412,141 @@ gTLUTRainbowRoadNeonToad:
height: 16
format: rgba16
ctype: u16
-d_course_rainbow_road_neon_mushroom:
- symbol: d_course_rainbow_road_neon_mushroom
+d_course_rainbow_road_neon_mushroom1:
+ symbol: d_course_rainbow_road_neon_mushroom1
type: texture
offset: 0x8000
width: 64
height: 64
format: ci8
ctype: u8
-d_course_rainbow_road_neon_mario:
- symbol: d_course_rainbow_road_neon_mario
+ tlut_symbol: gTLUTRainbowRoadNeonMushroom1
+d_course_rainbow_road_neon_mushroom2:
+ symbol: d_course_rainbow_road_neon_mushroom2
+ type: texture
+ offset: 0x8000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMushroom2
+d_course_rainbow_road_neon_mushroom3:
+ symbol: d_course_rainbow_road_neon_mushroom3
+ type: texture
+ offset: 0x8000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMushroom3
+d_course_rainbow_road_neon_mushroom4:
+ symbol: d_course_rainbow_road_neon_mushroom4
+ type: texture
+ offset: 0x8000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMushroom4
+d_course_rainbow_road_neon_mushroom5:
+ symbol: d_course_rainbow_road_neon_mushroom5
+ type: texture
+ offset: 0x8000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMushroom5
+d_course_rainbow_road_neon_mario1:
+ symbol: d_course_rainbow_road_neon_mario1
+ type: texture
+ offset: 0x9000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMario1
+d_course_rainbow_road_neon_mario2:
+ symbol: d_course_rainbow_road_neon_mario2
+ type: texture
+ offset: 0x9000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMario2
+d_course_rainbow_road_neon_mario3:
+ symbol: d_course_rainbow_road_neon_mario3
type: texture
offset: 0x9000
width: 64
height: 64
format: ci8
ctype: u8
-d_course_rainbow_road_neon_boo:
- symbol: d_course_rainbow_road_neon_boo
+ tlut_symbol: gTLUTRainbowRoadNeonMario3
+d_course_rainbow_road_neon_mario4:
+ symbol: d_course_rainbow_road_neon_mario4
+ type: texture
+ offset: 0x9000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMario4
+d_course_rainbow_road_neon_mario5:
+ symbol: d_course_rainbow_road_neon_mario5
+ type: texture
+ offset: 0x9000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonMario5
+d_course_rainbow_road_neon_boo1:
+ symbol: d_course_rainbow_road_neon_boo1
+ type: texture
+ offset: 0xA000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonBoo1
+d_course_rainbow_road_neon_boo2:
+ symbol: d_course_rainbow_road_neon_boo2
+ type: texture
+ offset: 0xA000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonBoo2
+d_course_rainbow_road_neon_boo3:
+ symbol: d_course_rainbow_road_neon_boo3
+ type: texture
+ offset: 0xA000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonBoo3
+d_course_rainbow_road_neon_boo4:
+ symbol: d_course_rainbow_road_neon_boo4
+ type: texture
+ offset: 0xA000
+ width: 64
+ height: 64
+ format: ci8
+ ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonBoo4
+d_course_rainbow_road_neon_boo5:
+ symbol: d_course_rainbow_road_neon_boo5
type: texture
offset: 0xA000
width: 64
height: 64
format: ci8
ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonBoo5
gTextureRainbowRoadNeonPeach:
symbol: gTextureRainbowRoadNeonPeach
type: texture
@@ -444,6 +555,7 @@ gTextureRainbowRoadNeonPeach:
height: 64
format: ci8
ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonPeach
gTextureRainbowRoadNeonLuigi:
symbol: gTextureRainbowRoadNeonLuigi
type: texture
@@ -452,6 +564,7 @@ gTextureRainbowRoadNeonLuigi:
height: 64
format: ci8
ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonLuigi
gTextureRainbowRoadNeonDonkeyKong:
symbol: gTextureRainbowRoadNeonDonkeyKong
type: texture
@@ -460,6 +573,7 @@ gTextureRainbowRoadNeonDonkeyKong:
height: 64
format: ci8
ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonDonkeyKong
gTextureRainbowRoadNeonYoshi:
symbol: gTextureRainbowRoadNeonYoshi
type: texture
@@ -468,6 +582,7 @@ gTextureRainbowRoadNeonYoshi:
height: 64
format: ci8
ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonYoshi
gTextureRainbowRoadNeonBowser:
symbol: gTextureRainbowRoadNeonBowser
type: texture
@@ -476,6 +591,7 @@ gTextureRainbowRoadNeonBowser:
height: 64
format: ci8
ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonBowser
gTextureRainbowRoadNeonWario:
symbol: gTextureRainbowRoadNeonWario
type: texture
@@ -484,6 +600,7 @@ gTextureRainbowRoadNeonWario:
height: 64
format: ci8
ctype: u8
+ tlut_symbol: gTLUTRainbowRoadNeonWario
gTextureRainbowRoadNeonToad:
symbol: gTextureRainbowRoadNeonToad
type: texture
@@ -492,7 +609,7 @@ gTextureRainbowRoadNeonToad:
height: 64
format: ci8
ctype: u8
-
+ tlut_symbol: gTLUTRainbowRoadNeonToad
d_course_rainbow_road_light1:
symbol: d_course_rainbow_road_light1
type: lights