Add ymls for Torch code generator (#497)

* Add torch

* update jenkinsfile
This commit is contained in:
MegaMech 2024-04-09 21:29:57 -06:00 committed by GitHub
parent 2b66867af1
commit 3da5a4f343
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
95 changed files with 4794 additions and 9877 deletions

8
.gitignore vendored
View File

@ -45,7 +45,7 @@ doxygen/doxygen/*
docs/html/*
xml/*
/build/*
# decomp permuter
# Decomp permuter
/nonmatchings/*
*.dump
*.mio0
@ -53,6 +53,10 @@ xml/*
*.map
.assets-local.txt
# Torch
include/assets/*
tools/torch/*
# no context header for now, until it's greenlit for the repo
context_gen_header.h
contexts/*
@ -64,6 +68,7 @@ expected/*
# Assets. Generally ignored, but ones with "custom" in the name are fine.
/bin/*
/modding/*
/courses/**/*linkonly*
/textures/**/*.png
/textures/**/*.bin
@ -73,6 +78,7 @@ expected/*
/assets/**/*.mio0
/assets/**/*.raw
/assets/**/*.inc.c
/assets/code/*
/music/**/*.m64
/sound/**/*.m64
/sound/**/*.aiff

1
Jenkinsfile vendored
View File

@ -30,6 +30,7 @@ pipeline {
}
stage('Build U Source') {
steps {
sh 'make assets -j4'
sh 'make -j4 VERSION=us'
}
}

View File

@ -212,7 +212,8 @@ DATA_DIR := data
INCLUDE_DIRS := include
# Directories containing source files
SRC_DIRS := src src/data src/buffers src/racing src/ending src/audio src/debug src/os src/os/math courses
SRC_ASSETS_DIR := assets/code/ceremony_data assets/code/startup_logo assets/code/data_800E45C0 assets/code/data_segment2 assets/code/data_800E8700 assets/code/common_data
SRC_DIRS := src src/data src/buffers src/racing src/ending src/audio src/debug src/os src/os/math courses assets/code/ceremony_data assets/code/startup_logo $(SRC_ASSETS_DIR)
ASM_DIRS := asm asm/os asm/unused $(DATA_DIR) $(DATA_DIR)/sound_data $(DATA_DIR)/karts
@ -223,7 +224,7 @@ TEXTURE_DIRS := textures/common
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) include $(ASM_DIRS) $(TEXTURES_DIR)/raw \
$(TEXTURES_DIR)/standalone $(TEXTURES_DIR)/startup_logo $(TEXTURES_DIR)/crash_screen $(TEXTURES_DIR)/trophy $(TEXTURES_DIR)/courses \
$(TEXTURE_DIRS) $(TEXTURE_DIRS)/tlut $(BIN_DIR))
$(TEXTURE_DIRS) $(TEXTURE_DIRS)/tlut $(BIN_DIR)) assets/course_metadata
# file dependencies generated by splitter
MAKEFILE_SPLIT = Makefile.split
@ -233,7 +234,7 @@ include $(MAKEFILE_SPLIT)
# We filter them out from the regular C_FILES since we don't need nor want the
# UTF-8 versions getting compiled
EUC_JP_FILES := src/ending/credits.c src/code_80005FD0.c src/code_80091750.c
C_FILES := $(filter-out $(EUC_JP_FILES),$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)))
C_FILES := $(filter-out %.inc.c,$(filter-out $(EUC_JP_FILES),$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))))
S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
# Include source files in courses/course_name/files.c but exclude .inc.c files.
COURSE_FILES := $(foreach dir,$(COURSE_DIRS),$(filter-out %.inc.c,$(wildcard $(dir)/*.c)))
@ -355,6 +356,7 @@ BIN2C := $(PYTHON) $(TOOLS_DIR)/bin2c.py
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
ASSET_EXTRACT := $(PYTHON) $(TOOLS_DIR)/new_extract_assets.py
LINKONLY_GENERATOR := $(PYTHON) $(TOOLS_DIR)/linkonly_generator.py
TORCH := tools/torch/torch
EMULATOR = mupen64plus
EMU_FLAGS = --noosd
LOADER = loader64
@ -395,6 +397,12 @@ ifeq ($(COMPARE),1)
@$(SHA1SUM) -c $(TARGET).sha1 > $(NULL_OUT) && $(PRINT) "$(TARGET): $(GREEN)OK$(NO_COL)\n" || ($(PRINT) "$(YELLOW)Building the ROM file has succeeded, but does not match the original ROM.\nThis is expected, and not an error, if you are making modifications.\nTo silence this message, use 'make COMPARE=0.' $(NO_COL)\n" && $(FALSE))
endif
assets:
@echo "Extracting torch assets..."
@$(TORCH) code $(BASEROM) -v
@$(TORCH) header $(BASEROM)
@$(TORCH) modding export $(BASEROM)
doc:
$(PYTHON) $(TOOLS_DIR)/doxygen_symbol_gen.py
doxygen
@ -477,7 +485,7 @@ $(TEXTURE_FILES_TLUT):
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT))), ,$(TEXTURE_FILES_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
# common textures
$(BUILD_DIR)/src/data/common_textures.o: src/data/common_textures.c $(TEXTURE_FILES) $(TEXTURE_FILES_TLUT)
$(BUILD_DIR)/assets/code/common_data/common_data.o: assets/code/common_data/common_data.c $(TEXTURE_FILES) $(TEXTURE_FILES_TLUT)
@$(PRINT) "$(GREEN)Compiling Common Textures: $(BLUE)$@ $(NO_COL)\n"
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(V)$(CC) -c $(CFLAGS) -o $@ $<
@ -622,7 +630,7 @@ endif
# Compile Trophy and Podium Models #
#==============================================================================#
LDFLAGS += -R $(BUILD_DIR)/src/ending/ceremony_data.elf
LDFLAGS += -R $(BUILD_DIR)/assets/code/ceremony_data/ceremony_data.elf
%/ceremony_data.elf: %/ceremony_data.o
$(V)$(LD) -t -e 0 -Ttext=0B000000 -Map $@.map -o $@ $< --no-check-sections
@ -642,7 +650,7 @@ LDFLAGS += -R $(BUILD_DIR)/src/ending/ceremony_data.elf
# Compile Startup Logo #
#==============================================================================#
LDFLAGS += -R $(BUILD_DIR)/src/data/startup_logo.elf
LDFLAGS += -R $(BUILD_DIR)/assets/code/startup_logo/startup_logo.elf
%/startup_logo.elf: %/startup_logo.o
$(V)$(LD) -t -e 0 -Ttext=06000000 -Map $@.map -o $@ $< --no-check-sections
@ -661,19 +669,19 @@ LDFLAGS += -R $(BUILD_DIR)/src/data/startup_logo.elf
# Compile Common Textures #
#==============================================================================#
LDFLAGS += -R $(BUILD_DIR)/src/data/common_textures.elf
LDFLAGS += -R $(BUILD_DIR)/assets/code/common_data/common_data.elf
%/common_textures.elf: %/common_textures.o
%/common_data.elf: %/common_data.o
$(V)$(LD) -t -e 0 -Ttext=0D000000 -Map $@.map -o $@ $< --no-check-sections
%/common_textures.bin: %/common_textures.elf
%/common_data.bin: %/common_data.elf
$(V)$(EXTRACT_DATA_FOR_MIO) $< $@
%/common_textures.mio0: %/common_textures.bin
%/common_data.mio0: %/common_data.bin
@$(PRINT) "$(GREEN)Compressing Common Textures: $(BLUE)$@ $(NO_COL)\n"
$(V)$(MIO0TOOL) -c $< $@
%/common_textures.mio0.s: %/common_textures.mio0
%/common_data.mio0.s: %/common_data.mio0
$(PRINT) ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"$<\"\n\n" > $@
@ -688,7 +696,7 @@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
$(V)$(CPP) $(CPPFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
# Link MK64 ELF file
$(ELF): $(O_FILES) $(COURSE_DATA_TARGETS) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/data/startup_logo.mio0.o $(BUILD_DIR)/src/ending/ceremony_data.mio0.o $(BUILD_DIR)/src/data/common_textures.mio0.o $(COURSE_GEOGRAPHY_TARGETS) undefined_syms.txt
$(ELF): $(O_FILES) $(COURSE_DATA_TARGETS) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/assets/code/startup_logo/startup_logo.mio0.o $(BUILD_DIR)/assets/code/ceremony_data/ceremony_data.mio0.o $(BUILD_DIR)/assets/code/common_data/common_data.mio0.o $(COURSE_GEOGRAPHY_TARGETS) undefined_syms.txt
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
$(V)$(LD) $(LDFLAGS) -o $@
@ -706,7 +714,7 @@ $(BUILD_DIR)/$(TARGET).objdump: $(ELF)
$(OBJDUMP) -D $< > $@
.PHONY: all clean distclean distclean_assets default diff test load
.PHONY: all clean distclean distclean_assets default diff test load assets
# with no prerequisites, .SECONDARY causes no intermediate target to be removed
.SECONDARY:

View File

@ -35,6 +35,10 @@ Game code progress consists of `main`, `ending` and `racing`.
```
git submodule update --init --recursive
```
Extract assets
```
make assets -j
```
```
make -j
```

View File

@ -26,11 +26,11 @@ glabel D_800ECFC8
glabel func_80009B60
/* 00A760 80009B60 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
/* 00A764 80009B64 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
/* 00A768 80009B68 3C01800E */ lui $at, %hi(gKartAICourseMaximumWaypointSeparation)
/* 00A768 80009B68 3C01800E */ lui $at, %hi(gKartAICourseMaximumSeparation)
/* 00A76C 80009B6C 3C0A8016 */ lui $t2, %hi(D_80163100) # $t2, 0x8016
/* 00A770 80009B70 000E7880 */ sll $t7, $t6, 2
/* 00A774 80009B74 002F0821 */ addu $at, $at, $t7
/* 00A778 80009B78 C424CA4C */ lwc1 $f4, %lo(gKartAICourseMaximumWaypointSeparation)($at)
/* 00A778 80009B78 C424CA4C */ lwc1 $f4, %lo(gKartAICourseMaximumSeparation)($at)
/* 00A77C 80009B7C 27BDFF30 */ addiu $sp, $sp, -0xd0
/* 00A780 80009B80 254A3100 */ addiu $t2, %lo(D_80163100) # addiu $t2, $t2, 0x3100
/* 00A784 80009B84 4600218D */ trunc.w.s $f6, $f4
@ -1195,7 +1195,7 @@ glabel func_80009B60
/* 00B854 8000AC54 4600218D */ trunc.w.s $f6, $f4
/* 00B858 8000AC58 44055000 */ mfc1 $a1, $f10
/* 00B85C 8000AC5C 3C0B800E */ lui $t3, %hi(gCurrentCourseId)
/* 00B860 8000AC60 3C03800E */ lui $v1, %hi(D_800DCA20)
/* 00B860 8000AC60 3C03800E */ lui $v1, %hi(gKartAISteeringSensitivity)
/* 00B864 8000AC64 00057C00 */ sll $t7, $a1, 0x10
/* 00B868 8000AC68 44023000 */ mfc1 $v0, $f6
/* 00B86C 8000AC6C 000F6403 */ sra $t4, $t7, 0x10
@ -1223,7 +1223,7 @@ glabel func_80009B60
/* 00B8BC 8000ACBC 000B6040 */ sll $t4, $t3, 1
/* 00B8C0 8000ACC0 006C1821 */ addu $v1, $v1, $t4
/* 00B8C4 8000ACC4 10410006 */ beq $v0, $at, .L8000ACE0
/* 00B8C8 8000ACC8 8463CA20 */ lh $v1, %lo(D_800DCA20)($v1)
/* 00B8C8 8000ACC8 8463CA20 */ lh $v1, %lo(gKartAISteeringSensitivity)($v1)
/* 00B8CC 8000ACCC 24010003 */ li $at, 3
/* 00B8D0 8000ACD0 50410014 */ beql $v0, $at, .L8000AD24
/* 00B8D4 8000ACD4 3C013F00 */ lui $at, 0x3f00

View File

@ -341,8 +341,8 @@ glabel L8009F8B8
/* 0A04FC 8009F8FC 100003F1 */ b .L800A08C4
/* 0A0500 8009F900 AE020000 */ sw $v0, ($s0)
glabel L8009F904
/* 0A0504 8009F904 3C11800E */ lui $s1, %hi(D_800E7574) # $s1, 0x800e
/* 0A0508 8009F908 26317574 */ addiu $s1, %lo(D_800E7574) # addiu $s1, $s1, 0x7574
/* 0A0504 8009F904 3C11800E */ lui $s1, %hi(gCourseNamesDup) # $s1, 0x800e
/* 0A0508 8009F908 26317574 */ addiu $s1, %lo(gCourseNamesDup) # addiu $s1, $s1, 0x7574
/* 0A050C 8009F90C 0C024C0D */ jal get_string_width
/* 0A0510 8009F910 8E240000 */ lw $a0, ($s1)
/* 0A0514 8009F914 244A0005 */ addiu $t2, $v0, 5
@ -1228,13 +1228,13 @@ glabel L800A05C4
/* 0A11D4 800A05D4 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A11D8 800A05D8 44819000 */ mtc1 $at, $f18
/* 0A11DC 800A05DC C6300024 */ lwc1 $f16, 0x24($s1)
/* 0A11E0 800A05E0 3C06800E */ lui $a2, %hi(D_800E7524)
/* 0A11E0 800A05E0 3C06800E */ lui $a2, %hi(gCourseNames)
/* 0A11E4 800A05E4 00194880 */ sll $t1, $t9, 2
/* 0A11E8 800A05E8 00C93021 */ addu $a2, $a2, $t1
/* 0A11EC 800A05EC 8E24000C */ lw $a0, 0xc($s1)
/* 0A11F0 800A05F0 8E250010 */ lw $a1, 0x10($s1)
/* 0A11F4 800A05F4 8E27001C */ lw $a3, 0x1c($s1)
/* 0A11F8 800A05F8 8CC67524 */ lw $a2, %lo(D_800E7524)($a2)
/* 0A11F8 800A05F8 8CC67524 */ lw $a2, %lo(gCourseNames)($a2)
/* 0A11FC 800A05FC E7B20014 */ swc1 $f18, 0x14($sp)
/* 0A1200 800A0600 0C024CC9 */ jal func_80093324
/* 0A1204 800A0604 E7B00010 */ swc1 $f16, 0x10($sp)

View File

@ -488,7 +488,7 @@ glabel L800A23DC
/* 0A3204 800A2604 24010002 */ li $at, 2
.L800A2608:
/* 0A3208 800A2608 80620005 */ lb $v0, 5($v1)
/* 0A320C 800A260C 3C06800E */ lui $a2, %hi(D_800E75C4)
/* 0A320C 800A260C 3C06800E */ lui $a2, %hi(gCourseNamesDup2)
/* 0A3210 800A2610 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A3214 800A2614 04410003 */ bgez $v0, .L800A2624
/* 0A3218 800A2618 00024083 */ sra $t0, $v0, 2
@ -511,7 +511,7 @@ glabel L800A23DC
/* 0A3254 800A2654 000D7080 */ sll $t6, $t5, 2
/* 0A3258 800A2658 00CE3021 */ addu $a2, $a2, $t6
/* 0A325C 800A265C 0C024CC9 */ jal func_80093324
/* 0A3260 800A2660 8CC675C4 */ lw $a2, %lo(D_800E75C4)($a2)
/* 0A3260 800A2660 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A3264 800A2664 24010002 */ li $at, 2
.L800A2668:
/* 0A3268 800A2668 02208025 */ move $s0, $s1
@ -681,7 +681,7 @@ glabel L800A26A8
/* 0A34C0 800A28C0 24010002 */ li $at, 2
.L800A28C4:
/* 0A34C4 800A28C4 80620005 */ lb $v0, 5($v1)
/* 0A34C8 800A28C8 3C06800E */ lui $a2, %hi(D_800E75C4)
/* 0A34C8 800A28C8 3C06800E */ lui $a2, %hi(gCourseNamesDup2)
/* 0A34CC 800A28CC E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A34D0 800A28D0 04410003 */ bgez $v0, .L800A28E0
/* 0A34D4 800A28D4 00026883 */ sra $t5, $v0, 2
@ -704,7 +704,7 @@ glabel L800A26A8
/* 0A3510 800A2910 00085080 */ sll $t2, $t0, 2
/* 0A3514 800A2914 00CA3021 */ addu $a2, $a2, $t2
/* 0A3518 800A2918 0C024CC9 */ jal func_80093324
/* 0A351C 800A291C 8CC675C4 */ lw $a2, %lo(D_800E75C4)($a2)
/* 0A351C 800A291C 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A3520 800A2920 24010002 */ li $at, 2
.L800A2924:
/* 0A3524 800A2924 02208025 */ move $s0, $s1
@ -899,7 +899,7 @@ glabel L800A29D0
/* 0A37DC 800A2BDC 24010002 */ li $at, 2
.L800A2BE0:
/* 0A37E0 800A2BE0 80620005 */ lb $v0, 5($v1)
/* 0A37E4 800A2BE4 3C06800E */ lui $a2, %hi(D_800E75C4)
/* 0A37E4 800A2BE4 3C06800E */ lui $a2, %hi(gCourseNamesDup2)
/* 0A37E8 800A2BE8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A37EC 800A2BEC 04410003 */ bgez $v0, .L800A2BFC
/* 0A37F0 800A2BF0 00026083 */ sra $t4, $v0, 2
@ -922,7 +922,7 @@ glabel L800A29D0
/* 0A382C 800A2C2C 00194080 */ sll $t0, $t9, 2
/* 0A3830 800A2C30 00C83021 */ addu $a2, $a2, $t0
/* 0A3834 800A2C34 0C024CC9 */ jal func_80093324
/* 0A3838 800A2C38 8CC675C4 */ lw $a2, %lo(D_800E75C4)($a2)
/* 0A3838 800A2C38 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A383C 800A2C3C 24010002 */ li $at, 2
.L800A2C40:
/* 0A3840 800A2C40 02208025 */ move $s0, $s1

View File

@ -184,7 +184,6 @@
"bin/gTextureMenu100cc.rgba16.tkmk00": {"meta":{"size":"0x200"}, "offsets": {"us":["0x8080C0", "0x0"]}},
"bin/gTextureMenu150cc.rgba16.tkmk00": {"meta":{"size":"0x200"}, "offsets": {"us":["0x8082C0", "0x0"]}},
"bin/gTextureMenuExtra.rgba16.tkmk00": {"meta":{"size":"0x200"}, "offsets": {"us":["0x8084C0", "0x0"]}},
"bin/gTextureMenuWithoutItem.rgba16.tkmk00": {"meta":{"size":"0x300"}, "offsets": {"us":["0x8086C0", "0x0"]}},
"bin/gTextureMenuWithItem.rgba16.tkmk00": {"meta":{"size":"0x300"}, "offsets": {"us":["0x8089C0", "0x0"]}},
"bin/gTextureMenuBegin.rgba16.tkmk00": {"meta":{"size":"0x200"}, "offsets": {"us":["0x808CC0", "0x0"]}},

30
config.yml Normal file
View File

@ -0,0 +1,30 @@
579c48e211ae952530ffc8738709f078d5dd215e:
name: Mario Kart 64 [US]
path: yamls/us
config:
gbi: F3DEX_MK64
sort: OFFSET
enums:
- include/defines.h
output:
binary: mkcube.otr
headers: include/assets
code: assets/code
metadata: [yamls/courses]
segments:
- 0x000000
- 0x000000
- 0x12AAE0
- 0x000000
- 0x000000
- 0x000000
- 0x825800
- 0x000000
- 0x000000
- 0x88CD70
- 0x729A30
- 0x821D10
- 0x7FA3C0
- 0x132B50
- 0x000000
- 0x145470

View File

@ -1964,7 +1964,7 @@ Gfx d_course_frappe_snowland_dl_33E0[] =
gsSPEndDisplayList(),
};
TrackWaypoint d_course_frappe_unknown_waypoints[] = {
TrackWaypoint d_course_frappe_snowland_unknown_waypoints[] = {
{-4, 0, -259, 0},
{-4, 0, -282, 0},
{-10, 0, -526, 0},
@ -2040,7 +2040,7 @@ TrackWaypoint d_course_frappe_unknown_waypoints[] = {
{-32768, 0, 0, 0},
};
TrackWaypoint d_course_frappe_track_waypoints[] = {
TrackWaypoint d_course_frappe_snowland_track_waypoints[] = {
{-4, 0, -270, 1},
{-4, 0, -290, 1},
{-4, 0, -310, 2},

View File

@ -75,8 +75,8 @@ extern Gfx d_course_frappe_snowland_dl_3198[];
extern Gfx d_course_frappe_snowland_dl_3270[];
extern Gfx d_course_frappe_snowland_dl_3328[];
extern Gfx d_course_frappe_snowland_dl_33E0[];
extern TrackWaypoint d_course_frappe_unknown_waypoints[];
extern TrackWaypoint d_course_frappe_track_waypoints[];
extern TrackWaypoint d_course_frappe_snowland_unknown_waypoints[];
extern TrackWaypoint d_course_frappe_snowland_track_waypoints[];
extern u8 d_course_frappe_snowland_snowman_tlut[];
extern u8 d_course_frappe_snowland_snowman_head[];
extern u8 d_course_frappe_snowland_snowman_body[];

View File

@ -6766,7 +6766,7 @@ Gfx d_course_koopa_troopa_beach_dl_AD40[] =
};
// 0xADE0 path
TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints0[] = {
TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints[] = {
{-34, 0, 103, 0},
{-34, 0, 60, 0},
{-38, 0, -184, 0},
@ -6893,7 +6893,7 @@ TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints1[] = {
{-32768, 0, 0, 0},
};
TrackWaypoint d_course_koopa_troopa_beach_track_waypoints0[] = {
TrackWaypoint d_course_koopa_troopa_beach_track_waypoints[] = {
{-34, 1, 81, 1},
{-34, 1, 61, 1},
{-34, 1, 41, 1},
@ -7505,7 +7505,7 @@ TrackWaypoint d_course_koopa_troopa_beach_track_waypoints0[] = {
{-32768, -32768, -32768, 0},
};
TrackWaypoint d_course_koopa_troopa_beach_track_waypoints1[] = {
TrackWaypoint d_course_koopa_troopa_beach_track_waypoints_2[] = {
{-29, 1, 88, 1},
{-29, 1, 68, 1},
{-29, 1, 48, 1},

View File

@ -306,10 +306,10 @@ extern Gfx d_course_koopa_troopa_beach_dl_AB88[];
extern Gfx d_course_koopa_troopa_beach_dl_AC10[];
extern Gfx d_course_koopa_troopa_beach_dl_AC68[];
extern Gfx d_course_koopa_troopa_beach_dl_AD40[];
extern TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints0[];
extern TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints[];
extern TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints1[];
extern TrackWaypoint d_course_koopa_troopa_beach_track_waypoints0[];
extern TrackWaypoint d_course_koopa_troopa_beach_track_waypoints1[];
extern TrackWaypoint d_course_koopa_troopa_beach_track_waypoints[];
extern TrackWaypoint d_course_koopa_troopa_beach_track_waypoints_2[];
extern u8 d_course_koopa_troopa_beach_crab_tlut[];
extern u8 d_course_koopa_troopa_beach_crab_frames[][4096];
extern u32 d_course_koopa_troopa_beach_unk_data1[];

View File

@ -3017,7 +3017,7 @@ Gfx d_course_sherbet_land_dl_4B20[] =
};
// unk 0x4BF8
TrackWaypoint d_course_sherbet_land_uknown_waypoints[] = {
TrackWaypoint d_course_sherbet_land_unknown_waypoints[] = {
{-10, 0, 10, 0},
{-10, 0, -8, 0},
{-18, 0, -213, 0},

View File

@ -152,7 +152,7 @@ extern Gfx d_course_sherbet_land_dl_4930[];
extern Gfx d_course_sherbet_land_dl_4A20[];
extern Gfx d_course_sherbet_land_dl_4A98[];
extern Gfx d_course_sherbet_land_dl_4B20[];
extern TrackWaypoint d_course_sherbet_land_uknown_waypoints[];
extern TrackWaypoint d_course_sherbet_land_unknown_waypoints[];
extern TrackWaypoint d_course_sherbet_land_track_waypoints[];
extern Vtx d_course_sherbet_land_model1[];
extern Vtx d_course_sherbet_land_model2[];

View File

@ -1,6 +1,6 @@
#include <PR/ultratypes.h>
#include <PR/mbi.h>
#include "common_textures.h"
#include <assets/common_data.h>
#include "course_offsets.h"
#include "course_data.h"

View File

@ -3294,7 +3294,7 @@ TrackWaypoint d_course_wario_stadium_unknown_waypoints[] = {
{-32768, 0, 0, 0},
};
TrackWaypoint d_course_wario_staduim_track_waypoints[] = {
TrackWaypoint d_course_wario_stadium_track_waypoints[] = {
{13, 0, -9, 1},
{11, 0, -28, 1},
{11, 0, -48, 1},

View File

@ -116,7 +116,7 @@ extern Gfx d_course_wario_stadium_dl_5460[];
extern Gfx d_course_wario_stadium_dl_54E8[];
extern Gfx d_course_wario_stadium_dl_5588[];
extern TrackWaypoint d_course_wario_stadium_unknown_waypoints[];
extern TrackWaypoint d_course_wario_staduim_track_waypoints[];
extern TrackWaypoint d_course_wario_stadium_track_waypoints[];
extern Vtx d_course_wario_stadium_sign_head_model1[];
extern Vtx d_course_wario_stadium_sign_head_model2[];
extern Vtx d_course_wario_stadium_sign_head_model3[];

View File

@ -7407,7 +7407,7 @@ Gfx d_course_yoshi_valley_dl_D540[] =
// 0xD780
TrackWaypoint d_course_yoshi_valley_unknown_waypoints0[] = {
TrackWaypoint d_course_yoshi_valley_unknown_waypoints[] = {
{-3, 0, -4, 0},
{-3, 0, -20, 0},
{-3, 0, -261, 0},
@ -7483,7 +7483,7 @@ TrackWaypoint d_course_yoshi_valley_unknown_waypoints0[] = {
{-32768, 0, 0, 0},
};
TrackWaypoint d_course_yoshi_valley_unknown_waypoints1[] = {
TrackWaypoint d_course_yoshi_valley_unknown_waypoints_2[] = {
{-6, 0, -5, 1},
{-6, 0, -21, 1},
{-5, 0, -434, 1},
@ -7560,7 +7560,7 @@ TrackWaypoint d_course_yoshi_valley_unknown_waypoints1[] = {
{-32768, 0, 0, 0},
};
TrackWaypoint d_course_yoshi_valley_unknown_waypoints2[] = {
TrackWaypoint d_course_yoshi_valley_unknown_waypoints_3[] = {
{-3, 0, -3, 4},
{-3, 0, -19, 4},
{0, 0, -268, 4},
@ -7645,7 +7645,7 @@ TrackWaypoint d_course_yoshi_valley_unknown_waypoints2[] = {
{-32768, 0, 0, 0},
};
TrackWaypoint d_course_yoshi_valley_unknown_waypoints3[] = {
TrackWaypoint d_course_yoshi_valley_unknown_waypoints_4[] = {
{-2, 0, -1, 7},
{0, 0, -18, 7},
{-2, 0, -268, 7},
@ -7733,7 +7733,7 @@ TrackWaypoint d_course_yoshi_valley_unknown_waypoints3[] = {
{-32768, 0, 0, 0},
};
TrackWaypoint d_course_yoshi_valley_track_waypoints0[] = {
TrackWaypoint d_course_yoshi_valley_track_waypoints[] = {
{-3, 180, -12, 1},
{-3, 180, -32, 2},
{-3, 180, -52, 2},
@ -8414,7 +8414,7 @@ TrackWaypoint d_course_yoshi_valley_track_waypoints0[] = {
{-32768, -32768, -32768, 0},
};
TrackWaypoint d_course_yoshi_valley_track_waypoints1[] = {
TrackWaypoint d_course_yoshi_valley_track_waypoints_2[] = {
{-6, 180, -13, 1},
{-5, 180, -33, 2},
{-5, 180, -53, 2},
@ -9084,7 +9084,7 @@ TrackWaypoint d_course_yoshi_valley_track_waypoints1[] = {
{-32768, -32768, -32768, 0},
};
TrackWaypoint d_course_yoshi_valley_track_waypoints2[] = {
TrackWaypoint d_course_yoshi_valley_track_waypoints_3[] = {
{-3, 180, -11, 1},
{-2, 180, -31, 2},
{-2, 180, -51, 2},
@ -9766,7 +9766,7 @@ TrackWaypoint d_course_yoshi_valley_track_waypoints2[] = {
{-32768, -32768, -32768, 0},
};
TrackWaypoint d_course_yoshi_valley_track_waypoints3[] = {
TrackWaypoint d_course_yoshi_valley_track_waypoints_4[] = {
{-1, 180, -9, 1},
{0, 180, -29, 2},
{0, 180, -49, 2},

View File

@ -133,14 +133,14 @@ extern Gfx d_course_yoshi_valley_dl_D018[];
extern Gfx d_course_yoshi_valley_dl_D1E8[];
extern Gfx d_course_yoshi_valley_dl_D3D0[];
extern Gfx d_course_yoshi_valley_dl_D540[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints0[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints1[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints2[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints3[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints0[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints1[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints2[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints3[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints_2[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints_3[];
extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints_4[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints_2[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints_3[];
extern TrackWaypoint d_course_yoshi_valley_track_waypoints_4[];
extern Lights1 d_course_yoshi_valley_unknown_light1;
extern Lights1 d_course_yoshi_valley_unknown_light2;
extern Lights1 d_course_yoshi_valley_unknown_light3;

View File

@ -75,11 +75,11 @@
#include "src/code_80091440.h"
#include "src/code_80091750.h"
#include "src/code_800AF9B0.h"
#include "src/common_textures.h"
#include "src/data/data_800E45C0.h"
#include "src/data/data_800E8700.h"
#include <assets/common_data.h>
#include <assets/data_800E45C0.h>
#include <assets/data_800E8700.h>
#include "src/data/some_data.h"
#include "src/data/path_spawn_data.h"
#include "src/data/path_spawn_metadata.h"
#include "src/buffers/trig_tables.h"
#include "src/data_segment2.h"
#include "src/effects.h"

View File

@ -10,9 +10,11 @@ The build system has the following package requirements:
To add submodules run `git submodule update --init --recursive` after cloning.
Run `make assets` to extract assets.
# Linux
```bash
sudo apt install build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev libcapstone-dev
sudo apt install cmake build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev libcapstone-dev
```
### Arch

View File

@ -58,6 +58,6 @@ extern BombKart gBombKarts[NUM_BOMB_KARTS_MAX];
extern Collision D_80164038[NUM_BOMB_KARTS_MAX];
// data/data_0DD0A0_1.s
extern BombKartSpawn D_800DCC08[NUM_COURSES][NUM_BOMB_KARTS_MAX];
extern BombKartSpawn gBombKartSpawns[NUM_COURSES][NUM_BOMB_KARTS_MAX];
#endif

View File

@ -4,6 +4,9 @@
#include "ultra64.h"
typedef f32 Vec3f[3];
typedef f32 Vec4f[4];
typedef s32 Vec3iu[3];
typedef s16 Vec3s[3];
typedef u16 Vec3su[3];

View File

@ -290,7 +290,7 @@
/**
* @brief Item IDs
*/
typedef enum {
typedef enum ITEMS {
/* 0x00 */ ITEM_NONE = 0,
/* 0x01 */ ITEM_BANANA,
/* 0x02 */ ITEM_BANANA_BUNCH,
@ -307,7 +307,22 @@ typedef enum {
/* 0x0D */ ITEM_DOUBLE_MUSHROOM,
/* 0x0E */ ITEM_TRIPLE_MUSHROOM,
/* 0x0F */ ITEM_SUPER_MUSHROOM
} ITEMS;
};
typedef enum KART_AI_BEHAVIOURS {
BEHAVIOUR_NONE = 0,
BEHAVIOUR_1,
BEHAVIOUR_HOP,
BEHAVIOUR_3,
BEHAVIOUR_4,
BEHAVIOUR_5,
BEHAVIOUR_NORMAL_SPEED,
BEHAVIOUR_FAST_SPEED,
BEHAVIOUR_SLOW_SPEED,
BEHAVIOUR_9,
BEHAVIOUR_10,
BEHAVIOUR_MAX_SPEED
};
/**
* @brief Balloon status

View File

@ -52,6 +52,23 @@
#define ALIGNED16
#endif
// Fixed point macros
#define FTOFIX(f) ((s32)((f) * 65536.0))
#define ITOFIX(i) ((s32)((i) << 16))
#define FIXTOF(x) ((double)((x) / 65536.0))
#define FIXTOI(x) ((s32)((x) >> 16))
// Split fixed-point values into its integer or fractional parts.
#define toFixedInt(f) (FTOFIX(f) >> 16)
#define toFrac(f) (FTOFIX(f) & 0xFFFF)
// Setup a fixed-point matrix using floats or doubles. Recommend using doubles for more precision.
#define toFixedPointMatrix(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16) \
{{((toFixedInt(x1)) << 16) | toFixedInt(x2), ((toFixedInt(x3)) << 16) | toFixedInt(x4), (toFixedInt(x5) << 16) | toFixedInt(x6), (toFixedInt(x7) << 16) | toFixedInt(x8)}, \
{((toFixedInt(x9)) << 16) | toFixedInt(x10), ((toFixedInt(x11)) << 16) | toFixedInt(x12), (toFixedInt(x13) << 16) | toFixedInt(x14), (toFixedInt(x15) << 16) | toFixedInt(x16)}, \
{((toFrac(x1)) << 16) | toFrac(x2), ((toFrac(x3)) << 16) | toFrac(x4), (toFrac(x5) << 16) | toFrac(x6), (toFrac(x7) << 16) | toFrac(x8)}, \
{((toFrac(x9)) << 16) | toFrac(x10), ((toFrac(x11)) << 16) | toFrac(x12), (toFrac(x13) << 16) | toFrac(x14), (toFrac(x15) << 16) | toFrac(x16)}}
// convert a virtual address to physical.
#define VIRTUAL_TO_PHYSICAL(addr) ((uintptr_t)(addr) & 0x1FFFFFFF)

View File

@ -5,6 +5,12 @@
#include <common_structs.h>
#include "camera.h"
typedef struct {
/* 0x0 */ s16 waypointStart;
/* 0x2 */ s16 waypointEnd;
/* 0x4 */ s32 type;
} KartAIBehaviour; // size = 0x8
enum SpTaskState {
SPTASK_STATE_NOT_STARTED,
SPTASK_STATE_RUNNING,

14
mk64.ld
View File

@ -216,7 +216,7 @@ SECTIONS
BUILD_DIR/src/profiler.o(.data);
BUILD_DIR/src/crash_screen.o(.data);
BUILD_DIR/src/staff_ghosts.o(.data);
BUILD_DIR/src/data/path_spawn_data.o(.data);
BUILD_DIR/src/data/path_spawn_metadata.o(.data);
BUILD_DIR/src/camera.o(.data);
BUILD_DIR/src/render_player.o(.data);
BUILD_DIR/src/kart_dma.o(.data);
@ -224,7 +224,7 @@ SECTIONS
BUILD_DIR/src/player_controller.o(.data);
BUILD_DIR/src/spawn_players.o(.data);
BUILD_DIR/src/update_objects.o(.data);
BUILD_DIR/src/data/data_800E45C0.o(.data);
BUILD_DIR/assets/code/data_800E45C0/data_800E45C0.o(.data);
BUILD_DIR/src/code_80057C60.o(.data);
BUILD_DIR/src/data/some_data.o(.data);
BUILD_DIR/src/effects.o(.data);
@ -233,7 +233,7 @@ SECTIONS
BUILD_DIR/src/code_800AF9B0.o(.data);
BUILD_DIR/src/menus.o(.data);
BUILD_DIR/src/save.o(.data);
BUILD_DIR/src/data/data_800E8700.o(.data);
BUILD_DIR/assets/code/data_800E8700/data_800E8700.o(.data);
BUILD_DIR/src/audio/synthesis.o(.data);
BUILD_DIR/src/audio/heap.o(.data);
BUILD_DIR/src/audio/load.o(.data);
@ -449,7 +449,7 @@ SECTIONS
BEGIN_SEG(data_segment2, 0x02000000)
{
BUILD_DIR/src/data/textures.o(.data);
BUILD_DIR/src/data/data_segment2.o(.data);
BUILD_DIR/assets/code/data_segment2/data_segment2.o(.data);
}
END_SEG(data_segment2)
@ -457,7 +457,7 @@ SECTIONS
/* common textures, decompressed and set as segment 0x0D */
BEGIN_SEG(common_textures, 0x0D000000)
{
BUILD_DIR/src/data/common_textures.mio0.o(.data);
BUILD_DIR/assets/code/common_data/common_data.mio0.o(.data);
. = ALIGN(0x10);
}
END_SEG(common_textures)
@ -515,14 +515,14 @@ SECTIONS
0x828400 -> 0x8028DE30 (0xD0) */
BEGIN_SEG(ceremonyData, 0x0B000000)
{
BUILD_DIR/src/ending/ceremony_data.mio0.o(.data);
BUILD_DIR/assets/code/ceremony_data/ceremony_data.mio0.o(.data);
. = ALIGN(0x10);
}
END_SEG(ceremonyData)
BEGIN_SEG(startupLogo, 0x06000000)
{
BUILD_DIR/src/data/startup_logo.mio0.o(.data);
BUILD_DIR/assets/code/startup_logo/startup_logo.mio0.o(.data);
. = ALIGN(0x10);
}
END_SEG(startupLogo)

View File

@ -1,7 +1,7 @@
#include <actors.h>
#include <PR/gbi.h>
#include <main.h>
#include "common_textures.h"
#include <assets/common_data.h>
/**
* @brief Renders the green shell actor.

View File

@ -1,7 +1,7 @@
#include <actors.h>
#include <PR/gbi.h>
#include <main.h>
#include <common_textures.h>
#include <assets/common_data.h>
#include "courses/all_course_data.h"
/**

View File

@ -20,7 +20,7 @@
#include "code_80057C60.h"
#include "bomb_kart.h"
#include "courses/all_course_data.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "common_structs.h"
#include "main.h"
#include "menus.h"
@ -29,7 +29,7 @@
#include "ending/podium_ceremony_actors.h"
#include "spawn_players.h"
#include "sounds.h"
#include "data/path_spawn_data.h"
#include "data/path_spawn_metadata.h"
s32 unk_code_80005FD0_pad[24];
Collision D_80162E70;
@ -1683,7 +1683,7 @@ void func_80009B60(s32 playerId) {
f32 athing = 1.5f;
player = &gPlayers[playerId];
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
D_80163100[playerId] += 1;
if (playerId == 0) {
D_80163378++;
@ -1955,7 +1955,7 @@ void func_80009B60(s32 playerId) {
if (var_a2 < (s16) temp_f6) {
var_a2 = temp_f6;
}
var_v1 = D_800DCA20[gCurrentCourseId];
var_v1 = gKartAISteeringSensitivity[gCurrentCourseId];
switch (D_801631D8[playerId]) { /* switch 4; irregular */
case 2: /* switch 4 */
if (D_80163068[playerId] > (0.5f * 1.0f)) {
@ -2194,7 +2194,7 @@ f32 func_8000B874(f32 posX, f32 posZ, u16 waypointIndex, s32 pathIndex) {
void func_8000B95C(s32 playerId, u16 waypointIndex, s32 pathIndex) {
UNUSED Vec3f pad;
D_80163068[playerId] = 0.0f;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
if ((gPlayers[playerId].type & 0x8000) != 0) {
D_80163068[playerId] = func_8000B874(gPlayers[playerId].pos[0], gPlayers[playerId].pos[2], waypointIndex, pathIndex);
}
@ -2947,7 +2947,7 @@ void set_bomb_kart_spawn_positions(void) {
BombKartSpawn *temp_s1;
for (var_s3 = 0; var_s3 < NUM_BOMB_KARTS_VERSUS; var_s3++) {
temp_s1 = &D_800DCC08[gCurrentCourseId][var_s3];
temp_s1 = &gBombKartSpawns[gCurrentCourseId][var_s3];
switch (gCurrentCourseId) {
case COURSE_YOSHI_VALLEY:
startingXPos = temp_s1->startingXPos;
@ -3432,7 +3432,7 @@ void func_8000F2BC(TrackWaypoint *arg0, size_t size) {
// Appears to allocate memory for each course.
void func_8000F2DC(void) {
struct _struct_D_800DD9D0_0x10 *ptr = &D_800DD9D0[gCurrentCourseId];
struct _struct_gCoursePathSizes_0x10 *ptr = &gCoursePathSizes[gCurrentCourseId];
s32 temp;
s32 i;
@ -3553,7 +3553,7 @@ void func_8000F628(void) {
D_80163068[i] = 0.0f;
D_80163090[i] = 0.0f;
var_s5 = &D_801634F8[i];
var_s5->unkC = gKartAICourseMinimumWaypointSeparation[gCurrentCourseId] * (f32) (((i + 1) % 3) - 1);
var_s5->unkC = gKartAICourseMinimumSeparation[gCurrentCourseId] * (f32) (((i + 1) % 3) - 1);
var_s5->unk4 = var_s5->unkC;
var_s5->unk0 = 0.0f;
var_s5->unk8 = 0.015f;
@ -3678,11 +3678,11 @@ void func_800100F0(s32 pathIndex) {
s32 i;
// cast required
if ((s32)gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32)gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
pathDest = D_80164550[pathIndex];
bInvalidPath = 1;
if (gCurrentCourseId != COURSE_AWARD_CEREMONY) {
var_v0 = process_path_data(pathDest, segmented_to_virtual_dupe_2(D_800DC8D0[gCurrentCourseId][pathIndex]));
var_v0 = process_path_data(pathDest, segmented_to_virtual_dupe_2(gCoursePathTable2[gCurrentCourseId][pathIndex]));
gWaypointCountByPathIndex[pathIndex] = (u16) var_v0;
} else {
// Course path included in course_data which has already been loaded into memory.
@ -3729,8 +3729,8 @@ void func_80010218(s32 pathIndex) {
TrackWaypoint *var_s1;
TrackWaypoint *var_s2;
if (((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId]) >= 0) {
waypointWidth = gKartAICourseMaximumWaypointSeparation[gCurrentCourseId];
if (((s32) gKartAICourseMaximumSeparation[gCurrentCourseId]) >= 0) {
waypointWidth = gKartAICourseMaximumSeparation[gCurrentCourseId];
waypoint = &D_80164550[pathIndex][0];
var_s1 = &D_80164560[pathIndex][0];
var_s2 = &D_80164570[pathIndex][0];
@ -3779,7 +3779,7 @@ f32 func_80010480(s32 pathIndex, u16 waypointIndex) {
f32 root2;
f32 root1;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] < 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] < 0) {
return 0.0f;
}
waypointCount = gWaypointCountByPathIndex[pathIndex];
@ -3821,7 +3821,7 @@ void func_800107C4(s32 pathIndex) {
s32 var_a3;
s16 *wut;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
var_a3 = gWaypointCountByPathIndex[pathIndex];
var_t4 = &D_80164580[pathIndex][0];
for(var_s0 = 0; var_s0 < var_a3; var_s0++, var_t4++) {
@ -3889,7 +3889,7 @@ void func_80010DBC(s32 pathIndex) {
s32 waypointIndex;
u16 *angle;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
for (angle = &D_80164590[pathIndex][0], waypointIndex = 0; waypointIndex < gWaypointCountByPathIndex[pathIndex]; waypointIndex++, angle++) {
*angle = func_80010CB0(pathIndex, waypointIndex);
}
@ -4168,7 +4168,7 @@ s32 func_8001168C(PathNoY *pathDest, TrackWaypoint *pathSrc, s32 numWaypoints) {
void copy_courses_kart_ai_behaviour(void) {
s32 i;
for (i = 0; i < NUM_COURSES-1; i++) {
for (i = 0; i < NUM_COURSES - 1; i++) {
gCoursesKartAIBehaviour[i] = segmented_to_virtual_dupe_2(gKartAIBehaviourLUT[i]);
}
}

View File

@ -4,7 +4,7 @@
#include "vehicles.h"
#include "camera.h"
#include "waypoints.h"
#include "common_textures.h"
#include <assets/common_data.h>
struct struct_801642D8 {
/* 0x0 */ u16 unk0;

View File

@ -23,9 +23,9 @@
#include "update_objects.h"
#include "code_80086E70.h"
#include "effects.h"
#include "src/data/data_800E8700.h"
#include <assets/data_800E8700.h>
#include "skybox_and_splitscreen.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "audio/external.h"
#include "objects.h"
#include "bomb_kart.h"

View File

@ -12,7 +12,7 @@
#include "objects.h"
#include "bomb_kart.h"
#include "save.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include <sounds.h>
#include <decode.h>
#include "audio/external.h"

View File

@ -20,13 +20,13 @@
#include "audio/external.h"
#include "render_objects.h"
#include "staff_ghosts.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "textures.h"
#include "math_util.h"
#include "save_data.h"
#include "podium_ceremony_actors.h"
#include "skybox_and_splitscreen.h"
#include "src/data/startup_logo.h"
#include <assets/startup_logo.h>
#include "buffers.h"
#include "racing/race_logic.h"
#include "ending/code_80281C40.h"
@ -393,115 +393,34 @@ char *gCupNames[] = {
"special cup",
};
char *D_800E7524[] = {
"mario raceway",
"choco mountain",
"bowser's castle",
"banshee boardwalk",
"yoshi valley",
"frappe snowland",
"koopa troopa beach",
"royal raceway",
"luigi raceway",
"moo moo farm",
"toad's turnpike",
"kalimari desert",
"sherbet land",
"rainbow road",
"wario stadium",
"block fort",
"skyscraper",
"double deck",
"d.k.'s jungle parkway",
"big donut",
// Displays at beginning of course
char *gCourseNames[] = {
#include "assets/course_metadata/gCourseNames.inc.c"
};
char *D_800E7574[] = {
"mario raceway",
"choco mountain",
"bowser's castle",
"banshee boardwalk",
"yoshi valley",
"frappe snowland",
"koopa troopa beach",
"royal raceway",
"luigi raceway",
"moo moo farm",
"toad's turnpike",
"kalimari desert",
"sherbet land",
"rainbow road",
"wario stadium",
"block fort",
"skyscraper",
"double deck",
"d.k.'s jungle parkway",
"big donut",
char *gCourseNamesDup[] = {
#include "assets/course_metadata/gCourseNames.inc.c"
};
char *D_800E75C4[] = {
"mario raceway",
"choco mountain",
"bowser's castle",
"banshee boardwalk",
"yoshi valley",
"frappe snowland",
"koopa troopa beach",
"royal raceway",
"luigi raceway",
"moo moo farm",
"toad's turnpike",
"kalimari desert",
"sherbet land",
"rainbow road",
"wario stadium",
"block fort",
"skyscraper",
"double deck",
"d.k.'s jungle parkway",
"big donut",
char *gCourseNamesDup2[] = {
#include "assets/course_metadata/gCourseNames.inc.c"
};
// Used in debug menu at splash screen
char *gDebugCourseNames[] = {
"m circuit",
"mountain",
"castle",
"ghost",
"maze",
"snow",
"beach",
"p circuit",
"l circuit",
"farm",
"highway",
"desert",
"sherbet",
"rainbow",
"stadium",
"block",
"skyscraper",
"deck",
"jungle",
"doughnut",
#include "assets/course_metadata/gCourseDebugNames.inc.c"
};
const s8 gPerCupIndexByCourseId[] = {
3, 2, 3, 2,
1, 1, 2, 2,
0, 1, 0, 3,
1, 3, 0, 1,
3, 2, 0, 0,
#include "assets/course_metadata/gPerCupIndexByCourseId.inc.c"
};
// @todo Increase this array for more than eight players
const s8 D_800EFD64[] = { 0, 1, 4, 3, 5, 6, 2, 7 };
// Maps course IDs (as defined in the COURSES enum) to the cup they belong to
s8 gCupSelectionByCourseId[] = {
FLOWER_CUP, FLOWER_CUP, STAR_CUP, SPECIAL_CUP,
SPECIAL_CUP, FLOWER_CUP, MUSHROOM_CUP, STAR_CUP,
MUSHROOM_CUP, MUSHROOM_CUP, FLOWER_CUP, MUSHROOM_CUP,
STAR_CUP, SPECIAL_CUP, STAR_CUP, BATTLE_CUP,
BATTLE_CUP, BATTLE_CUP, SPECIAL_CUP, BATTLE_CUP,
#include "assets/course_metadata/gCupSelectionByCourseId.inc.c"
};
char *D_800E7678[] = {
@ -636,27 +555,8 @@ char D_800E77B4[] = "a BUTTON*SEE DATA B BUTTON*EXIT";
// This is plain data, it should not end up in rodata
char D_800E77D8[] = "distance";
char *D_800E77E4[] = {
"567m",
"687m",
"777m",
"747m",
"772m",
"734m",
"691m",
"1025m",
"717m",
"527m",
"1036m",
"753m",
"756m",
"2000m",
"1591m",
"",
"",
"",
"893m",
"",
char *sCourseLengths[] = {
#include "assets/course_metadata/sCourseLengths.inc.c"
};
char *D_800E7834[] = {
@ -2815,7 +2715,7 @@ void func_80095574(void) {
} else {
debug_print_str2(0x000000AA, 0x00000064, "off");
}
if ((gCurrentCourseId >= 0x14) || (gCurrentCourseId < 0)) {
if ((gCurrentCourseId >= (NUM_COURSES - 1)) || (gCurrentCourseId < 0)) {
gCurrentCourseId = 0;
}
print_str_num(0x00000050, 0x0000006E, "map_number", gCurrentCourseId);
@ -6616,10 +6516,10 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) {
}
break;
case 0x5: /* switch 6 */
var_t0 = (s32) ((f32) (get_string_width(D_800E7574[0]) + 5) * 0.9f) / 2;
var_t0 = (s32) ((f32) (get_string_width(gCourseNamesDup[0]) + 5) * 0.9f) / 2;
gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - var_t0, 0x0000007B, var_t0 + 0xA0, 0x000000A4, 0, 0, 0, 0x00000096);
set_text_color(1);
draw_text(0x0000009B, 0x0000008C, D_800E7574[0], 0, 0.9f, 0.9f);
draw_text(0x0000009B, 0x0000008C, gCourseNamesDup[0], 0, 0.9f, 0.9f);
temp_v1 = func_800B4EB4(0, 7) & 0xFFFFF;
if (temp_v1 < 0x1EAA) {
set_text_color((s32) gGlobalTimer % 2);
@ -6886,7 +6786,7 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) {
break;
case 0x97: /* switch 6 */
set_text_color(5);
func_80093324(arg0->column, arg0->row, D_800E7524[gCurrentCourseId], arg0->unk1C, arg0->unk24, 1.0f);
func_80093324(arg0->column, arg0->row, gCourseNames[gCurrentCourseId], arg0->unk1C, arg0->unk24, 1.0f);
break;
case 0x98: /* switch 6 */
func_800A2D1C(arg0);
@ -7368,10 +7268,10 @@ void func_800A1A20(struct_8018D9E0_entry *arg0) {
courseId = gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4];
arg0->column = 0x14;
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
draw_text(0x69, arg0->row + 0x19, D_800E7574[courseId], 0, 0.75f, 0.75f);
draw_text(0x69, arg0->row + 0x19, gCourseNamesDup[courseId], 0, 0.75f, 0.75f);
set_text_color(TEXT_RED);
func_80093324(0x2D, arg0->row + 0x28, (char *)&D_800E77D8, 0, 0.75f, 0.75f);
func_800936B8(0xA5, arg0->row + 0x28, D_800E77E4[courseId], 1, 0.75f, 0.75f);
func_800936B8(0xA5, arg0->row + 0x28, sCourseLengths[courseId], 1, 0.75f, 0.75f);
set_text_color(TEXT_YELLOW);
func_80093324(0xA0, arg0->row + 0x86, D_800E7728[0], 0, 0.75f, 0.75f);
// Print the 3 Lap Time Trial records
@ -7621,7 +7521,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
} else {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E75C4[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), gCourseNamesDup2[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
}
}
}
@ -7657,7 +7557,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
} else {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E75C4[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), gCourseNamesDup2[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
}
}
}
@ -7705,7 +7605,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
} else {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E75C4[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), gCourseNamesDup2[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
}
}
}
@ -7984,7 +7884,7 @@ void func_800A3C84(struct_8018D9E0_entry *arg0) {
s32 rowOffset;
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
draw_text(arg0->column + 0x43, arg0->row + 0x19, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
draw_text(arg0->column + 0x43, arg0->row + 0x19, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
set_text_color(TEXT_YELLOW);
draw_text(arg0->column + 0x46, arg0->row + 0x28, D_800E7730, 0, 0.75f, 0.75f);
for(recordType = 0, rowOffset = 0; recordType < TIME_TRIAL_3LAP_RECORD_5; recordType += 1, rowOffset += 0xF) {
@ -8019,7 +7919,7 @@ void func_800A3E60(struct_8018D9E0_entry *arg0) {
if (var_v0 == 0x0000001F) return;
set_text_color(4);
draw_text(arg0->column + 0x55, 0x19 - arg0->row, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
draw_text(arg0->column + 0x55, 0x19 - arg0->row, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
set_text_color(3);
draw_text(arg0->column + 0x55, 0x28 - arg0->row, D_800E7730, 0, 0.75f, 0.75f);
for (var_s1 = 0; var_s1 < 4; var_s1++) {
@ -8083,7 +7983,7 @@ void func_800A3E60(struct_8018D9E0_entry *arg0) {
if (D_8018EE10[var_s1].ghostDataSaved == 0) {
func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E7A44, 0, 0.45f, 0.45f);
} else {
func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E75C4[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.45f, 0.45f);
func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), gCourseNamesDup2[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.45f, 0.45f);
}
}
break;
@ -8306,7 +8206,7 @@ void render_pause_menu_time_trials(struct_8018D9E0_entry *arg0) {
gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x0000008C);
set_text_color(TEXT_YELLOW);
draw_text(0x000000A0, 0x00000050, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
draw_text(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
set_text_color(TEXT_RED);
draw_text(0x0000009D, 0x00000060, D_800E7728[0], 0, 0.8f, 0.8f);
temp_a0 = func_800B4E24(TIME_TRIAL_3LAP_RECORD_1);
@ -8390,7 +8290,7 @@ void render_pause_grand_prix(struct_8018D9E0_entry *arg0) {
set_text_color(TEXT_YELLOW);
draw_text(160 + temp_s0, temp_s3->row - 50, D_800E76CC[gCCSelection], 0, 1.0f, 1.0f);
set_text_color(TEXT_YELLOW);
draw_text(160, temp_s3->row - 30, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
draw_text(160, temp_s3->row - 30, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
for (var_s0 = 0; var_s0 < 2; var_s0++) {
text_rainbow_effect(arg0->cursor - 31, var_s0, TEXT_YELLOW);
func_80093324(temp_s3->column, temp_s3->row + (var_s0 * 13), gTextPauseButton[var_s0 * 4], 0, 0.75f, 0.75f);
@ -8499,7 +8399,7 @@ void func_800A5738(struct_8018D9E0_entry *arg0) {
gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, var_s1);
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_s2);
set_text_color(3);
func_80093754(0x000000A0, 0x00000050, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
func_80093754(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
switch (arg0->cursor) { /* switch 1 */
case 1: /* switch 1 */
case 11: /* switch 1 */
@ -8561,7 +8461,7 @@ void func_800A5738(struct_8018D9E0_entry *arg0) {
if (D_8018EE10[var_s1].ghostDataSaved == 0) {
func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E7A44, 0, 0.75f, 0.75f);
} else {
func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E75C4[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.75f, 0.75f);
func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), gCourseNamesDup2[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.75f, 0.75f);
}
}
break;
@ -8630,7 +8530,7 @@ void func_800A6034(struct_8018D9E0_entry *arg0) {
text = gCupNames[D_800DC540];
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2);
func_80093754(arg0->column + 0x41, arg0->row + 0xA0, text, 0, 0.85f, 1.0f);
text = D_800E7524[gCurrentCourseId];
text = gCourseNames[gCurrentCourseId];
set_text_color((s32) gCurrentCourseId % 4);
func_80093754(arg0->column + 0x41, arg0->row + 0xC3, text, 0, 0.65f, 0.85f);
}
@ -11263,7 +11163,7 @@ void func_800ABF68(struct_8018D9E0_entry *arg0) {
case 0:
arg0->column = 0x140;
arg0->cursor = 1;
arg0->unk20 = 0xA0 - (get_string_width(D_800E7524[gCurrentCourseId]) / 2);
arg0->unk20 = 0xA0 - (get_string_width(gCourseNames[gCurrentCourseId]) / 2);
/* fallthrough */
case 1:
func_800A9208(arg0, arg0->unk20);

View File

@ -492,9 +492,9 @@ extern RGBA16 D_800E74D0[];
extern RGBA16 D_800E74E8[];
extern const s16 gGlyphDisplayWidth[];
extern char *gCupNames[];
extern char *D_800E7524[];
extern char *D_800E7574[];
extern char *D_800E75C4[];
extern char *gCourseNames[];
extern char *gCourseNamesDup[];
extern char *gCourseNamesDup2[];
extern char *gDebugCourseNames[];
// Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order
extern const s8 gPerCupIndexByCourseId[]; // D_800EFD50
@ -520,7 +520,7 @@ extern char *D_800E77A0[];
extern char *D_800E77A8[];
extern char D_800E77B4[];
extern char D_800E77D8[];
extern char *D_800E77E4[];
extern char *sCourseLengths[];
extern char *D_800E7834[];
extern char *D_800E7840[];
extern char *D_800E7848[];

View File

@ -1,390 +0,0 @@
#ifndef COMMON_TEXTURES_H
#define COMMON_TEXTURES_H
#include <types.h>
#include <PR/gbi.h>
typedef struct {
/* 0x0 */ s16 waypointStart;
/* 0x2 */ s16 waypointEnd;
/* 0x4 */ s32 type;
} KartAIBehaviour; // size = 0x8
enum {
BEHAVIOUR_NONE = 0,
BEHAVIOUR_1,
BEHAVIOUR_HOP,
BEHAVIOUR_3,
BEHAVIOUR_4,
BEHAVIOUR_5,
BEHAVIOUR_NORMAL_SPEED,
BEHAVIOUR_FAST_SPEED,
BEHAVIOUR_SLOW_SPEED,
BEHAVIOUR_9,
BEHAVIOUR_10,
BEHAVIOUR_MAX_SPEED
};
/** @cond */
extern u8 common_tlut_finish_line_banner[];
extern u8 common_texture_particle_fire[];
extern Vtx D_0D001200[];
extern Vtx D_0D001210[];
extern Vtx D_0D001240[];
extern Vtx D_0D001270[];
extern Vtx D_0D0012A0[];
extern Vtx D_0D0012D0[];
extern Vtx D_0D001300[];
extern Vtx D_0D001330[];
extern Vtx D_0D001360[];
extern Vtx D_0D001390[];
extern Vtx common_vertex_finish_post[];
extern Vtx D_0D001710[];
extern Gfx D_0D001750[];
extern Gfx D_0D001780[];
extern Gfx D_0D001798[];
extern Gfx D_0D0017B0[];
extern Gfx D_0D0017C8[];
extern Gfx D_0D0017E0[];
extern Gfx D_0D0017F8[];
extern Gfx D_0D001810[];
extern Gfx D_0D001828[];
extern Gfx D_0D001840[];
extern Gfx common_model_finish_post[];
extern Gfx D_0D001B68[];
extern Gfx D_0D001B90[];
extern Gfx D_0D001BD8[];
extern Gfx D_0D001C20[];
extern Gfx D_0D001C88[];
extern Vtx D_0D001CE8[];
extern Vtx common_vtx_itembox_question_mark[];
extern Vtx D_0D001D68[];
extern Vtx D_0D001D98[];
extern Vtx D_0D001DC8[];
extern Vtx D_0D001DF8[];
extern Vtx D_0D001E28[];
extern Vtx D_0D001E58[];
extern Vtx D_0D001E88[];
extern Vtx D_0D001EB8[];
extern u8 common_texture_item_box_question_mark[];
extern Gfx D_0D002EE8[];
extern Vtx common_fake_item_box_question_mark_vertices[];
extern Gfx common_model_fake_itembox[];
extern Gfx itemBoxQuestionMarkModel[];
extern Gfx D_0D003090[];
extern Gfx D_0D0030F8[];
extern Gfx D_0D003128[];
extern Gfx D_0D003158[];
extern Gfx D_0D003188[];
extern Gfx D_0D0031B8[];
extern Gfx D_0D0031E8[];
extern Gfx D_0D003218[];
extern Gfx D_0D003248[];
extern Gfx D_0D003278[];
extern Gfx D_0D003288[];
extern Vtx common_vtx_banana[];
extern Vtx common_vtx_flat_banana[];
extern u8 common_texture_banana[];
extern u8 common_texture_flat_banana[];
extern Gfx common_model_banana[];
extern Gfx common_model_flat_banana[];
extern u8 common_tlut_trees_import[];
extern u8 common_tlut_green_shell[];
extern u8 common_tlut_blue_shell[];
extern Vtx D_0D005238[];
extern Vtx D_0D005278[];
extern Gfx D_0D0052B8[];
extern Gfx D_0D005308[];
extern Gfx D_0D005338[];
extern Gfx D_0D005368[];
extern Gfx D_toads_turnpike_0D005398[];
extern Gfx D_toads_turnpike_0D0053B0[];
extern Gfx D_toads_turnpike_0D0053C8[];
extern Gfx D_toads_turnpike_0D0053F0[];
extern Gfx D_toads_turnpike_0D005418[];
extern Vtx D_0D005430[];
extern Vtx common_vtx_player_minimap_icon[];
extern Vtx D_0D0054B0[];
extern Vtx common_vtx_rectangle[];
extern Vtx D_0D0057B0[];
extern Vtx D_0D0057F0[];
extern Vtx D_0D0058E0[];
extern Vtx D_0D005920[];
extern Vtx D_0D005AA0[];
extern Vtx D_0D005AE0[];
extern Vtx D_0D005B20[];
extern Vtx D_0D005B60[];
extern Vtx D_0D005BA0[];
extern Vtx D_0D005BD0[];
extern Vtx D_0D005C00[];
extern Vtx D_0D005C30[];
extern Vtx D_0D005E80[];
extern Vtx D_0D005EB0[];
extern Vtx D_0D005F00[];
extern Vtx D_0D005F30[];
extern Vtx D_0D005F80[];
extern Vtx D_0D005FB0;
extern Vtx D_0D005FC0[];
extern Vtx D_0D005FF0;
extern Vtx D_0D006000[];
extern Vtx D_0D006030[];
extern Vtx D_0D006080[];
extern Vtx D_0D0060B0[];
extern Vtx D_0D006100[];
extern Vtx D_0D006130[];
extern Vtx D_0D006180[];
extern Vtx D_0D0061B0[];
extern Vtx D_0D006280[];
extern Vtx D_0D0062B0[];
extern Vtx D_0D006480[];
extern Vtx D_0D0064B0[];
extern Vtx D_0D006700[];
extern Vtx D_0D006730[];
extern Vtx D_0D0068C0[];
extern Vtx D_0D0068F0[];
extern Gfx D_0D006930[];
extern Gfx common_rectangle_display[];
extern Gfx D_0D006950[];
extern Gfx D_0D006968[];
extern Gfx D_0D006980[];
extern Gfx D_0D006998[];
extern Gfx D_0D0069B0[];
extern Gfx D_0D0069C8[];
extern Gfx D_0D0069E0[];
extern Gfx D_0D0069F8[];
extern Gfx D_0D006A10[];
extern Gfx D_0D006A28[];
extern Gfx D_0D006A40[];
extern u8 D_0D006A58[];
extern u8 D_0D006AD8[];
extern u8 common_tlut_debug_font[];
extern u8 common_texture_debug_font[];
extern Gfx D_0D0076F8[];
extern Gfx D_0D007780[];
extern Gfx D_0D0077A0[];
extern Gfx D_0D0077D0[];
extern Gfx D_0D0077F8[];
extern Gfx D_0D007828[];
extern Gfx D_0D007850[];
extern Gfx D_0D007878[];
extern Gfx D_0D0078A0[];
extern Gfx D_0D0078D0[];
extern Gfx D_0D0078F8[];
extern Gfx D_0D007928[];
extern Gfx D_0D007948[];
extern Gfx D_0D007968[];
extern Gfx D_0D007988[];
extern Gfx D_0D0079A8[];
extern Gfx D_0D0079C8[];
extern Gfx D_0D0079E8[];
extern Gfx D_0D007A08[];
extern Gfx D_0D007A40[];
extern Gfx D_0D007A60[];
extern Gfx D_0D007A80[];
extern Gfx D_0D007AA0[];
extern Gfx D_0D007AC0[];
extern Gfx D_0D007AE0[];
extern Gfx D_0D007B00[];
extern Gfx D_0D007B20[];
extern Gfx D_0D007B98[];
extern Gfx D_0D007C10[];
extern Gfx D_0D007C88[];
extern Gfx D_0D007CB8[];
extern Gfx D_0D007CD8[];
extern Gfx D_0D007CF8[];
extern Gfx D_0D007D18[];
extern Gfx D_0D007D38[];
extern Gfx D_0D007D58[];
extern Gfx D_0D007D78[];
extern Gfx D_0D007D98[];
extern Gfx D_0D007DB8[];
extern Gfx D_0D007DD8[];
extern Gfx D_0D007DF8[];
extern Gfx D_0D007E18[];
extern Gfx D_0D007E38[];
extern Gfx D_0D007E58[];
extern Gfx D_0D007E78[];
extern Gfx D_0D007E98[];
extern Gfx D_0D007EB8[];
extern Gfx D_0D007ED8[];
extern Gfx D_0D007EF8[];
extern Gfx D_0D007F18[];
extern Gfx D_0D007F38[];
extern Gfx D_0D007F58[];
extern Gfx D_0D007F78[];
extern Gfx D_0D007F98[];
extern Gfx D_0D007FB8[];
extern Gfx D_0D007FE0[];
extern Gfx D_0D008000[];
extern Gfx D_0D008020[];
extern Gfx D_0D008040[];
extern Gfx D_0D008060[];
extern Gfx D_0D008080[];
extern Gfx D_0D008108[];
extern Gfx D_0D008120[];
extern Gfx D_0D008138[];
extern u8 common_grand_prix_human_item_curve[][100];
extern u8 common_grand_prix_kart_ai_item_curve[][100];
extern u8 common_versus_2_player_item_curve[][100];
extern u8 common_versus_3_player_item_curve[][100];
extern u8 common_versus_4_player_item_curve[][100];
extern u8 common_battle_item_curve[][100];
extern Vtx D_0D008B78[];
extern Vtx D_0D008BB8[];
extern Vtx D_0D008BF8[];
extern Vtx D_0D008C38[];
extern Gfx common_square_plain_render[];
extern Gfx D_0D008C90[];
extern Gfx common_setting_render_character[];
extern Gfx D_0D008D10[];
extern Gfx D_0D008D58[];
extern Gfx D_0D008DA0[];
extern Gfx D_0D008DB8[];
extern Gfx D_0D008DF8[];
extern Gfx D_0D008E20[];
extern Gfx D_0D008E48[];
extern Gfx D_0D008E70[];
extern Mtx D_0D008E98;
extern Vtx D_0D008ED8[];
extern KartAIBehaviour common_kart_ai_behaviour_battle_courses[];
extern KartAIBehaviour common_kart_ai_behaviour_mario_raceway[];
extern KartAIBehaviour common_kart_ai_behaviour_choco_mountain[];
extern KartAIBehaviour common_kart_ai_behaviour_bowser_castle[];
extern KartAIBehaviour common_kart_ai_behaviour_banshee_boardwalk[];
extern KartAIBehaviour common_kart_ai_behaviour_yoshi_valley[];
extern KartAIBehaviour common_kart_ai_behaviour_frappe_snowland[];
extern KartAIBehaviour common_kart_ai_behaviour_koopa_beach[];
extern KartAIBehaviour common_kart_ai_behaviour_royal_raceway[];
extern KartAIBehaviour common_kart_ai_behaviour_luigi_raceway[];
extern KartAIBehaviour common_kart_ai_behaviour_moo_moo_farm[];
extern KartAIBehaviour common_kart_ai_behaviour_toad_turnpike[];
extern KartAIBehaviour common_kart_ai_behaviour_kalamari_desert[];
extern KartAIBehaviour common_kart_ai_behaviour_sherbet_land[];
extern KartAIBehaviour common_kart_ai_behaviour_rainbow_road[];
extern KartAIBehaviour common_kart_ai_behaviour_wario_stadium[];
extern KartAIBehaviour common_kart_ai_behaviour_dk_jungle[];
extern f32 D_0D009418[][4];
extern f32 D_0D009568[][4];
extern f32 D_0D0096B8[][4];
extern f32 D_0D009808[][4];
extern s32 unkPad;
extern u8 common_texture_speedometer[];
extern u8 common_texture_speedometer_needle[];
extern u8 common_texture_hud_lap[];
extern u8 common_texture_hud_123[];
extern u8 common_texture_hud_lap_time[];
extern u8 common_texture_hud_lap_1_on_3[];
extern u8 common_texture_hud_lap_2_on_3[];
extern u8 common_texture_hud_lap_3_on_3[];
extern u8 common_texture_hud_total_time[];
extern u8 common_texture_hud_time[];
extern u8 common_texture_hud_normal_digit[];
extern u8 common_texture_hud_place[][4096];
extern u8 D_0D00E258[];
extern u8 D_0D00F258[];
extern u8 D_0D010258[];
extern u8 D_0D011258[];
extern u8 D_0D012258[];
extern u8 D_0D013258[];
extern u8 D_0D014258[];
extern u8 D_0D015258[][2048];
extern u8 D_0D015A58[];
extern u8 D_0D016258[];
extern u8 D_0D016A58[];
extern u8 common_tlut_player_emblem[];
extern s16 tlutPad[];
extern u8 common_texture_player_emblem[][2048];
extern u8 common_tlut_hud_type_C_rank_font[];
extern u8 common_texture_hud_type_C_rank_font[][256];
extern u8 common_tlut_hud_type_C_rank_tiny_font[];
extern u8 common_texture_hud_type_C_rank_tiny_font[][64];
extern u8 common_texture_character_portrait_border[];
extern u8 common_tlut_portrait_mario[];
extern u8 common_tlut_portrait_luigi[];
extern u8 common_tlut_portrait_peach[];
extern u8 common_tlut_portrait_toad[];
extern u8 common_tlut_portrait_yoshi[];
extern u8 common_tlut_portrait_donkey_kong[];
extern u8 common_tlut_portrait_wario[];
extern u8 common_tlut_portrait_bowser[];
extern u8 common_tlut_portrait_bomb_kart_and_question_mark[];
extern u8 common_texture_portrait_mario[];
extern u8 common_texture_portrait_luigi[];
extern u8 common_texture_portrait_peach[];
extern u8 common_texture_portrait_toad[];
extern u8 common_texture_portrait_yoshi[];
extern u8 common_texture_portrait_donkey_kong[];
extern u8 common_texture_portrait_wario[];
extern u8 common_texture_portrait_bowser[];
extern u8 common_texture_portrait_bomb_kart[];
extern u8 common_texture_portrait_question_mark[];
extern u8 common_tlut_item_window_none[];
extern u8 common_tlut_item_window_banana[];
extern u8 common_tlut_item_window_banana_bunch[];
extern u8 common_tlut_item_window_mushroom[];
extern u8 common_tlut_item_window_double_mushroom[];
extern u8 common_tlut_item_window_triple_mushroom[];
extern u8 common_tlut_item_window_super_mushroom[];
extern u8 common_tlut_item_window_blue_shell[];
extern u8 common_tlut_item_window_boo[];
extern u8 common_tlut_item_window_green_shell[];
extern u8 common_tlut_item_window_triple_green_shell[];
extern u8 common_tlut_item_window_red_shell[];
extern u8 common_tlut_item_window_triple_red_shell[];
extern u8 common_tlut_item_window_star[];
extern u8 common_tlut_item_window_thunder_bolt[];
extern u8 common_tlut_item_window_fake_item_box[];
extern u8 common_texture_item_window_none[];
extern u8 common_texture_item_window_banana[];
extern u8 common_texture_item_window_banana_bunch[];
extern u8 common_texture_item_window_mushroom[];
extern u8 common_texture_item_window_double_mushroom[];
extern u8 common_texture_item_window_triple_mushroom[];
extern u8 common_texture_item_window_super_mushroom[];
extern u8 common_texture_item_window_blue_shell[];
extern u8 common_texture_item_window_boo[];
extern u8 common_texture_item_window_green_shell[];
extern u8 common_texture_item_window_triple_green_shell[];
extern u8 common_texture_item_window_red_shell[];
extern u8 common_texture_item_window_triple_red_shell[];
extern u8 common_texture_item_window_star[];
extern u8 common_texture_item_window_thunder_bolt[];
extern u8 common_texture_item_window_fake_item_box[];
extern u8 common_tlut_lakitu_countdown[][512];
extern u8 common_tlut_lakitu_checkered_flag[];
extern u8 common_tlut_lakitu_second_lap[];
extern u8 common_tlut_lakitu_final_lap[];
extern u8 common_tlut_lakitu_reverse[];
extern u8 common_tlut_lakitu_fishing[];
extern u8 common_texture_particle_leaf[];
extern u8 common_tlut_traffic_light[];
extern u8 common_texture_traffic_light_01[];
extern u8 common_texture_traffic_light_02[];
extern u8 common_texture_traffic_light_03[];
extern u8 common_texture_traffic_light_04[];
extern u8 common_texture_traffic_light_05[];
extern u8 common_texture_traffic_light_06[];
extern u8 common_texture_traffic_light_07[];
extern u8 common_texture_traffic_light_08[];
extern u8 common_texture_traffic_light_09[];
extern u8 common_texture_traffic_light_10[];
extern u8 common_texture_unused_particle_leaf[];
extern u8 D_0D0293D8[];
extern u8 D_0D029458[];
extern u8 common_texture_bomb[][1024];
extern u8 D_0D029C58[];
extern u8 D_0D02A058[];
extern u8 D_0D02A458[];
extern u8 common_tlut_bomb[];
extern u8 D_0D02AA58[];
extern u8 common_texture_particle_spark[][1024];
extern u8 common_texture_particle_smoke[][1024];
extern u8 common_texture_minimap_finish_line[];
extern u8 common_texture_minimap_kart_character[][128];
extern u8 common_texture_minimap_progress_dot[];
/** @endcond */
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,73 +0,0 @@
#include "data_800E45C0.h"
Lights1 D_800E45C0[] = {
gdSPDefLights1(
0x64, 0x00, 0x00,
0x64, 0x00, 0x00, 0x00, 0x88, 0x00
),
gdSPDefLights1(
0x64, 0x64, 0x00,
0xff, 0xff, 0x00, 0x00, 0x88, 0x00
),
gdSPDefLights1(
0x64, 0x64, 0x64,
0xff, 0xff, 0xff, 0x00, 0x88, 0x00
),
gdSPDefLights1(
0x64, 0x00, 0x00,
0x64, 0x00, 0x00, 0x00, 0x88, 0x00
),
};
Lights1 D_800E4620 = gdSPDefLights1(
0x96, 0xb4, 0xfa,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00
);
Lights1 D_800E4638 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x88, 0x00
);
Lights1 D_800E4650 = gdSPDefLights1(
0x55, 0x55, 0x00,
0xff, 0xff, 0x00, 0x00, 0x78, 0x00
);
Lights1 D_800E4668 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0xbe, 0x52, 0xc9
);
Lights1 D_800E4680 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E4698 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E46B0 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E46C8 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E46E0 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Vec3u32 D_800E46F8[] = {
{0x000000ff, 0x000000ff, 0x000000ff},
{0x000000ff, 0x000000ff, 0x00000000},
{0x000000ff, 0x00000000, 0x00000000},
};
u8 D_800E471C[] = { 0x00, 0x01, 0x02, 0x03, 0x02, 0x01, 0x00 };

View File

@ -1,24 +0,0 @@
#ifndef DATA_800E45C0_H
#define DATA_800E45C0_H
#include <ultra64.h>
typedef u32 Vec3u32[3];
extern Lights1 D_800E45C0[];
extern Lights1 D_800E45D8;
extern Lights1 D_800E45F0;
extern Lights1 D_800E4608;
extern Lights1 D_800E4620;
extern Lights1 D_800E4638;
extern Lights1 D_800E4650;
extern Lights1 D_800E4668;
extern Lights1 D_800E4680;
extern Lights1 D_800E4698;
extern Lights1 D_800E46B0;
extern Lights1 D_800E46C8;
extern Lights1 D_800E46E0;
extern Vec3u32 D_800E46F8[];
extern u8 D_800E471C[];
#endif

View File

@ -1,215 +0,0 @@
#include <ultra64.h>
#include "data_800E8700.h"
Vtx D_800E8700[] = {
{{{ 8, 8, 0}, 0, {960, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 8, -8, 0}, 0, {960, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -8, -8, 0}, 0, {0, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -8, 8, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8740[] = {
{{{ 1, 2, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, -2, 0}, 0, {0, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, -2, 0}, 0, {960, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -1, 2, 0}, 0, {960, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8780[] = {
{{{ 2, 4, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, 0, 0}, 0, {4032, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E87C0[] = {
{{{ 2, 2, 0}, 0, {1984, 0}, {0x00, 0x00, 0x7F, 0xFF}}},
{{{ 2, -2, 0}, 0, {1984, 1984}, {0x00, 0x00, 0x7F, 0xFF}}},
{{{ -2, -2, 0}, 0, {0, 1984}, {0x00, 0x00, 0x7F, 0xFF}}},
{{{ -2, 2, 0}, 0, {0, 0}, {0x00, 0x00, 0x7F, 0xFF}}},
};
Vtx D_800E8800[] = {
{{{ 0, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 0, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, 0, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, 4, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8840[] = {
{{{ 4, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 4, 0, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 0, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 4, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8880[] = {
{{{ 2, 2, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, 0, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 2, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E88C0[] = {
{{{ 2, 0, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, -2, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, -2, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8900[][4] = {
{
{{{ 2, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ 0, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
{
{{{ 0, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ -2, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
{
{{{ 2, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 2, 0, 0}, 0, {1984, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ 0, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
{
{{{ 0, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ -2, 0, 0}, 0, {0, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ -2, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
};
Vtx D_800E8A00[] = {
{{{ 2, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ 0, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8A40[] = {
{{{ 0, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ -2, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8A80[] = {
{{{ 2, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 2, 0, 0}, 0, {1984, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ 0, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8AC0[] = {
{{{ 0, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ -2, 0, 0}, 0, {0, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ -2, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8B00[] = {
{{{ 1, 12, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xF0}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0xFF, 0xF0}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0xFF, 0xF0}}},
{{{ -1, 12, 0}, 0, {1984, 0}, {0xFF, 0xFF, 0xFF, 0xF0}}},
};
Vtx D_800E8B40[] = {
{{{ 2, 1, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, -1, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, -1, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 1, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8B80[] = {
{{{ 4, 1, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 4, -1, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, -1, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 1, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8BC0[] = {
{{{ 0, 1, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, -1, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, -1, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, 1, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8C00[] = {
{{{ 2, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 4, 0}, 0, {1984, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8C40[] = {
{{{ 9, 18, -9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, -9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, -9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 18, -9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 18, 9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, 9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, 9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 18, 9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
};
Vtx D_800E8CC0[] = {
{{{ 9, 70, -9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, -9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, -9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 70, -9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 70, 9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, 9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, 9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 70, 9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
};
Gfx D_800E8D40[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetAlphaCompare(G_AC_NONE),
gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPVertex(D_800E8C40, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(4, 7, 6, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(0, 4, 5, 0),
gsSP1Triangle(0, 5, 1, 0),
gsSP1Triangle(3, 7, 4, 0),
gsSP1Triangle(0, 3, 4, 0),
gsSP1Triangle(7, 3, 6, 0),
gsSP1Triangle(3, 2, 6, 0),
gsSP1Triangle(1, 5, 6, 0),
gsSP1Triangle(2, 1, 6, 0),
gsSPEndDisplayList(),
};
Gfx D_800E8DD0[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetAlphaCompare(G_AC_NONE),
gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPVertex(D_800E8CC0, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(4, 7, 6, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(0, 4, 5, 0),
gsSP1Triangle(0, 5, 1, 0),
gsSP1Triangle(3, 7, 4, 0),
gsSP1Triangle(0, 3, 4, 0),
gsSP1Triangle(7, 3, 6, 0),
gsSP1Triangle(3, 2, 6, 0),
gsSP1Triangle(1, 5, 6, 0),
gsSP1Triangle(2, 1, 6, 0),
gsSPEndDisplayList(),
};

View File

@ -1,29 +0,0 @@
#ifndef DATA_800E8700_H
#define DATA_800E8700_H
#include <ultra64.h>
extern Vtx D_800E8700[];
extern Vtx D_800E8740[];
extern Vtx D_800E8780[];
extern Vtx D_800E87C0[];
extern Vtx D_800E8800[];
extern Vtx D_800E8840[];
extern Vtx D_800E8880[];
extern Vtx D_800E88C0[];
extern Vtx D_800E8900[][4];
extern Vtx D_800E8A00[];
extern Vtx D_800E8A40[];
extern Vtx D_800E8A80[];
extern Vtx D_800E8AC0[];
extern Vtx D_800E8B00[];
extern Vtx D_800E8B40[];
extern Vtx D_800E8B80[];
extern Vtx D_800E8BC0[];
extern Vtx D_800E8C00[];
extern Vtx D_800E8C40[];
extern Vtx D_800E8CC0[];
extern Gfx D_800E8D40[];
extern Gfx D_800E8DD0[];
#endif

View File

@ -3,7 +3,7 @@
#include <PR/ultratypes.h>
#include <PR/gbi.h>
#include "data_segment2.h"
#include "src/data/startup_logo.h"
#include <assets/startup_logo.h>"
Gfx D_02007650[] = {
gsDPPipeSync(),

View File

@ -1,393 +0,0 @@
#include "data/path_spawn_data.h"
#include "courses/all_course_data.h"
#include "ending/ceremony_data.h"
KartAIBehaviour *gKartAIBehaviourLUT[NUM_COURSES+1] = {
common_kart_ai_behaviour_mario_raceway,
common_kart_ai_behaviour_choco_mountain,
common_kart_ai_behaviour_bowser_castle,
common_kart_ai_behaviour_banshee_boardwalk,
common_kart_ai_behaviour_yoshi_valley,
common_kart_ai_behaviour_frappe_snowland,
common_kart_ai_behaviour_koopa_beach,
common_kart_ai_behaviour_royal_raceway,
common_kart_ai_behaviour_luigi_raceway,
common_kart_ai_behaviour_moo_moo_farm,
common_kart_ai_behaviour_toad_turnpike,
common_kart_ai_behaviour_kalamari_desert,
common_kart_ai_behaviour_sherbet_land,
common_kart_ai_behaviour_rainbow_road,
common_kart_ai_behaviour_wario_stadium,
common_kart_ai_behaviour_battle_courses, /* COURSE_BLOCK_FORT */
common_kart_ai_behaviour_battle_courses, /* COURSE_SKYSCRAPER */
common_kart_ai_behaviour_battle_courses, /* COURSE_DOUBLE_DECK */
common_kart_ai_behaviour_dk_jungle,
common_kart_ai_behaviour_battle_courses, /* COURSE_BIG_DONUT */
common_kart_ai_behaviour_battle_courses, /* COURSE_AWARD_CEREMONY */
NULL, /* NUM_COURSES */
};
TrackWaypoint nullPath = { 0x8000, 0x0000, 0x0000, 0x0000 };
TrackWaypoint *gCoursePathTable[][4] = {
{ d_course_mario_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_choco_mountain_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_bowsers_castle_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_banshee_boardwalk_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_yoshi_valley_unknown_waypoints0, d_course_yoshi_valley_unknown_waypoints1, d_course_yoshi_valley_unknown_waypoints2, d_course_yoshi_valley_unknown_waypoints3 },
{ d_course_frappe_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_koopa_troopa_beach_unknown_waypoints0, &nullPath, &nullPath, &nullPath },
{ d_course_royal_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_luigi_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_moo_moo_farm_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_toads_turnpike_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_kalimari_desert_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_sherbet_land_uknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_rainbow_road_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_wario_stadium_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ d_course_dks_jungle_parkway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ ending_sequence, ending_sequence2, ending_sequence3, ending_sequence4 },
};
TrackWaypoint *D_800DC8D0[][4] = {
{ d_course_mario_raceway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_choco_mountain_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_bowsers_castle_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_banshee_boardwalk_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_yoshi_valley_track_waypoints0, d_course_yoshi_valley_track_waypoints1, d_course_yoshi_valley_track_waypoints2, d_course_yoshi_valley_track_waypoints3 },
{ d_course_frappe_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_koopa_troopa_beach_track_waypoints0, d_course_koopa_troopa_beach_track_waypoints1, &nullPath, &nullPath },
{ d_course_royal_raceway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_luigi_raceway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_moo_moo_farm_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_toads_turnpike_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_kalimari_desert_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_sherbet_land_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_rainbow_road_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_wario_staduim_track_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ d_course_dks_jungle_parkway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
};
s16 D_800DCA20[] = {
0x0030, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035,
0x0030, 0x0030, 0x0028, 0x0035, 0x0035, 0x0026, 0x0035, 0x0035,
0x0035, 0x0035, 0x0035, 0x0028, 0x0035, 0x0000,
};
f32 gKartAICourseMaximumWaypointSeparation[] = {
50.0, 35.0, 35.0, 40.0,
35.0, 50.0, 50.0, 50.0,
50.0, 50.0, 50.0, 50.0,
50.0, 50.0, 50.0, -1.0,
-1.0, -1.0, 40.0, -1.0,
40.0,
};
f32 gKartAICourseMinimumWaypointSeparation[] = {
0.3, 0.3, 0.2, 0.4,
0.0, 0.3, 0.5, 0.4,
0.7, 0.5, 0.5, 0.3,
0.3, 0.4, 0.6, 0.1,
0.5, 0.5, 0.1, 0.5,
0.5,
};
// I think the types for D_800DCAF4, D_800DCB34, and D_800DCBB4 are all
// wrong in some way based on their usage in func_800088D8
// But I cannot be bothered to figure it out
s16 D_800DCAF4[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x0032, 0x004b, 0x0064, 0x007d, 0x0096, 0x00af,
0x0028, 0x001e, 0x003c, 0x005a, 0x0078, 0x0096, 0x00b4, 0x00d2,
0x0032, 0x0028, 0x0050, 0x0078, 0x00a0, 0x00c8, 0x00f0, 0x0118,
};
s16 D_800DCB34[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x002d, 0x0041, 0x005a, 0x0073, 0x008c, 0x00a5,
0x0028, 0x0003, 0x0006, 0x0010, 0x002e, 0x0031, 0x003b, 0x0059,
0x0032, 0x001e, 0x003c, 0x003f, 0x0049, 0x004e, 0x006c, 0x008a,
0x000a, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
};
s16 *D_800DCBB4[] = {
D_800DCB34, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4,
};
BombKartSpawn D_800DCC08[][NUM_BOMB_KARTS_MAX] = {
{
// Mario Raceway Bomb Kart spawns
{ 0x0028, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0109, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x011d, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01a4, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Choco Mountain Bomb Kart spawns
{ 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00a5, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x014a, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0226, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0253, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Bowser Castle Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0104, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Banshee Boardwalk Bomb Kart spawns
{ 0x006e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01db, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0262, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Yoshi Valley Bomb Kart spawns
{ 0x0000, 0x0000, 0.8333333, -1533.0, -682.0, -103.0, 0.0 },
{ 0x000a, 0x0000, 0.8333333, -1565.0, -619.0, -109.0, 0.0 },
{ 0x0014, 0x0000, 0.8333333, -1529.0, -579.0, -109.0, 0.0 },
{ 0x001e, 0x0000, 0.8333333, -1588.0, -534.0, -106.0, 0.0 },
{ 0x0028, 0x0000, 0.8333333, -1598.0, -207.0, -105.0, 0.0 },
{ 0x0032, 0x0000, 0.8333333, -1646.0, -147.0, -93.0, 0.0 },
{ 0x003c, 0x0000, 0.8333333, -2532.0, -445.0, -90.0, 0.0 },
},
{
// Frappe Snowland Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0122, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x015e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Koopa Troopa Beach Bomb Kart spawns
{ 0x003c, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0118, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Royal Raceway Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0128, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0190, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x02ea, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Luigi Raceway Bomb Kart spawns
{ 0x0032, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0131, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0203, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Moo Moo Farm Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00e1, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x013c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b2, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Toads Turnpike Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Kalamari Desert Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x008a, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0118, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0194, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01fe, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Sherbet Land Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Rainbow Road Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Wario Stadium Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Block Fort Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// Skyscraper Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// Double Deck Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// DK Jungle Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Big Donut Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// Award Ceremony Bomb Kart spawns
{ 0x0003, 0x0005, 1.250000, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
};
struct _struct_D_800DD9D0_0x10 D_800DD9D0[] = {
{ 0x0258, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x030c, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02b2, 0x02a8, 0x02b2, 0x0320, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02da, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0230, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0226, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x076c, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0640, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0370, 0x0001, 0x0001, 0x0001, 0x01f4, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x0001, { 0x0000, 0x0000, 0x0000}},
};
s32 D_800DDB20 = 0x00000000;
s32 D_800DDB24 = 0x00000001;

View File

@ -1,33 +0,0 @@
#ifndef PATH_SPAWN_DATA_H
#define PATH_SPAWN_DATA_H
#include "waypoints.h"
#include "common_structs.h"
#include "common_textures.h"
#include "include/bomb_kart.h"
struct _struct_D_800DD9D0_0x10 {
/* 0x00 */ u16 unk0;
/* 0x02 */ u16 unk2;
/* 0x04 */ u16 unk4;
/* 0x06 */ u16 unk6;
/* 0x08 */ u16 unk8;
/* 0x0A */ char padA[6];
}; // size 0x10
extern KartAIBehaviour *gKartAIBehaviourLUT[NUM_COURSES+1];
extern TrackWaypoint nullPath;
extern TrackWaypoint *gCoursePathTable[][4];
extern TrackWaypoint *D_800DC8D0[][4];
extern s16 D_800DCA20[];
extern f32 gKartAICourseMaximumWaypointSeparation[];
extern f32 gKartAICourseMinimumWaypointSeparation[];
extern s16 D_800DCAF4[];
extern s16 D_800DCB34[];
extern s16 *D_800DCBB4[];
extern BombKartSpawn D_800DCC08[][NUM_BOMB_KARTS_MAX];
extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[];
extern s32 D_800DDB20;
extern s32 D_800DDB24;
#endif

View File

@ -0,0 +1,73 @@
#include "data/path_spawn_metadata.h"
#include "courses/all_course_data.h"
#include <assets/ceremony_data.h>
// @warning Array contains an extra zero element at the end.
KartAIBehaviour *gKartAIBehaviourLUT[] = {
#include "assets/course_metadata/gKartAIBehaviourLUT.inc.c"
};
TrackWaypoint nullPath = { 0x8000, 0x0000, 0x0000, 0x0000 };
TrackWaypoint *gCoursePathTable[][4] = {
#include "assets/course_metadata/gCoursePathTableUnknown.inc.c"
};
TrackWaypoint *gCoursePathTable2[][4] = {
#include "assets/course_metadata/gCoursePathTable.inc.c"
};
// @warning Array contains an extra zero element at the end.
s16 gKartAISteeringSensitivity[] = {
#include "assets/course_metadata/gCPUSteeringSensitivity.inc.c"
};
// Possibly maximum cpu separation
f32 gKartAICourseMaximumSeparation[] = {
#include "assets/course_metadata/gKartAICourseMaximumSeparation.inc.c"
};
// Possibly minimum cpu separation
f32 gKartAICourseMinimumSeparation[] = {
#include "assets/course_metadata/gKartAICourseMinimumSeparation.inc.c"
};
// I think the types for D_800DCAF4, D_800DCB34, and D_800DCBB4 are all
// wrong in some way based on their usage in func_800088D8
// But I cannot be bothered to figure it out
// Used as a ptr in D_800DCBB4
s16 D_800DCAF4[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x0032, 0x004b, 0x0064, 0x007d, 0x0096, 0x00af,
0x0028, 0x001e, 0x003c, 0x005a, 0x0078, 0x0096, 0x00b4, 0x00d2,
0x0032, 0x0028, 0x0050, 0x0078, 0x00a0, 0x00c8, 0x00f0, 0x0118,
};
// Used as a ptr in D_800DCBB4
s16 D_800DCB34[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x002d, 0x0041, 0x005a, 0x0073, 0x008c, 0x00a5,
0x0028, 0x0003, 0x0006, 0x0010, 0x002e, 0x0031, 0x003b, 0x0059,
0x0032, 0x001e, 0x003c, 0x003f, 0x0049, 0x004e, 0x006c, 0x008a,
0x000a, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
};
s16 *D_800DCBB4[] = {
#include "assets/course_metadata/D_800DCBB4.inc.c"
};
BombKartSpawn gBombKartSpawns[][NUM_BOMB_KARTS_MAX] = {
#include "assets/course_metadata/gBombKartSpawns.inc.c"
};
struct _struct_gCoursePathSizes_0x10 gCoursePathSizes[] = {
#include "assets/course_metadata/gCoursePathSizes.inc.c"
};
s32 D_800DDB20 = 0x00000000;
s32 D_800DDB24 = 0x00000001;

View File

@ -0,0 +1,33 @@
#ifndef PATH_SPAWN_METADATA_H
#define PATH_SPAWN_METADATA_H
#include "waypoints.h"
#include "common_structs.h"
#include <assets/common_data.h>
#include "include/bomb_kart.h"
struct _struct_gCoursePathSizes_0x10 {
/* 0x00 */ u16 unk0;
/* 0x02 */ u16 unk2;
/* 0x04 */ u16 unk4;
/* 0x06 */ u16 unk6;
/* 0x08 */ u16 unk8;
/* 0x0A */ char padA[6];
}; // size 0x10
extern KartAIBehaviour *gKartAIBehaviourLUT[];
extern TrackWaypoint nullPath;
extern TrackWaypoint *gCoursePathTable[][4];
extern TrackWaypoint *gCoursePathTable2[][4];
extern s16 gKartAISteeringSensitivity[];
extern f32 gKartAICourseMaximumSeparation[];
extern f32 gKartAICourseMinimumSeparation[];
extern s16 D_800DCAF4[];
extern s16 D_800DCB34[];
extern s16 *D_800DCBB4[];
extern BombKartSpawn gBombKartSpawns[][NUM_BOMB_KARTS_MAX];
extern struct _struct_gCoursePathSizes_0x10 gCoursePathSizes[];
extern s32 D_800DDB20;
extern s32 D_800DDB24;
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +0,0 @@
#ifndef STARTUP_LOGO_H
#define STARTUP_LOGO_H
extern Vtx startup_logo[];
extern Gfx startup_logo_dl[];
extern Gfx startup_logo_dl2[];
extern Gfx startup_logo_dl3[];
extern Gfx startup_logo_dl4[];
extern Gfx startup_logo_dl5[];
extern Gfx startup_logo_dl6[];
extern Gfx startup_logo_dl7[];
extern Gfx startup_logo_dl8[];
extern Vtx startup_logo2[];
extern Gfx startup_logo_dl9[];
extern Gfx startup_logo_dl10[];
extern Gfx startup_logo_dl11[];
extern Gfx startup_logo_dl12[];
extern Gfx startup_logo_dl13[];
extern Gfx startup_logo_dl14[];
extern Gfx startup_logo_dl15[];
extern Gfx startup_logo_dl16[];
extern Gfx startup_logo_dl17[];
extern Gfx startup_logo_dl18[];
extern Gfx startup_logo_dl19[];
extern Gfx startup_logo_dl20[];
extern u8 reflection_map_gold[2048];
extern Gfx startup_texture_dl1[];
extern Lights1 lights;
extern Gfx startup_texture_dl2[];
extern Gfx startup_texture_dl3[];
extern Gfx startup_texture_dl4[];
#endif

View File

@ -30,7 +30,7 @@
#include <code_80281780.h>
#include <code_80281C40.h>
#include <collision.h>
#include <common_textures.h>
#include <assets/common_data.h>
#include <credits.h>
#include <data_segment2.h>
#include <buffers.h>

File diff suppressed because it is too large Load Diff

View File

@ -1,56 +0,0 @@
#ifndef CEREMONY_DATA_H
#define CEREMONY_DATA_H
#include <types.h>
#include "waypoints.h"
extern Vtx silver_trophy_model[];
extern Gfx silver_trophy_dl[];
extern Gfx silver_trophy_dl2[];
extern Gfx silver_trophy_dl3[];
extern Gfx silver_trophy_dl4[];
extern Gfx silver_trophy_dl5[];
extern Gfx silver_trophy_dl6[];
extern Vtx gold_trophy_model[];
extern u8 reflection_map_brass[];
extern u8 reflection_map_silver[];
extern u8 reflection_map_gold[];
extern Gfx gold_trophy_dl[];
extern Gfx gold_trophy_dl2[];
extern Gfx gold_trophy_dl3[];
extern Gfx gold_trophy_dl4[];
extern Gfx gold_trophy_dl5[];
extern Gfx gold_trophy_dl6[];
extern Gfx gold_trophy_dl7[];
extern Gfx gold_trophy_dl8[];
extern Gfx gold_trophy_dl9[];
extern Gfx gold_trophy_dl10[];
extern Gfx gold_trophy_dl11[];
extern Gfx gold_trophy_dl12[];
extern Gfx gold_trophy_dl13[];
extern Gfx gold_trophy_dl14[];
extern Gfx gold_trophy_dl15[];
extern Lights1 light1;
extern u8 texture_podium1[];
extern Vtx tall_podium_model[];
extern Gfx podium_dl[];
extern Gfx podium_dl2[];
extern Gfx podium_dl3[];
extern Vtx short_podium_model[];
extern Lights1 light2;
extern u8 texture_podium2[];
extern Gfx podium2_dl[];
extern Gfx podium2_dl2[];
extern Gfx podium2_dl3[];
extern Lights1 light3;
extern u8 texture_podium3[];
extern Vtx short_podium_model2[];
extern Gfx podium3_dl[];
extern Gfx podium3_dl2[];
extern Gfx podium3_dl3[];
extern TrackWaypoint ending_sequence[];
extern TrackWaypoint ending_sequence2[];
extern TrackWaypoint ending_sequence3[];
extern TrackWaypoint ending_sequence4[];
#endif

View File

@ -7,7 +7,7 @@
#include <common_structs.h>
#include "main.h"
#include "memory.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "render_player.h"
#include "render_objects.h"
#include "podium_ceremony_actors.h"

View File

@ -1047,7 +1047,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
{
if (btnAndStick & R_JPAD) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (gCurrentCourseId < 0x13) {
if (gCurrentCourseId < (NUM_COURSES - 2)) {
gCurrentCourseId += 1;
} else {
gCurrentCourseId = 0;
@ -1058,7 +1058,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
if (gCurrentCourseId > 0) {
gCurrentCourseId -= 1;
} else {
gCurrentCourseId = 0x13;
gCurrentCourseId = (NUM_COURSES - 2);
}
}
if (btnAndStick & U_JPAD) {

View File

@ -21,7 +21,7 @@
#include "effects.h"
#include "collision.h"
#include "audio/external.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "courses/all_course_data.h"
#include "main.h"
#include "data/other_textures.h"

View File

@ -16,6 +16,7 @@
// Here to appease the pragma gods
double fabs(double x);
void func_802B5794(Mat4, Vec3f, Vec3f);
s32 func_802B4F60(s32, Vec3f, s32, f32, f32);
s32 render_set_position(Mat4, s32);
f32 func_802B51E8(Vec3f, Vec3f);

View File

@ -9,7 +9,7 @@
#include <common_structs.h>
#include "memory.h"
#include "camera.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "render_player.h"
#include "code_80057C60.h"
#include "code_80091750.h"
@ -318,52 +318,37 @@ s32 D_802B8A90[] = {
0xba001402, 0x00000000, 0xb8000000, 0x00000000,
};
struct Skybox sSkyColors[21] = {
{128, 4280, 6136, 216, 7144, 32248},
{255, 255, 255, 255, 255, 255},
{48, 1544, 49528, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{113, 70, 255, 255, 184, 99},
{28, 11, 90, 0, 99, 164},
{48, 1688, 54136, 216, 7144, 32248},
{238, 144, 255, 255, 224, 240},
{128, 4280, 6136, 216, 7144, 32248},
{0, 18, 255, 197, 211, 255},
{0, 2, 94, 209, 65, 23},
{195, 231, 255, 255, 0xc0, 0},
{128, 4280, 6136, 216, 7144, 32248},
{0, 0, 0, 0, 0, 0},
{20, 30, 56, 40, 60, 110},
{128, 4280, 6136, 216, 7144, 32248},
{0, 0, 0, 0, 0, 0},
{113, 70, 255, 255, 184, 99},
{255, 174, 0, 255, 229, 124},
{0, 0, 0, 0, 0, 0},
{238, 144, 255, 255, 224, 240},
struct Skybox sSkyColors[] = {
#include "assets/course_metadata/sSkyColors.inc.c"
};
struct Skybox D_802B8BCC[21] = {
{0, 0, 0, 0, 0, 0},
{255, 255, 255, 255, 255, 255},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{95, 40, 15, 0, 0, 0},
{0, 99, 164, 0, 0, 0},
{48, 1688, 54136, 0, 0, 0},
{255, 224, 240, 0, 0, 0},
{216, 7144, 32248, 0, 0, 0},
{255, 184, 99, 0, 0, 0},
{209, 65, 23, 0, 0, 0},
{255, 192, 0, 0, 0, 0},
{216, 7144, 32248, 128, 4280, 6136},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{216, 7144, 32248, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{255, 224, 240, 0, 0, 0},
{22, 145, 22, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{255, 224, 240, 0, 0, 0},
// struct Skybox sSkyColors[] = {
// {128, 4280, 6136, 216, 7144, 32248},
// {255, 255, 255, 255, 255, 255},
// {48, 1544, 49528, 0, 0, 0},
// {0, 0, 0, 0, 0, 0},
// {113, 70, 255, 255, 184, 99},
// {28, 11, 90, 0, 99, 164},
// {48, 1688, 54136, 216, 7144, 32248},
// {238, 144, 255, 255, 224, 240},
// {128, 4280, 6136, 216, 7144, 32248},
// {0, 18, 255, 197, 211, 255},
// {0, 2, 94, 209, 65, 23},
// {195, 231, 255, 255, 0xc0, 0},
// {128, 4280, 6136, 216, 7144, 32248},
// {0, 0, 0, 0, 0, 0},
// {20, 30, 56, 40, 60, 110},
// {128, 4280, 6136, 216, 7144, 32248},
// {0, 0, 0, 0, 0, 0},
// {113, 70, 255, 255, 184, 99},
// {255, 174, 0, 255, 229, 124},
// {0, 0, 0, 0, 0, 0},
// {238, 144, 255, 255, 224, 240},
// };
struct Skybox sSkyColors2[] = {
#include "assets/course_metadata/sSkyColors2.inc.c"
};
void func_802A450C(Vtx *skybox) {
@ -415,18 +400,18 @@ void func_802A450C(Vtx *skybox) {
skybox[3].v.cn[0] = sSkyColors[gCurrentCourseId].unk0;
skybox[3].v.cn[1] = sSkyColors[gCurrentCourseId].unk2;
skybox[3].v.cn[2] = sSkyColors[gCurrentCourseId].unk4;
skybox[4].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk0;
skybox[4].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk2;
skybox[4].v.cn[2] = D_802B8BCC[gCurrentCourseId].unk4;
skybox[5].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk6;
skybox[5].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk8;
skybox[5].v.cn[2] = D_802B8BCC[gCurrentCourseId].unkA;
skybox[6].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk6;
skybox[6].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk8;
skybox[6].v.cn[2] = D_802B8BCC[gCurrentCourseId].unkA;
skybox[7].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk0;
skybox[7].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk2;
skybox[7].v.cn[2] = D_802B8BCC[gCurrentCourseId].unk4;
skybox[4].v.cn[0] = sSkyColors2[gCurrentCourseId].unk0;
skybox[4].v.cn[1] = sSkyColors2[gCurrentCourseId].unk2;
skybox[4].v.cn[2] = sSkyColors2[gCurrentCourseId].unk4;
skybox[5].v.cn[0] = sSkyColors2[gCurrentCourseId].unk6;
skybox[5].v.cn[1] = sSkyColors2[gCurrentCourseId].unk8;
skybox[5].v.cn[2] = sSkyColors2[gCurrentCourseId].unkA;
skybox[6].v.cn[0] = sSkyColors2[gCurrentCourseId].unk6;
skybox[6].v.cn[1] = sSkyColors2[gCurrentCourseId].unk8;
skybox[6].v.cn[2] = sSkyColors2[gCurrentCourseId].unkA;
skybox[7].v.cn[0] = sSkyColors2[gCurrentCourseId].unk0;
skybox[7].v.cn[1] = sSkyColors2[gCurrentCourseId].unk2;
skybox[7].v.cn[2] = sSkyColors2[gCurrentCourseId].unk4;
}
void func_802A487C(Vtx *arg0, UNUSED struct UnkStruct_800DC5EC *arg1, UNUSED s32 arg2, UNUSED s32 arg3, UNUSED f32 *arg4) {
@ -831,7 +816,11 @@ void render_player_one_2p_screen_vertical(void) {
UNUSED s32 pad[2];
u16 perspNorm;
Mat4 matrix;
#ifdef VERSION_EU
f32 sp9C;
#else
UNUSED f32 sp9C;
#endif
func_802A50EC();
#ifdef VERSION_EU
@ -888,7 +877,11 @@ void render_player_two_2p_screen_vertical(void) {
UNUSED s32 pad[2];
u16 perspNorm;
Mat4 matrix;
#ifdef VERSION_EU
f32 sp9C;
#else
UNUSED f32 sp9C;
#endif
func_802A5004();
init_rdp();

View File

@ -16,7 +16,7 @@
#include "objects.h"
#include "waypoints.h"
#include "bomb_kart.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "render_player.h"
#include "code_80004740.h"
#include "code_80005FD0.h"
@ -30,7 +30,7 @@
#include "menus.h"
#include "code_80086E70.h"
#include "code_800029B0.h"
#include "src/data/data_800E45C0.h"
#include <assets/data_800E45C0.h>
#include "courses/all_course_data.h"
#include <vehicles.h>
#include "data/some_data.h"

View File

@ -17,7 +17,7 @@
#include "waypoints.h"
#include "player_controller.h"
#include "render_objects.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "skybox_and_splitscreen.h"
#include "spawn_players.h"
@ -705,44 +705,67 @@ void mtxf_scale2(Mat4 arg0, f32 scale) {
arg0[2][2] *= scale;
}
UNUSED void func_80021FF8(Mtx *arg0, Mat4 arg1) {
f32 someMultiplier = 65536.0f;
arg0->m[0][0] = arg1[0][0] * someMultiplier;
arg0->m[0][1] = arg1[0][1] * someMultiplier;
arg0->m[0][2] = arg1[0][2] * someMultiplier;
arg0->m[0][3] = arg1[0][3] * someMultiplier;
arg0->m[1][0] = arg1[1][0] * someMultiplier;
arg0->m[1][1] = arg1[1][1] * someMultiplier;
arg0->m[1][2] = arg1[1][2] * someMultiplier;
arg0->m[1][3] = arg1[1][3] * someMultiplier;
arg0->m[2][0] = arg1[2][0] * someMultiplier;
arg0->m[2][1] = arg1[2][1] * someMultiplier;
arg0->m[2][2] = arg1[2][2] * someMultiplier;
arg0->m[2][3] = arg1[2][3] * someMultiplier;
arg0->m[3][0] = arg1[3][0] * someMultiplier;
arg0->m[3][1] = arg1[3][1] * someMultiplier;
arg0->m[3][2] = arg1[3][2] * someMultiplier;
arg0->m[3][3] = arg1[3][3] * someMultiplier;
/**
* This function writes a fixed-point value to each Mtx entry. This is not how the Mtx struct works.
* The first half of Mtx only holds s16 whole numbers and the second half holds the s16 decimal (fractional) parts.
* See convert_to_fixed_point_matrix() for correct calculations. Note that each Mtx entry is the size of s32.
* This means each Mtx entry holds two s16 values.
* The first sixteen entries contain only the integer parts and the second sixteen entries hold only the decimal (fractional) parts.
*/
UNUSED void failed_fixed_point_matrix_conversion(Mtx *dest, Mat4 src) {
f32 toFixed = 65536.0f;
dest->m[0][0] = src[0][0] * toFixed;
dest->m[0][1] = src[0][1] * toFixed;
dest->m[0][2] = src[0][2] * toFixed;
dest->m[0][3] = src[0][3] * toFixed;
dest->m[1][0] = src[1][0] * toFixed;
dest->m[1][1] = src[1][1] * toFixed;
dest->m[1][2] = src[1][2] * toFixed;
dest->m[1][3] = src[1][3] * toFixed;
dest->m[2][0] = src[2][0] * toFixed;
dest->m[2][1] = src[2][1] * toFixed;
dest->m[2][2] = src[2][2] * toFixed;
dest->m[2][3] = src[2][3] * toFixed;
dest->m[3][0] = src[3][0] * toFixed;
dest->m[3][1] = src[3][1] * toFixed;
dest->m[3][2] = src[3][2] * toFixed;
dest->m[3][3] = src[3][3] * toFixed;
}
void convert_to_fixed_point_matrix(Mtx *fixedPointMatrix, Mat4 arg1) {
f32 someMultiplier = 65536.0f;
fixedPointMatrix->m[0][0] = ((s32) (arg1[0][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[0][1] = ((s32) (arg1[0][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[0][2] = ((s32) (arg1[1][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[0][3] = ((s32) (arg1[1][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][0] = ((s32) (arg1[2][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][1] = ((s32) (arg1[2][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][2] = ((s32) (arg1[3][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][3] = ((s32) (arg1[3][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[2][0] = ((s32) (arg1[0][0] * someMultiplier) << 0x10) | ((s32) (arg1[0][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[2][1] = ((s32) (arg1[0][2] * someMultiplier) << 0x10) | ((s32) (arg1[0][3] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[2][2] = ((s32) (arg1[1][0] * someMultiplier) << 0x10) | ((s32) (arg1[1][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[2][3] = ((s32) (arg1[1][2] * someMultiplier) << 0x10) | ((s32) (arg1[1][3] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][0] = ((s32) (arg1[2][0] * someMultiplier) << 0x10) | ((s32) (arg1[2][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][1] = ((s32) (arg1[2][2] * someMultiplier) << 0x10) | ((s32) (arg1[2][3] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][2] = ((s32) (arg1[3][0] * someMultiplier) << 0x10) | ((s32) (arg1[3][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][3] = ((s32) (arg1[3][2] * someMultiplier) << 0x10) | ((s32) (arg1[3][3] * someMultiplier) & 0xFFFF);
/**
* Takes a floating-point matrix and converts it to an s15.16 internal matrix.
* Each Mtx entry is a size of s32 that holds two values.
* The first 16 entries hold only the integer values and the second 16 entries hold only the decimal (fractional) parts.
* In simpler words, the integer and decimal gets split up and stored in their own section.
* Mtx is setup this way due to hardware restrictions of the n64 or as an optimization.
*
* @param Mtx A new internal fixed-point matrix.
* @param Mat4 An array of f32
* Mat4 to Mtx explanation: https://blarg.ca/2020/10/11/fixed-point-math.
*/
void convert_to_fixed_point_matrix(Mtx *dest, Mat4 src) {
#ifdef AVOID_UB
// Use os function guMtxF2L instead. This helps little-endian systems.
guMtxF2L(src, dest);
#else
f32 toFixed = 65536.0f; // 2 ^ 16
dest->m[0][0] = ((s32) (src[0][0] * toFixed) & 0xFFFF0000) | (((s32) (src[0][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[0][1] = ((s32) (src[0][2] * toFixed) & 0xFFFF0000) | (((s32) (src[0][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[0][2] = ((s32) (src[1][0] * toFixed) & 0xFFFF0000) | (((s32) (src[1][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[0][3] = ((s32) (src[1][2] * toFixed) & 0xFFFF0000) | (((s32) (src[1][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][0] = ((s32) (src[2][0] * toFixed) & 0xFFFF0000) | (((s32) (src[2][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][1] = ((s32) (src[2][2] * toFixed) & 0xFFFF0000) | (((s32) (src[2][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][2] = ((s32) (src[3][0] * toFixed) & 0xFFFF0000) | (((s32) (src[3][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][3] = ((s32) (src[3][2] * toFixed) & 0xFFFF0000) | (((s32) (src[3][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[2][0] = ((s32) (src[0][0] * toFixed) << 0x10) | ((s32) (src[0][1] * toFixed) & 0xFFFF);
dest->m[2][1] = ((s32) (src[0][2] * toFixed) << 0x10) | ((s32) (src[0][3] * toFixed) & 0xFFFF);
dest->m[2][2] = ((s32) (src[1][0] * toFixed) << 0x10) | ((s32) (src[1][1] * toFixed) & 0xFFFF);
dest->m[2][3] = ((s32) (src[1][2] * toFixed) << 0x10) | ((s32) (src[1][3] * toFixed) & 0xFFFF);
dest->m[3][0] = ((s32) (src[2][0] * toFixed) << 0x10) | ((s32) (src[2][1] * toFixed) & 0xFFFF);
dest->m[3][1] = ((s32) (src[2][2] * toFixed) << 0x10) | ((s32) (src[2][3] * toFixed) & 0xFFFF);
dest->m[3][2] = ((s32) (src[3][0] * toFixed) << 0x10) | ((s32) (src[3][1] * toFixed) & 0xFFFF);
dest->m[3][3] = ((s32) (src[3][2] * toFixed) << 0x10) | ((s32) (src[3][3] * toFixed) & 0xFFFF);
#endif
}
bool adjust_angle(s16 *angle, s16 targetAngle, s16 step) {

View File

@ -30,7 +30,7 @@ void func_80021DA8(void);
void mtxf_translate_rotate(Mat4, Vec3f, Vec3s);
void func_80021F50(Mat4, Vec3f);
void mtxf_scale2(Mat4, f32);
void func_80021FF8(Mtx*, Mat4);
void failed_fixed_point_matrix_conversion(Mtx*, Mat4);
void convert_to_fixed_point_matrix(Mtx*, Mat4);
s32 adjust_angle(s16*, s16, s16);
void move_s32_towards(s32*, s32, f32);

View File

@ -17,7 +17,7 @@
#include "code_80057C60.h"
#include "code_8006E9C0.h"
#include "code_80086E70.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "audio/external.h"
#include "sounds.h"
#include <actors.h>
@ -28,7 +28,7 @@
#include "code_80091750.h"
#include "podium_ceremony_actors.h"
#include "courses/all_course_data.h"
#include "src/ending/ceremony_data.h"
#include <assets/ceremony_data.h>
#include "src/ending/ceremony_and_credits.h"
#include "menus.h"
#include "data/other_textures.h"

2
tools/.gitignore vendored
View File

@ -5,6 +5,6 @@
/displaylist_packer
/tkmk00
/extract_data_for_mio
/torch/build-cmake/*
__pycache__
*.pyc

View File

@ -2,6 +2,7 @@
# Compilation flags
CC := gcc
MAKE = make
CFLAGS := -I . -Wall -Wextra -Wno-unused-parameter -pedantic -std=c99 -O2 -s
# Tools to compile
@ -28,6 +29,19 @@ n64cksum_CFLAGS := -DN64CKSUM_STANDALONE
extract_data_for_mio_SOURCES := extract_data_for_mio.c
ifeq ($(OS),Windows_NT)
DETECTED_OS=windows
# Set Windows temporary directory to its environment variable
export TMPDIR=$(TEMP)
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
DETECTED_OS=linux
else ifeq ($(UNAME_S),Darwin)
DETECTED_OS=macos
endif
endif
# Build tools and recomp
all: $(PROGRAMS)
@ -48,3 +62,5 @@ $(1): $($1_SOURCES)
endef
$(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p))))
.PHONY: all clean default

File diff suppressed because it is too large Load Diff

View File

@ -212,7 +212,7 @@ def export_image(baserom, asset, asset_list):
if asset["type"] in ("ci4", "ci8"):
# This is hightly specific to MK64:
# Some TLUT images have a "stitched palette". This means that they're palette is actually
# Some TLUT images have a "stitched palette". This means that their palette is actually
# two smaller palettes stitched together.
if "stitched_palette" in asset.get("meta", set()):
palette_file = export_stitched_palette(baserom, asset, asset_list)

BIN
tools/torch/torch Executable file

Binary file not shown.

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 3
name: banshee boardwalk
debug_name: ghost
cup: SPECIAL_CUP
cup_index: 2
course_length: 747m
kart_ai_behaviour_ptr: D_0D009058
kart_ai_maximum_separation: 40.0f
kart_ai_minimum_separation: 0.4f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x006e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x01db, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0262, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x02EE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_banshee_boardwalk_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_banshee_boardwalk_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [0, 0, 0, 0, 0, 0]
sky_colors2: [0, 0, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 19
name: big donut
debug_name: doughnut
cup: BATTLE_CUP
cup_index: 0
course_length: ""
kart_ai_behaviour_ptr: D_0D008F18
kart_ai_maximum_separation: -1.0f
kart_ai_minimum_separation: 0.5f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 40
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [0, 0, 0, 0, 0, 0]
sky_colors2: [0, 0, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 15
name: block fort
debug_name: block
cup: BATTLE_CUP
cup_index: 1
course_length: ""
kart_ai_behaviour_ptr: D_0D008F18
kart_ai_maximum_separation: -1.0f
kart_ai_minimum_separation: 0.1f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [128, 4280, 6136, 216, 7144, 32248]
sky_colors2: [216, 7144, 32248, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 2
name: bowser's castle
debug_name: castle
cup: STAR_CUP
cup_index: 3
course_length: 777m
kart_ai_behaviour_ptr: D_0D008FB8
kart_ai_maximum_separation: 35.0f
kart_ai_minimum_separation: 0.2f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0096, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0104, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x030C, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_bowsers_castle_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_bowsers_castle_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [48, 1544, 49528, 0, 0, 0]
sky_colors2: [0, 0, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 1
name: choco mountain
debug_name: mountain
cup: FLOWER_CUP
cup_index: 2
course_length: 687m
kart_ai_behaviour_ptr: D_0D008F80
kart_ai_maximum_separation: 35.0f
kart_ai_minimum_separation: 0.3f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00a5, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x014a, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0226, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0253, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x02BC, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_choco_mountain_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_choco_mountain_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [255, 255, 255, 255, 255, 255]
sky_colors2: [255, 255, 255, 255, 255, 255]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 18
name: d.k.'s jungle parkway
debug_name: jungle
cup: SPECIAL_CUP
cup_index: 0
course_length: 893m
kart_ai_behaviour_ptr: D_0D0093C0
kart_ai_maximum_separation: 40.0f
kart_ai_minimum_separation: 0.1f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0370, 0x0001, 0x0001, 0x0001, 0x01F4, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_dks_jungle_parkway_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_dks_jungle_parkway_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [255, 174, 0, 255, 229, 124]
sky_colors2: [22, 145, 22, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 17
name: double deck
debug_name: deck
cup: BATTLE_CUP
cup_index: 2
course_length: ""
kart_ai_behaviour_ptr: D_0D008F18
kart_ai_maximum_separation: -1.0f
kart_ai_minimum_separation: 0.5f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [113, 70, 255, 255, 184, 99]
sky_colors2: [255, 224, 240, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 5
name: frappe snowland
debug_name: snow
cup: FLOWER_CUP
cup_index: 1
course_length: 734m
kart_ai_behaviour_ptr: D_0D0090F8
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.3f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0122, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x015e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x02EE, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_frappe_snowland_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_frappe_snowland_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [28, 11, 90, 0, 99, 164]
sky_colors2: [0, 99, 164, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 11
name: kalimari desert
debug_name: desert
cup: MUSHROOM_CUP
cup_index: 3
course_length: 753m
kart_ai_behaviour_ptr: D_0D009260
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.3f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x008a, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0118, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0194, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x01fe, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x02BC, 0x0001, 0x0001, 0x0001, 0x0226, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_kalimari_desert_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_kalimari_desert_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [195, 231, 255, 255, 192, 0]
sky_colors2: [255, 192, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 6
name: koopa troopa beach
debug_name: beach
cup: MUSHROOM_CUP
cup_index: 2
course_length: 691m
kart_ai_behaviour_ptr: D_0D009158
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.5f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x003c, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0078, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0118, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x02BC, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_koopa_troopa_beach_track_waypoints, "d_course_koopa_troopa_beach_track_waypoints_2", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_koopa_troopa_beach_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [48, 1688, 54136, 216, 7144, 32248]
sky_colors2: [48, 1688, 54136, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 8
name: luigi raceway
debug_name: l circuit
cup: MUSHROOM_CUP
cup_index: 0
course_length: 717m
kart_ai_behaviour_ptr: D_0D0091E8
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.7f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 48
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0131, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x01b8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0203, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x02DA, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_luigi_raceway_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_luigi_raceway_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [128, 4280, 6136, 216, 7144, 32248]
sky_colors2: [216, 7144, 32248, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 0
name: mario raceway
debug_name: m circuit
cup: FLOWER_CUP
cup_index: 3
course_length: 567m
kart_ai_behaviour_ptr: D_0D008F28
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.3f
D_800DCBB4: D_800DCB34
cpu_steering_sensitivity: 48
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0028, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0109, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x011d, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x01a4, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0258, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_mario_raceway_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_mario_raceway_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [128, 4280, 6136, 216, 7144, 32248]
sky_colors2: [0, 0, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 9
name: moo moo farm
debug_name: farm
cup: MUSHROOM_CUP
cup_index: 1
course_length: 527m
kart_ai_behaviour_ptr: D_0D009210
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.5f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 48
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00e1, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x013c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x01b2, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0230, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_moo_moo_farm_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_moo_moo_farm_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [0, 18, 255, 197, 211, 255]
sky_colors2: [255, 184, 99, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 20
name: # unknown (does not exist)
debug_name: # unk (does not exist)
cup: null
cup_index: -1
course_length: null
kart_ai_behaviour_ptr: D_0D008F18
kart_ai_maximum_separation: 40.0f # entry
kart_ai_minimum_separation: 0.5f # entry
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53 # entry
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0003, 0x0005, 1.25, 0.0, 0.0, 0.0, 0.0]
- [0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x01F4, 0x01F4, 0x01F4, 0x01F4, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [0.0f, 0.0f, 0.0f, 0.0f]
D_0D009568: [0.0f, 0.0f, 0.0f, 0.0f]
D_0D0096B8: [0.0f, 0.0f, 0.0f, 0.0f]
D_0D009808: [0.0f, 0.0f, 0.0f, 0.0f]
# Course waypoints
path_table: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [podium_ceremony_path, podium_ceremony_path_2, podium_ceremony_path_3, podium_ceremony_path_4]
sky_colors: [238, 144, 255, 255, 224, 240]
sky_colors2: [255, 224, 240, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 13
name: rainbow road
debug_name: rainbow
cup: SPECIAL_CUP
cup_index: 3
course_length: 2000m
kart_ai_behaviour_ptr: D_0D0092C8
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.4f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 38
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x076C, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_rainbow_road_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_rainbow_road_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [0, 0, 0, 0, 0, 0]
sky_colors2: [0, 0, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 7
name: royal raceway
debug_name: p circuit
cup: STAR_CUP
cup_index: 2
course_length: 1025m
kart_ai_behaviour_ptr: D_0D009188
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.4f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0128, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0190, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x02ea, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x03E8, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_royal_raceway_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_royal_raceway_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [238, 144, 255, 255, 224, 240]
sky_colors2: [255, 224, 240, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 12
name: sherbet land
debug_name: sherbet
cup: STAR_CUP
cup_index: 1
course_length: 756m
kart_ai_behaviour_ptr: D_0D009280
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.3f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x02BC, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_sherbet_land_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_sherbet_land_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [128, 4280, 6136, 216, 7144, 32248]
sky_colors2: [216, 7144, 32248, 128, 4280, 6136]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 16
name: skyscraper
debug_name: skyscraper
cup: BATTLE_CUP
cup_index: 3
course_length: ""
kart_ai_behaviour_ptr: D_0D008F18
kart_ai_maximum_separation: -1.0f
kart_ai_minimum_separation: 0.5f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
- [0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: ["&nullPath", "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [0, 0, 0, 0, 0, 0]
sky_colors2: [0, 0, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 10
name: toad's turnpike
debug_name: highway
cup: FLOWER_CUP
cup_index: 0
course_length: 1036m
kart_ai_behaviour_ptr: D_0D009238
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.5f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 40
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x03E8, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_toads_turnpike_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_toads_turnpike_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [0, 2, 94, 209, 65, 23]
sky_colors2: [209, 65, 23, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 14
name: wario stadium
debug_name: stadium
cup: STAR_CUP
cup_index: 0
course_length: 1591m
kart_ai_behaviour_ptr: D_0D009310
kart_ai_maximum_separation: 50.0f
kart_ai_minimum_separation: 0.6f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
- [0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0]
path_sizes: [0x0640, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
D_0D0096B8: [3.3333332f, 3.9166667f, 4.5f, 5.0833334f]
D_0D009808: [3.75f, 5.1666665f, 5.75f, 6.3333334f]
# Course waypoints
path_table: [d_course_wario_stadium_track_waypoints, "&nullPath", "&nullPath", "&nullPath"]
# Unused except in podium ceremony
path_table_unknown: [d_course_wario_stadium_unknown_waypoints, "&nullPath", "&nullPath", "&nullPath"]
sky_colors: [20, 30, 56, 40, 60, 110]
sky_colors2: [0, 0, 0, 0, 0, 0]

View File

@ -0,0 +1,38 @@
course:
type: MK64:METADATA
offset: 0x0
id: 4
name: yoshi valley
debug_name: maze
cup: SPECIAL_CUP
cup_index: 1
course_length: 772m
kart_ai_behaviour_ptr: D_0D0090B8
kart_ai_maximum_separation: 35.0f
kart_ai_minimum_separation: 0.0f
D_800DCBB4: D_800DCAF4
cpu_steering_sensitivity: 53
bomb_kart_spawns: # 7 bomb kart spawn locations
- [0x0000, 0x0000, 0.8333333, -1533.0, -682.0, -103.0, 0.0]
- [0x000a, 0x0000, 0.8333333, -1565.0, -619.0, -109.0, 0.0]
- [0x0014, 0x0000, 0.8333333, -1529.0, -579.0, -109.0, 0.0]
- [0x001e, 0x0000, 0.8333333, -1588.0, -534.0, -106.0, 0.0]
- [0x0028, 0x0000, 0.8333333, -1598.0, -207.0, -105.0, 0.0]
- [0x0032, 0x0000, 0.8333333, -1646.0, -147.0, -93.0, 0.0]
- [0x003c, 0x0000, 0.8333333, -2532.0, -445.0, -90.0, 0.0]
path_sizes: [0x02B2, 0x02A8, 0x02B2, 0x0320, 0x0001, 0x0000, 0x0000, 0x0000]
# unk common_textures data
D_0D009418: [4.1666665f, 5.5833334f, 6.1666665f, 6.75f]
D_0D009568: [3.75f, 4.5833334f, 4.5833334f, 4.5833334f]
D_0D0096B8: [3.3333332f, 3.3333332f, 3.3333332f, 3.3333332f]
D_0D009808: [2.9166667f, 3.75f, 3.75f, 3.75f]
# Course waypoints
path_table: [d_course_yoshi_valley_track_waypoints, "d_course_yoshi_valley_track_waypoints_2", "d_course_yoshi_valley_track_waypoints_3", "d_course_yoshi_valley_track_waypoints_4"]
# Unused except in podium ceremony
path_table_unknown: [d_course_yoshi_valley_unknown_waypoints, d_course_yoshi_valley_unknown_waypoints_2, d_course_yoshi_valley_unknown_waypoints_3, d_course_yoshi_valley_unknown_waypoints_4]
sky_colors: [113, 70, 255, 255, 184, 99]
sky_colors2: [95, 40, 15, 0, 0, 0]

238
yamls/us/ceremony_data.yml Normal file
View File

@ -0,0 +1,238 @@
:config:
segments:
- [0x0B, 0x821D10]
header:
code:
- '#include <assets/ceremony_data.h>'
header:
- '#include <types.h>'
- '#include <waypoints.h>'
silver_trophy_dl:
symbol: silver_trophy_dl
type: gfx
offset: 0xFE0
silver_trophy_dl2:
symbol: silver_trophy_dl2
type: gfx
offset: 0x10B8
silver_trophy_dl3:
symbol: silver_trophy_dl3
type: gfx
offset: 0x1188
silver_trophy_dl4:
symbol: silver_trophy_dl4
type: gfx
offset: 0x1260
silver_trophy_dl5:
symbol: silver_trophy_dl5
type: gfx
offset: 0x1418
silver_trophy_dl6:
symbol: silver_trophy_dl6
type: gfx
offset: 0x14D0
some_vtx:
symbol: unused_trophy_base_with_handle
type: vtx
offset: 0x18C0 # 2200
count: 211 # 274
some_vtx2:
symbol: unused_trophy_base2
type: vtx
offset: 0x2F30
count: 63
reflection_map_brass:
symbol: reflection_map_brass
type: texture
ctype: u16
offset: 0x4670
size: 2048
width: 32
height: 32
format: RGBA16
reflection_map_silver:
symbol: reflection_map_silver
type: texture
ctype: u16
offset: 0x4E70
size: 2048
width: 32
height: 32
format: RGBA16
reflection_map_gold:
symbol: reflection_map_gold
type: texture
ctype: u16
offset: 0x5670
size: 2048
width: 32
height: 32
format: RGBA16
gold_trophy_dl:
symbol: gold_trophy_dl
type: gfx
offset: 0x5E70
gold_trophy_dl2:
symbol: gold_trophy_dl2
type: gfx
offset: 0x5F20
gold_trophy_dl3:
symbol: gold_trophy_dl3
type: gfx
offset: 0x5FD0
gold_trophy_dl4:
symbol: gold_trophy_dl4
type: gfx
offset: 0x6218
gold_trophy_dl5:
symbol: gold_trophy_dl5
type: gfx
offset: 0x62C8
gold_trophy_dl6:
symbol: gold_trophy_dl6
type: gfx
offset: 0x6518
gold_trophy_dl7:
symbol: gold_trophy_dl7
type: gfx
offset: 0x6720
gold_trophy_dl8:
symbol: gold_trophy_dl8
type: gfx
offset: 0x6880
gold_trophy_dl9:
symbol: gold_trophy_dl9
type: gfx
offset: 0x6948
gold_trophy_dl10:
symbol: gold_trophy_dl10
type: gfx
offset: 0x69D8
gold_trophy_dl11:
symbol: gold_trophy_dl11
type: gfx
offset: 0x6A28
gold_trophy_dl12:
symbol: gold_trophy_dl12
type: gfx
offset: 0x6A78
gold_trophy_dl13:
symbol: gold_trophy_dl13
type: gfx
offset: 0x6AC8
gold_trophy_dl14:
symbol: gold_trophy_dl14
type: gfx
offset: 0x6B18
gold_trophy_dl15:
symbol: gold_trophy_dl15
type: gfx
offset: 0x6B68
light1:
symbol: light1
type: lights
offset: 0x6BB8
texture_podium1:
symbol: gTexturePodium1
type: texture
ctype: u16
offset: 0x6BD0
size: 2048
width: 32
height: 32
format: RGBA16
podium_dl:
symbol: podium_dl
type: gfx
offset: 0x7510
podium_dl2:
symbol: podium_dl2
type: gfx
offset: 0x75E0
podium_dl3:
symbol: podium_dl3
type: gfx
offset: 0x75F0
podium_dl4:
symbol: podium_dl4
type: gfx
offset: 0x7600
light2:
symbol: light2
type: lights
offset: 0x7748
texture_podium2:
symbol: gTexturePodium2
type: texture
ctype: u16
offset: 0x7760
size: 2048
width: 32
height: 32
format: RGBA16
podium2_dl:
symbol: podium2_dl
type: gfx
offset: 0x7F60
podium2_dl2:
symbol: podium2_dl2
type: gfx
offset: 0x8030
podium2_dl3:
symbol: podium2_dl3
type: gfx
offset: 0x8040
podium2_dl4:
symbol: podium2_dl4
type: gfx
offset: 0x8050
light3:
symbol: light3
type: lights
offset: 0x8058
texture_podium3:
symbol: gTexturePodium3
type: texture
ctype: u16
offset: 0x8070
size: 2048
width: 32
height: 32
format: RGBA16
podium3_dl:
symbol: podium3_dl
type: gfx
offset: 0x89B0
podium3_dl2:
symbol: podium3_dl2
type: gfx
offset: 0x8A80
podium3_dl3:
symbol: podium3_dl3
type: gfx
offset: 0x8A90
podium3_dl4:
symbol: podium3_dl4
type: gfx
offset: 0x8AA0
ending_sequence:
symbol: podium_ceremony_path
type: mk64:track_waypoints
offset: 0x8AA8
count: 24
ending_sequence2:
symbol: podium_ceremony_path_2
type: mk64:track_waypoints
offset: 0x8B68
count: 23
ending_sequence3:
symbol: podium_ceremony_path_3
type: mk64:track_waypoints
offset: 0x8C20
count: 24
ending_sequence4:
symbol: podium_ceremony_path_4
type: mk64:track_waypoints
offset: 0x8CE0
count: 21

View File

@ -0,0 +1,17 @@
:config:
vram:
addr: 0x80284EE0
offset: 0x128520
header:
code:
- '#include <types.h>'
- '#include <PR/gbi.h>'
- '#include "courses/royal_raceway/course_displaylists.inc.h"'
D_80284EE0:
symbol: D_80284EE0
type: gfx
offset: 0x80284EE0
D_80284F70:
symbol: D_80284F70
type: gfx
offset: 0x80284F70

2393
yamls/us/common_data.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,4 @@
course_metadata:
type: mk64:metadata
input_directory: yamls/courses
out_directory: "assets/course_metadata"

View File

@ -0,0 +1,78 @@
:config:
vram:
addr: 0x800E45C0
offset: 0xE51C0
header:
code:
- '#include <assets/data_800E45C0.h>'
header:
- '#include <ultra64.h>'
- '#include <common_structs.h>'
tables:
D_800E45C0:
range: [0x800E45C0, 0x800E4608]
mode: APPEND
D_800E45C0:
symbol: D_800E45C0
type: lights
offset: 0x800E45C0
D_800E45D8:
symbol: D_800E45D8
type: lights
offset: 0x800E45D8
D_800E45F0:
symbol: D_800E45F0
type: lights
offset: 0x800E45F0
D_800E4608:
symbol: D_800E4608
type: lights
offset: 0x800E4608
D_800E4620:
symbol: D_800E4620
type: lights
offset: 0x800E4620
D_800E4638:
symbol: D_800E4638
type: lights
offset: 0x800E4638
D_800E4650:
symbol: D_800E4650
type: lights
offset: 0x800E4650
D_800E4668:
symbol: D_800E4668
type: lights
offset: 0x800E4668
D_800E4680:
symbol: D_800E4680
type: lights
offset: 0x800E4680
D_800E4698:
symbol: D_800E4698
type: lights
offset: 0x800E4698
D_800E46B0:
symbol: D_800E46B0
type: lights
offset: 0x800E46B0
D_800E46C8:
symbol: D_800E46C8
type: lights
offset: 0x800E46C8
D_800E46E0:
symbol: D_800E46E0
type: lights
offset: 0x800E46E0
D_800E46F8:
symbol: D_800E46F8
type: array
offset: 0x800E46F8
count: 3
array_type: Vec3iu
D_800E471C:
symbol: D_800E471C
type: array
offset: 0x800E471C
count: 7
array_type: u8

137
yamls/us/data_800E8700.yml Normal file
View File

@ -0,0 +1,137 @@
:config:
vram:
addr: 0x800E8700
offset: 0xE9300
header:
code:
- '#include <ultra64.h>'
- '#include <assets/data_800E8700.h>'
header:
- '#include <ultra64.h>'
tables:
D_800E8900:
range: [0x800E8900, 0x800E89C0]
mode: APPEND
D_800E8700:
symbol: D_800E8700
type: vtx
offset: 0x800E8700
count: 4
D_800E8740:
symbol: D_800E8740
type: vtx
offset: 0x800E8740
count: 4
D_800E8780:
symbol: D_800E8780
type: vtx
offset: 0x800E8780
count: 4
D_800E87C0:
symbol: D_800E87C0
type: vtx
offset: 0x800E87C0
count: 4
D_800E8800:
symbol: D_800E8800
type: vtx
offset: 0x800E8800
count: 4
D_800E8840:
symbol: D_800E8840
type: vtx
offset: 0x800E8840
count: 4
D_800E8880:
symbol: D_800E8880
type: vtx
offset: 0x800E8880
count: 4
D_800E88C0:
symbol: D_800E88C0
type: vtx
offset: 0x800E88C0
count: 4
D_800E8900:
symbol: D_800E8900
type: vtx
offset: 0x800E8900
count: 4
D_800E8940:
symbol: D_800E8940
type: vtx
offset: 0x800E8940
count: 4
D_800E8980:
symbol: D_800E8980
type: vtx
offset: 0x800E8980
count: 4
D_800E89C0:
symbol: D_800E89C0
type: vtx
offset: 0x800E89C0
count: 4
D_800E8A00:
symbol: D_800E8A00
type: vtx
offset: 0x800E8A00
count: 4
D_800E8A40:
symbol: D_800E8A40
type: vtx
offset: 0x800E8A40
count: 4
D_800E8A80:
symbol: D_800E8A80
type: vtx
offset: 0x800E8A80
count: 4
D_800E8AC0:
symbol: D_800E8AC0
type: vtx
offset: 0x800E8AC0
count: 4
D_800E8B00:
symbol: D_800E8B00
type: vtx
offset: 0x800E8B00
count: 4
D_800E8B40:
symbol: D_800E8B40
type: vtx
offset: 0x800E8B40
count: 4
D_800E8B80:
symbol: D_800E8B80
type: vtx
offset: 0x800E8B80
count: 4
D_800E8BC0:
symbol: D_800E8BC0
type: vtx
offset: 0x800E8BC0
count: 4
D_800E8C00:
symbol: D_800E8C00
type: vtx
offset: 0x800E8C00
count: 4
D_800E8C40:
symbol: D_800E8C40
type: vtx
offset: 0x800E8C40
count: 8
D_800E8CC0:
symbol: D_800E8CC0
type: vtx
offset: 0x800E8CC0
count: 8
D_800E8D40:
symbol: D_800E8D40
type: gfx
offset: 0x800E8D40
D_800E8DD0:
symbol: D_800E8DD0
type: gfx
offset: 0x800E8DD0

326
yamls/us/data_segment2.yml Normal file
View File

@ -0,0 +1,326 @@
:config:
segments:
- [0x02, 0x12AAE0]
- [0x0D, 0x132B50]
header:
code:
- '#include <macros.h>'
- '#include <types.h>'
- '#include <PR/ultratypes.h>'
- '#include <PR/gbi.h>'
- '#include "data_segment2.h"'
- '#include <assets/startup_logo.h>'
header:
- '#include <PR/gbi.h>'
D_02007650:
symbol: D_02007650
type: gfx
offset: 0x7650
D_020076B0:
symbol: D_020076B0
type: Gfx
offset: 0x76B0
D_020076E0:
symbol: D_020076E0
type: Gfx
offset: 0x76E0
D_02007708:
symbol: D_02007708
type: Gfx
offset: 0x7708
D_02007728:
symbol: D_02007728
type: Gfx
offset: 0x7728
D_02007748:
symbol: D_02007748
type: Gfx
offset: 0x7748
D_02007768:
symbol: D_02007768
type: Gfx
offset: 0x7768
D_02007788:
symbol: D_02007788
type: Gfx
offset: 0x7788
D_020077A8:
symbol: D_020077A8
type: Gfx
offset: 0x77A8
D_020077D8:
symbol: D_020077D8
type: Gfx
offset: 0x77D8
D_020077F8:
symbol: D_020077F8
type: Gfx
offset: 0x77F8
D_02007818:
symbol: D_02007818
type: Gfx
offset: 0x7818
D_02007838:
symbol: D_02007838
type: Gfx
offset: 0x7838
D_02007858:
symbol: D_02007858
type: Gfx
offset: 0x7858
D_02007878:
symbol: D_02007878
type: Gfx
offset: 0x7878
D_02007898:
symbol: D_02007898
type: Gfx
offset: 0x7898
D_020078B8:
symbol: D_020078B8
type: Gfx
offset: 0x78B8
D_020078D8:
symbol: D_020078D8
type: Gfx
offset: 0x78D8
D_020078F8:
symbol: D_020078F8
type: Gfx
offset: 0x78F8
D_02007918:
symbol: D_02007918
type: Gfx
offset: 0x7918
D_02007938:
symbol: D_02007938
type: Gfx
offset: 0x7938
D_02007958:
symbol: D_02007958
type: Gfx
offset: 0x7958
D_02007978:
symbol: D_02007978
type: Gfx
offset: 0x7978
D_02007998:
symbol: D_02007998
type: Gfx
offset: 0x7998
D_020079B8:
symbol: D_020079B8
type: Gfx
offset: 0x79B8
D_020079D8:
symbol: D_020079D8
type: Gfx
offset: 0x79D8
D_020079F8:
symbol: D_020079F8
type: Gfx
offset: 0x79F8
D_02007A18:
symbol: D_02007A18
type: Gfx
offset: 0x7A18
D_02007A38:
symbol: D_02007A38
type: Gfx
offset: 0x7A38
D_02007A58:
symbol: D_02007A58
type: Gfx
offset: 0x7A58
D_02007A78:
symbol: D_02007A78
type: Gfx
offset: 0x7A78
D_02007A98:
symbol: D_02007A98
type: Gfx
offset: 0x7A98
D_02007AB8:
symbol: D_02007AB8
type: Gfx
offset: 0x7AB8
D_02007AD8:
symbol: D_02007AD8
type: Gfx
offset: 0x7AD8
D_02007AF8:
symbol: D_02007AF8
type: Gfx
offset: 0x7AF8
D_02007B18:
symbol: D_02007B18
type: Gfx
offset: 0x7B18
D_02007B38:
symbol: D_02007B38
type: vtx
offset: 0x7B38
count: 8
D_02007BB8:
symbol: D_02007BB8
type: vtx
offset: 0x7BB8
count: 2
D_02007BD8:
symbol: D_02007BD8
type: vtx
offset: 0x7BD8
count: 2
D_02007BF8:
symbol: D_02007BF8
type: vtx
offset: 0x7BF8
count: 2
D_02007C18:
symbol: D_02007C18
type: vtx
offset: 0x7C18
count: 2
D_02007C38:
symbol: D_02007C38
type: vtx
offset: 0x7C38
count: 2
D_02007C58:
symbol: D_02007C58
type: vtx
offset: 0x7C58
count: 2
D_02007C78:
symbol: D_02007C78
type: vtx
offset: 0x7C78
count: 2
D_02007C98:
symbol: D_02007C98
type: vtx
offset: 0x7C98
count: 2
D_02007CB8:
symbol: D_02007CB8
type: vtx
offset: 0x7CB8
count: 2
D_02007CD8:
symbol: D_02007CD8
type: vtx
offset: 0x7CD8
count: 2
D_02007CF8:
symbol: D_02007CF8
type: vtx
offset: 0x7CF8
count: 2
D_02007D18:
symbol: D_02007D18
type: vtx
offset: 0x7D18
count: 2
D_02007D38:
symbol: D_02007D38
type: vtx
offset: 0x7D38
count: 2
D_02007D58:
symbol: D_02007D58
type: vtx
offset: 0x7D58
count: 2
D_02007D78:
symbol: D_02007D78
type: vtx
offset: 0x7D78
count: 2
D_02007D98:
symbol: D_02007D98
type: vtx
offset: 0x7D98
count: 2
D_02007DB8:
symbol: D_02007DB8
type: vtx
offset: 0x7DB8
count: 2
D_02007DD8:
symbol: D_02007DD8
type: vtx
offset: 0x7DD8
count: 2
D_02007DF8:
symbol: D_02007DF8
type: vtx
offset: 0x7DF8
count: 2
D_02007E18:
symbol: D_02007E18
type: vtx
offset: 0x7E18
count: 2
D_02007E38:
symbol: D_02007E38
type: vtx
offset: 0x7E38
count: 2
D_02007E58:
symbol: D_02007E58
type: vtx
offset: 0x7E58
count: 2
D_02007E78:
symbol: D_02007E78
type: vtx
offset: 0x7E78
count: 2
D_02007E98:
symbol: D_02007E98
type: vtx
offset: 0x7E98
count: 2
D_02007EB8:
symbol: D_02007EB8
type: vtx
offset: 0x7EB8
count: 2
D_02007ED8:
symbol: D_02007ED8
type: vtx
offset: 0x7ED8
count: 2
D_02007EF8:
symbol: D_02007EF8
type: vtx
offset: 0x7EF8
count: 2
D_02007F18:
symbol: D_02007F18
type: gfx
offset: 0x7F18
D_02007F48:
symbol: D_02007F48
type: gfx
offset: 0x7F48
D_02007F60:
symbol: D_02007F60
type: gfx
offset: 0x7F60
D_02007FC8:
symbol: D_02007FC8
type: gfx
offset: 0x7FC8
D_02008008:
symbol: D_02008008
type: gfx
offset: 0x8008
D_02008030:
symbol: D_02008030
type: gfx
offset: 0x8030
D_02008058:
symbol: D_02008058
type: gfx
offset: 0x8058

118
yamls/us/startup_logo.yml Normal file
View File

@ -0,0 +1,118 @@
:config:
segments:
- [0x06, 0x825800]
header:
code:
- '#include <assets/startup_logo.h>'
header:
- '#include "types.h"'
dl1:
symbol: startup_logo_dl
type: gfx
offset: 0x2B00
dl2:
symbol: startup_logo_dl2
type: gfx
offset: 0x2C88
dl3:
symbol: startup_logo_dl3
type: gfx
offset: 0x2D58
dl4:
symbol: startup_logo_dl4
type: gfx
offset: 0x2F20
dl5:
symbol: startup_logo_dl5
type: gfx
offset: 0x2FF0
dl6:
symbol: startup_logo_dl6
type: gfx
offset: 0x3180
dl7:
symbol: startup_logo_dl7
type: gfx
offset: 0x3308
dl8:
symbol: startup_logo_dl8
type: gfx
offset: 0x33D8
dl9:
symbol: startup_logo_dl9
type: gfx
offset: 0x7988
dl10:
symbol: startup_logo_dl10
type: gfx
offset: 0x7C18
dl11:
symbol: startup_logo_dl11
type: gfx
offset: 0x7CE8
dl12:
symbol: startup_logo_dl12
type: gfx
offset: 0x7E50
dl13:
symbol: startup_logo_dl13
type: gfx
offset: 0x7E90
dl14:
symbol: startup_logo_dl14
type: gfx
offset: 0x7ED0
dl15:
symbol: startup_logo_dl15
type: gfx
offset: 0x7F88
dl16:
symbol: startup_logo_dl16
type: gfx
offset: 0x80F0
dl17:
symbol: startup_logo_dl17
type: gfx
offset: 0x8250
dl18:
symbol: startup_logo_dl18
type: gfx
offset: 0x83C8
dl19:
symbol: startup_logo_dl19
type: gfx
offset: 0x8548
dl20:
symbol: startup_logo_dl20
type: gfx
offset: 0x87A0
reflection_map_gold:
symbol: reflection_map_gold
type: texture
ctype: u16
offset: 0x8A48
size: 2048
width: 32
height: 32
format: RGBA16
startup_texture_dl1:
symbol: startup_texture_dl1
type: gfx
offset: 0x9248
lights:
symbol: lights
type: lights
offset: 0x9308
startup_texture_dl2:
symbol: startup_texture_dl2
type: gfx
offset: 0x9320
startup_texture_dl3:
symbol: startup_texture_dl3
type: gfx
offset: 0x93F8
startup_texture_dl4:
symbol: startup_texture_dl4
type: gfx
offset: 0x9410