mirror of https://github.com/n64decomp/mk64.git
Decompiled course geography (#19)
* Added bss * Decompiled course vertex data and moved packed.s * Added recomp * Added new line char to the end of a few audio files
This commit is contained in:
parent
6121193a29
commit
a0e31c27ff
214
Makefile
214
Makefile
|
@ -28,12 +28,18 @@ BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)
|
|||
|
||||
# Directories containing source files
|
||||
INCLUDE_DIRS := include
|
||||
SRC_DIRS := src src/audio
|
||||
ASM_DIRS := asm asm/audio data data/courses data/sound_data
|
||||
SRC_DIRS := src src/audio courses
|
||||
ASM_DIRS := asm asm/audio data data/sound_data
|
||||
COURSE_DIRS := \
|
||||
courses/mushroom_cup/luigi_raceway courses/mushroom_cup/koopa_beach \
|
||||
courses/mushroom_cup/moo_moo_farm courses/mushroom_cup/kalimari_desert courses/flower_cup/toads_turnpike courses/flower_cup/frappe_snowland \
|
||||
courses/flower_cup/choco_mountain courses/flower_cup/mario_raceway courses/star_cup/wario_stadium courses/star_cup/sherbet_land courses/star_cup/royal_raceway \
|
||||
courses/star_cup/bowsers_castle courses/special_cup/dks_jungle_parkway courses/special_cup/yoshi_valley courses/special_cup/banshee_boardwalk \
|
||||
courses/special_cup/rainbow_road courses/battle/big_donut courses/battle/block_fort courses/battle/double_deck courses/battle/skyscraper
|
||||
|
||||
TEXTURES_DIR = textures
|
||||
|
||||
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone)
|
||||
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone)
|
||||
|
||||
################### Universal Dependencies ###################
|
||||
|
||||
|
@ -70,18 +76,20 @@ GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/*.c)
|
|||
GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
# GLOBAL_ASM_DEP = $(BUILD_DIR)/src/audio/non_matching_dep
|
||||
|
||||
# Source code files
|
||||
COURSE_ASM_FILES := $(wildcard courses/*/*/packed.s)
|
||||
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
|
||||
S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) $(COURSE_ASM_FILES)
|
||||
COURSE_FILES := $(foreach dir,$(COURSE_DIRS),$(wildcard $(dir)/model.inc.c))
|
||||
|
||||
# Object files
|
||||
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
||||
$(foreach file,$(COURSE_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
||||
$(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o))
|
||||
|
||||
# Automatic dependency files
|
||||
DEP_FILES := $(O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
|
||||
##################### Compiler Options #######################
|
||||
IRIX_ROOT := tools/ido5.3_compiler
|
||||
|
||||
ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0)
|
||||
CROSS := mips-linux-gnu-
|
||||
|
@ -91,16 +99,31 @@ else
|
|||
CROSS := mips64-elf-
|
||||
endif
|
||||
|
||||
# check that either QEMU_IRIX is set or qemu-irix package installed
|
||||
ifndef QEMU_IRIX
|
||||
# USE_QEMU_IRIX - when ido is selected, select which way to emulate IRIX programs
|
||||
# 1 - use qemu-irix
|
||||
# 0 - statically recompile the IRIX programs
|
||||
USE_QEMU_IRIX ?= 0
|
||||
$(eval $(call validate-option,USE_QEMU_IRIX,0 1))
|
||||
TOOLS_DIR := tools
|
||||
|
||||
ifeq ($(USE_QEMU_IRIX),1)
|
||||
# Verify that qemu-irix exists
|
||||
QEMU_IRIX := $(shell which qemu-irix)
|
||||
ifeq (, $(QEMU_IRIX))
|
||||
$(error Please install qemu-irix package or set QEMU_IRIX env var to the full qemu-irix binary path)
|
||||
$(error Using the IDO compiler requires qemu-irix. Please install qemu-irix package or set the QEMU_IRIX environment variable to the full qemu-irix binary path)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(USE_QEMU_IRIX),1)
|
||||
IRIX_ROOT := $(TOOLS_DIR)/ido5.3_compiler
|
||||
CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc
|
||||
else
|
||||
IDO_ROOT := tools/ido5.3_recomp
|
||||
CC := $(IDO_ROOT)/cc
|
||||
endif
|
||||
|
||||
AS := $(CROSS)as
|
||||
CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc
|
||||
|
||||
CPP := cpp -P -Wno-trigraphs
|
||||
LD := $(CROSS)ld
|
||||
AR := $(CROSS)ar
|
||||
|
@ -139,10 +162,10 @@ endif
|
|||
####################### Other Tools #########################
|
||||
|
||||
# N64 tools
|
||||
TOOLS_DIR = tools
|
||||
MIO0TOOL = $(TOOLS_DIR)/mio0
|
||||
N64CKSUM = $(TOOLS_DIR)/n64cksum
|
||||
N64GRAPHICS = $(TOOLS_DIR)/n64graphics
|
||||
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
|
||||
EMULATOR = mupen64plus
|
||||
EMU_FLAGS = --noosd
|
||||
LOADER = loader64
|
||||
|
@ -207,10 +230,172 @@ $(BUILD_DIR)/%.o: %.s $(MIO0_FILES) $(RAW_TEXTURE_FILES)
|
|||
|
||||
$(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
|
||||
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) #repeat for other files
|
||||
$(CPP) $(VERSION_CFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) undefined_syms.txt
|
||||
#################### Compile course vertex to mio0 #####################
|
||||
|
||||
mushroom_cup := $(BUILD_DIR)/courses/mushroom_cup
|
||||
flower_cup := $(BUILD_DIR)/courses/flower_cup
|
||||
star_cup := $(BUILD_DIR)/courses/star_cup
|
||||
special_cup := $(BUILD_DIR)/courses/special_cup
|
||||
battle := $(BUILD_DIR)/courses/battle
|
||||
LD_COURSE_VERTEX_DEPENDENCIES := \
|
||||
$(mushroom_cup)/luigi_raceway/model.inc.mio0.o $(mushroom_cup)/moo_moo_farm/model.inc.mio0.o \
|
||||
$(mushroom_cup)/koopa_beach/model.inc.mio0.o $(mushroom_cup)/kalimari_desert/model.inc.mio0.o \
|
||||
$(flower_cup)/toads_turnpike/model.inc.mio0.o $(flower_cup)/frappe_snowland/model.inc.mio0.o \
|
||||
$(flower_cup)/choco_mountain/model.inc.mio0.o $(flower_cup)/mario_raceway/model.inc.mio0.o \
|
||||
$(star_cup)/wario_stadium/model.inc.mio0.o $(star_cup)/sherbet_land/model.inc.mio0.o \
|
||||
$(star_cup)/royal_raceway/model.inc.mio0.o $(star_cup)/bowsers_castle/model.inc.mio0.o \
|
||||
$(special_cup)/dks_jungle_parkway/model.inc.mio0.o $(special_cup)/yoshi_valley/model.inc.mio0.o \
|
||||
$(special_cup)/banshee_boardwalk/model.inc.mio0.o $(special_cup)/rainbow_road/model.inc.mio0.o \
|
||||
$(battle)/big_donut/model.inc.mio0.o $(battle)/block_fort/model.inc.mio0.o \
|
||||
$(battle)/double_deck/model.inc.mio0.o $(battle)/skyscraper/model.inc.mio0.o \
|
||||
|
||||
$(mushroom_cup)/luigi_raceway/%.inc.mio0.o: courses/mushroom_cup/luigi_raceway/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(mushroom_cup)/luigi_raceway/$*.inc.elf.map -o $(mushroom_cup)/luigi_raceway/$*.inc.elf $(mushroom_cup)/luigi_raceway/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(mushroom_cup)/luigi_raceway/$*.inc.elf $(mushroom_cup)/luigi_raceway/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(mushroom_cup)/luigi_raceway/$*.inc.bin $(mushroom_cup)/luigi_raceway/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.balign 4\n\n.incbin \"build/us/courses/mushroom_cup/luigi_raceway/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_luigi_raceway_packed\n\n.incbin \"bin/course_luigi_raceway_packed.bin\"\n" > build/us/courses/mushroom_cup/luigi_raceway/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(mushroom_cup)/luigi_raceway/$*.inc.mio0.o $(mushroom_cup)/luigi_raceway/$*.inc.mio0.s
|
||||
|
||||
$(mushroom_cup)/moo_moo_farm/%.inc.mio0.o: courses/mushroom_cup/moo_moo_farm/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(mushroom_cup)/moo_moo_farm/$*.elf.map -o $(mushroom_cup)/moo_moo_farm/$*.inc.elf $(mushroom_cup)/moo_moo_farm/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(mushroom_cup)/moo_moo_farm/$*.inc.elf $(mushroom_cup)/moo_moo_farm/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(mushroom_cup)/moo_moo_farm/$*.inc.bin $(mushroom_cup)/moo_moo_farm/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/mushroom_cup/moo_moo_farm/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_moo_moo_farm_packed\n\n.incbin \"bin/course_moo_moo_farm_packed.bin\"\n" > build/us/courses/mushroom_cup/moo_moo_farm/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(mushroom_cup)/moo_moo_farm/$*.inc.mio0.o $(mushroom_cup)/moo_moo_farm/$*.inc.mio0.s
|
||||
|
||||
$(mushroom_cup)/koopa_beach/%.inc.mio0.o: courses/mushroom_cup/koopa_beach/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(mushroom_cup)/koopa_beach/$*.elf.map -o $(mushroom_cup)/koopa_beach/$*.inc.elf $(mushroom_cup)/koopa_beach/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(mushroom_cup)/koopa_beach/$*.inc.elf $(mushroom_cup)/koopa_beach/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(mushroom_cup)/koopa_beach/$*.inc.bin $(mushroom_cup)/koopa_beach/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/mushroom_cup/koopa_beach/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_koopa_troopa_beach_packed\n\n.incbin \"bin/course_koopa_troopa_beach_packed.bin\"\n" > build/us/courses/mushroom_cup/koopa_beach/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(mushroom_cup)/koopa_beach/$*.inc.mio0.o $(mushroom_cup)/koopa_beach/$*.inc.mio0.s
|
||||
|
||||
$(mushroom_cup)/kalimari_desert/%.inc.mio0.o: courses/mushroom_cup/kalimari_desert/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(mushroom_cup)/kalimari_desert/$*.elf.map -o $(mushroom_cup)/kalimari_desert/$*.inc.elf $(mushroom_cup)/kalimari_desert/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(mushroom_cup)/kalimari_desert/$*.inc.elf $(mushroom_cup)/kalimari_desert/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(mushroom_cup)/kalimari_desert/$*.inc.bin $(mushroom_cup)/kalimari_desert/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/mushroom_cup/kalimari_desert/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_kalimari_desert_packed\n\n.incbin \"bin/course_kalimari_desert_packed.bin\"\n" > build/us/courses/mushroom_cup/kalimari_desert/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(mushroom_cup)/kalimari_desert/$*.inc.mio0.o $(mushroom_cup)/kalimari_desert/$*.inc.mio0.s
|
||||
|
||||
$(flower_cup)/toads_turnpike/%.inc.mio0.o: courses/flower_cup/toads_turnpike/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(flower_cup)/toads_turnpike/$*.elf.map -o $(flower_cup)/toads_turnpike/$*.inc.elf $(flower_cup)/toads_turnpike/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(flower_cup)/toads_turnpike/$*.inc.elf $(flower_cup)/toads_turnpike/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(flower_cup)/toads_turnpike/$*.inc.bin $(flower_cup)/toads_turnpike/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/flower_cup/toads_turnpike/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_toads_turnpike_packed\n\n.incbin \"bin/course_toads_turnpike_packed.bin\"\n" > build/us/courses/flower_cup/toads_turnpike/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(flower_cup)/toads_turnpike/$*.inc.mio0.o $(flower_cup)/toads_turnpike/$*.inc.mio0.s
|
||||
|
||||
$(flower_cup)/frappe_snowland/%.inc.mio0.o: courses/flower_cup/frappe_snowland/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(flower_cup)/frappe_snowland/$*.elf.map -o $(flower_cup)/frappe_snowland/$*.inc.elf $(flower_cup)/frappe_snowland/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(flower_cup)/frappe_snowland/$*.inc.elf $(flower_cup)/frappe_snowland/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(flower_cup)/frappe_snowland/$*.inc.bin $(flower_cup)/frappe_snowland/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/flower_cup/frappe_snowland/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_frappe_snowland_packed\n\n.incbin \"bin/course_frappe_snowland_packed.bin\"\n" > build/us/courses/flower_cup/frappe_snowland/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(flower_cup)/frappe_snowland/$*.inc.mio0.o $(flower_cup)/frappe_snowland/$*.inc.mio0.s
|
||||
|
||||
$(flower_cup)/choco_mountain/%.inc.mio0.o: courses/flower_cup/choco_mountain/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(flower_cup)/choco_mountain/$*.elf.map -o $(flower_cup)/choco_mountain/$*.inc.elf $(flower_cup)/choco_mountain/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(flower_cup)/choco_mountain/$*.inc.elf $(flower_cup)/choco_mountain/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(flower_cup)/choco_mountain/$*.inc.bin $(flower_cup)/choco_mountain/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/flower_cup/choco_mountain/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_choco_mountain_packed\n\n.incbin \"bin/course_choco_mountain_packed.bin\"\n" > build/us/courses/flower_cup/choco_mountain/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(flower_cup)/choco_mountain/$*.inc.mio0.o $(flower_cup)/choco_mountain/$*.inc.mio0.s
|
||||
|
||||
$(flower_cup)/mario_raceway/%.inc.mio0.o: courses/flower_cup/mario_raceway/model.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(flower_cup)/mario_raceway/model.elf.map -o $(flower_cup)/mario_raceway/model.inc.elf $(flower_cup)/mario_raceway/model.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(flower_cup)/mario_raceway/model.inc.elf $(flower_cup)/mario_raceway/model.inc.bin
|
||||
$(MIO0TOOL) -c $(flower_cup)/mario_raceway/model.inc.bin $(flower_cup)/mario_raceway/model.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/flower_cup/mario_raceway/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_mario_raceway_packed\n\n.incbin \"bin/course_mario_raceway_packed.bin\"\n" > build/us/courses/flower_cup/mario_raceway/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(flower_cup)/mario_raceway/$*.inc.mio0.o $(flower_cup)/mario_raceway/$*.inc.mio0.s
|
||||
|
||||
$(star_cup)/wario_stadium/%.inc.mio0.o: courses/star_cup/wario_stadium/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(star_cup)/wario_stadium/$*.elf.map -o $(star_cup)/wario_stadium/$*.inc.elf $(star_cup)/wario_stadium/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(star_cup)/wario_stadium/$*.inc.elf $(star_cup)/wario_stadium/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(star_cup)/wario_stadium/$*.inc.bin $(star_cup)/wario_stadium/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/star_cup/wario_stadium/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_wario_stadium_packed\n\n.incbin \"bin/course_wario_stadium_packed.bin\"\n" > build/us/courses/star_cup/wario_stadium/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(star_cup)/wario_stadium/$*.inc.mio0.o $(star_cup)/wario_stadium/$*.inc.mio0.s
|
||||
|
||||
$(star_cup)/sherbet_land/%.inc.mio0.o: courses/star_cup/sherbet_land/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(star_cup)/sherbet_land/$*.elf.map -o $(star_cup)/sherbet_land/$*.inc.elf $(star_cup)/sherbet_land/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(star_cup)/sherbet_land/$*.inc.elf $(star_cup)/sherbet_land/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(star_cup)/sherbet_land/$*.inc.bin $(star_cup)/sherbet_land/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/star_cup/sherbet_land/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_sherbet_land_packed\n\n.incbin \"bin/course_sherbet_land_packed.bin\"\n" > build/us/courses/star_cup/sherbet_land/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(star_cup)/sherbet_land/$*.inc.mio0.o $(star_cup)/sherbet_land/$*.inc.mio0.s
|
||||
|
||||
$(star_cup)/royal_raceway/%.inc.mio0.o: courses/star_cup/royal_raceway/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(star_cup)/royal_raceway/$*.elf.map -o $(star_cup)/royal_raceway/$*.inc.elf $(star_cup)/royal_raceway/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(star_cup)/royal_raceway/$*.inc.elf $(star_cup)/royal_raceway/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(star_cup)/royal_raceway/$*.inc.bin $(star_cup)/royal_raceway/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/star_cup/royal_raceway/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_royal_raceway_packed\n\n.incbin \"bin/course_royal_raceway_packed.bin\"\n" > build/us/courses/star_cup/royal_raceway/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(star_cup)/royal_raceway/$*.inc.mio0.o $(star_cup)/royal_raceway/$*.inc.mio0.s
|
||||
|
||||
$(star_cup)/bowsers_castle/%.inc.mio0.o: courses/star_cup/bowsers_castle/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(star_cup)/bowsers_castle/$*.elf.map -o $(star_cup)/bowsers_castle/$*.inc.elf $(star_cup)/bowsers_castle/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(star_cup)/bowsers_castle/$*.inc.elf $(star_cup)/bowsers_castle/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(star_cup)/bowsers_castle/$*.inc.bin $(star_cup)/bowsers_castle/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/star_cup/bowsers_castle/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_bowsers_castle_packed\n\n.incbin \"bin/course_bowsers_castle_packed.bin\"\n" > build/us/courses/star_cup/bowsers_castle/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(star_cup)/bowsers_castle/$*.inc.mio0.o $(star_cup)/bowsers_castle/$*.inc.mio0.s
|
||||
|
||||
$(special_cup)/dks_jungle_parkway/%.inc.mio0.o: courses/special_cup/dks_jungle_parkway/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(special_cup)/dks_jungle_parkway/$*.elf.map -o $(special_cup)/dks_jungle_parkway/$*.inc.elf $(special_cup)/dks_jungle_parkway/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(special_cup)/dks_jungle_parkway/$*.inc.elf $(special_cup)/dks_jungle_parkway/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(special_cup)/dks_jungle_parkway/$*.inc.bin $(special_cup)/dks_jungle_parkway/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/special_cup/dks_jungle_parkway/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_dks_jungle_parkway_packed\n\n.incbin \"bin/course_dks_jungle_parkway_packed.bin\"\n" > build/us/courses/special_cup/dks_jungle_parkway/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(special_cup)/dks_jungle_parkway/$*.inc.mio0.o $(special_cup)/dks_jungle_parkway/$*.inc.mio0.s
|
||||
|
||||
$(special_cup)/yoshi_valley/%.inc.mio0.o: courses/special_cup/yoshi_valley/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(special_cup)/yoshi_valley/$*.elf.map -o $(special_cup)/yoshi_valley/$*.inc.elf $(special_cup)/yoshi_valley/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(special_cup)/yoshi_valley/$*.inc.elf $(special_cup)/yoshi_valley/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(special_cup)/yoshi_valley/$*.inc.bin $(special_cup)/yoshi_valley/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/special_cup/yoshi_valley/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_yoshi_valley_packed\n\n.incbin \"bin/course_yoshi_valley_packed.bin\"\n" > build/us/courses/special_cup/yoshi_valley/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(special_cup)/yoshi_valley/$*.inc.mio0.o $(special_cup)/yoshi_valley/$*.inc.mio0.s
|
||||
|
||||
$(special_cup)/banshee_boardwalk/%.inc.mio0.o: courses/special_cup/banshee_boardwalk/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(special_cup)/banshee_boardwalk/$*.elf.map -o $(special_cup)/banshee_boardwalk/$*.inc.elf $(special_cup)/banshee_boardwalk/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(special_cup)/banshee_boardwalk/$*.inc.elf $(special_cup)/banshee_boardwalk/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(special_cup)/banshee_boardwalk/$*.inc.bin $(special_cup)/banshee_boardwalk/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/special_cup/banshee_boardwalk/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_banshee_boardwalk_packed\n\n.incbin \"bin/course_banshee_boardwalk_packed.bin\"\n" > build/us/courses/special_cup/banshee_boardwalk/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(special_cup)/banshee_boardwalk/$*.inc.mio0.o $(special_cup)/banshee_boardwalk/$*.inc.mio0.s
|
||||
|
||||
$(special_cup)/rainbow_road/%.inc.mio0.o: courses/special_cup/rainbow_road/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(special_cup)/rainbow_road/$*.elf.map -o $(special_cup)/rainbow_road/$*.inc.elf $(special_cup)/rainbow_road/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(special_cup)/rainbow_road/$*.inc.elf $(special_cup)/rainbow_road/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(special_cup)/rainbow_road/$*.inc.bin $(special_cup)/rainbow_road/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/special_cup/rainbow_road/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_rainbow_road_packed\n\n.incbin \"bin/course_rainbow_road_packed.bin\"\n" > build/us/courses/special_cup/rainbow_road/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(special_cup)/rainbow_road/$*.inc.mio0.o $(special_cup)/rainbow_road/$*.inc.mio0.s
|
||||
|
||||
$(battle)/big_donut/%.inc.mio0.o: courses/battle/big_donut/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(battle)/big_donut/$*.elf.map -o $(battle)/big_donut/$*.inc.elf $(battle)/big_donut/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(battle)/big_donut/$*.inc.elf $(battle)/big_donut/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(battle)/big_donut/$*.inc.bin $(battle)/big_donut/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/battle/big_donut/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_big_donut_packed\n\n.incbin \"bin/course_big_donut_packed.bin\"\n" > build/us/courses/battle/big_donut/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(battle)/big_donut/$*.inc.mio0.o $(battle)/big_donut/$*.inc.mio0.s
|
||||
|
||||
$(battle)/block_fort/%.inc.mio0.o: courses/battle/block_fort/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(battle)/block_fort/$*.elf.map -o $(battle)/block_fort/$*.inc.elf $(battle)/block_fort/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(battle)/block_fort/$*.inc.elf $(battle)/block_fort/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(battle)/block_fort/$*.inc.bin $(battle)/block_fort/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/battle/block_fort/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_block_fort_packed\n\n.incbin \"bin/course_block_fort_packed.bin\"\n" > build/us/courses/battle/block_fort/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(battle)/block_fort/$*.inc.mio0.o $(battle)/block_fort/$*.inc.mio0.s
|
||||
|
||||
$(battle)/double_deck/%.inc.mio0.o: courses/battle/double_deck/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(battle)/double_deck/$*.elf.map -o $(battle)/double_deck/$*.inc.elf $(battle)/double_deck/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(battle)/double_deck/$*.inc.elf $(battle)/double_deck/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(battle)/double_deck/$*.inc.bin $(battle)/double_deck/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/battle/double_deck/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_double_deck_packed\n\n.incbin \"bin/course_double_deck_packed.bin\"\n" > build/us/courses/battle/double_deck/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(battle)/double_deck/$*.inc.mio0.o $(battle)/double_deck/$*.inc.mio0.s
|
||||
|
||||
$(battle)/skyscraper/%.inc.mio0.o: courses/battle/skyscraper/%.inc.c
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(battle)/skyscraper/$*.elf.map -o $(battle)/skyscraper/$*.inc.elf $(battle)/skyscraper/$*.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(battle)/skyscraper/$*.inc.elf $(battle)/skyscraper/$*.inc.bin
|
||||
$(MIO0TOOL) -c $(battle)/skyscraper/$*.inc.bin $(battle)/skyscraper/$*.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/battle/skyscraper/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_skyscraper_packed\n\n.incbin \"bin/course_skyscraper_packed.bin\"\n" > build/us/courses/battle/skyscraper/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(battle)/skyscraper/$*.inc.mio0.o $(battle)/skyscraper/$*.inc.mio0.s
|
||||
|
||||
#################### #####################
|
||||
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(LD_COURSE_VERTEX_DEPENDENCIES) undefined_syms.txt
|
||||
$(LD) $(LDFLAGS) -o $@ $(O_FILES)
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).z64: $(BUILD_DIR)/$(TARGET).elf
|
||||
|
@ -232,9 +417,10 @@ load: $(TARGET).z64
|
|||
.PHONY: all clean distclean default diff test load
|
||||
.SECONDARY:
|
||||
|
||||
# Remove built-in rules, to improve performance
|
||||
# Remove built-in rules, to improve build/us/courses/star_cup/bowsers_castle/model.inc.mio0.performance
|
||||
MAKEFLAGS += --no-builtin-rules
|
||||
|
||||
-include $(DEP_FILES)
|
||||
|
||||
|
||||
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
|
||||
|
|
|
@ -26,8 +26,9 @@ COURSE_DL_NAMES := $(addprefix course_,$(addsuffix _dl,$(COURSE_NAMES)))
|
|||
COURSE_DL_MIO0_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .mio0,$(COURSE_DL_NAMES)))
|
||||
COURSE_DL_MIO0_OBJ_FILES := $(COURSE_DL_MIO0_FILES:.mio0=.mio0.o)
|
||||
|
||||
COURSE_VERTEX_NAMES := $(addprefix course_,$(addsuffix _vertex,$(COURSE_NAMES)))
|
||||
COURSE_VERTEX_MIO0_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .mio0,$(COURSE_VERTEX_NAMES)))
|
||||
|
||||
# COURSE_VERTEX_NAMES := $(addprefix course_,$(addsuffix _vertex,$(COURSE_NAMES)))
|
||||
# COURSE_VERTEX_MIO0_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .mio0,$(COURSE_VERTEX_NAMES)))
|
||||
|
||||
COURSE_MIO0_OBJ_FILES := $(COURSE_DL_MIO0_OBJ_FILES)
|
||||
|
||||
|
@ -121,7 +122,7 @@ KARTS_DIR := bin/karts
|
|||
ALL_KARTS_DIRS := $(wildcard $(KARTS_DIR)/*)
|
||||
KART_TEXTURE_MIO0_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.bin,%.mio0,$(wildcard $(KARTS_DIR)/*/*.bin)))
|
||||
|
||||
MIO0_FILES := $(COURSE_VERTEX_MIO0_FILES) $(OTHER_DATA_MIO0_FILES) $(TEXTURE_DATA_MIO0_FILES) $(STANDALONE_TEXTURE_MIO0_FILES) $(KART_TEXTURE_MIO0_FILES)
|
||||
MIO0_FILES := $(OTHER_DATA_MIO0_FILES) $(TEXTURE_DATA_MIO0_FILES) $(STANDALONE_TEXTURE_MIO0_FILES) $(KART_TEXTURE_MIO0_FILES)
|
||||
|
||||
MUSIC_FILES = \
|
||||
$(MUSIC_DIR)/seq_00.m64 \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,561 @@
|
|||
#include "types.h"
|
||||
|
||||
mk64_Vtx d_course_double_deck_vertex[] = {
|
||||
|
||||
{{ 577, 60, 100}, { -317, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 80, 100}, { -317, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 80, 576}, { 9839, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 60, 576}, { 9839, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 385, 90, 384}, { -189, 610}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 110, 384}, { -189, 1037}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 110, 100}, { 5871, 1037}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 90, 100}, { 5871, 610}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 193, 80, 576}, { 1917, 1057}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 80, 576}, { -61, 1057}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 60, 576}, { -61, 1484}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 193, 60, 576}, { 1917, 1483}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 193, 50, 384}, { 3932, 1228}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 193, 80, 576}, { 0, 614}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 193, 60, 576}, { 0, 1023}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 193, 30, 384}, { 3932, 1638}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 60, 576}, { -128, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 80, 576}, { -128, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 80, 576}, { 3967, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 60, 576}, { 3968, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 90, 100}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 110, 100}, { 0, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 80, 100}, { 4096, 810}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 60, 100}, { 4096, 384}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 90, -384}, { 5832, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 110, -384}, { 5832, 614}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 110, -384}, { 0, 614}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 90, -384}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 80, -192}, { 1899, 1057}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 80, -100}, { -61, 1057}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 60, -100}, { -61, 1484}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 60, -192}, { 1899, 1484}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 385, 50, -192}, { 3932, 1228}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 80, -192}, { 0, 614}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 60, -192}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 30, -192}, { 3932, 1638}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 60, -576}, { -128, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 80, -576}, { -128, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 80, -384}, { 3968, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 60, -384}, { 3967, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 60, -100}, { -61, 1070}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 80, -100}, { -61, 1497}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 110, -100}, { 4034, 2137}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 90, -100}, { 4034, 1710}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 60, 576}, { -61, 1070}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 80, 576}, { -61, 1497}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 110, 384}, { 4034, 2137}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 90, 384}, { 4034, 1710}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 60, 576}, { -128, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 80, 576}, { -128, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 80, 384}, { 3967, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 60, 384}, { 3967, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -100, 90, -384}, { -188, 1023}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 110, -384}, { -188, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 110, -384}, { 5853, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 90, -384}, { 5853, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 90, -100}, { -189, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 110, -100}, { -189, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 110, -384}, { 5867, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 90, -384}, { 5867, 1023}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -383, 90, 100}, { -189, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 110, 100}, { -189, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 110, 384}, { 5871, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 90, 384}, { 5871, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 100, 90, 384}, { -189, 1023}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 110, 384}, { -189, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 110, 384}, { 5885, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 90, 384}, { 5885, 1023}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 50, 192}, { 3932, 1228}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 80, 192}, { 0, 614}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 60, 192}, { 0, 1023}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 30, 192}, { 3932, 1638}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 90, 384}, { 188, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 110, 384}, { 188, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 80, 576}, { 4284, 810}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 60, 576}, { 4284, 384}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 60, 576}, { 188, 1050}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 80, 576}, { 188, 1477}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 80, 576}, { 10326, 1477}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 60, 576}, { 10326, 1050}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 110, 384}, { 6230, 1037}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 110, 384}, { 188, 1037}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 90, 384}, { 188, 1463}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 90, 384}, { 6230, 1463}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 60, 100}, { 3932, 1638}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 80, 100}, { 3932, 1228}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 110, 100}, { 0, 614}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 90, 100}, { 0, 1023}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 80, 192}, { 1886, 614}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 80, 100}, { 0, 614}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 60, 100}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 60, 192}, { 1886, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 60, -576}, { -317, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 80, -576}, { -317, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 80, -576}, { 9853, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 60, -576}, { 9853, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 60, -768}, { -445, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 769, 98, -768}, { -445, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 98, -768}, { 13821, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 60, -768}, { 13821, 1023}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 60, -768}, { 13664, 1023}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 98, -768}, { 13664, 253}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -767, 98, -768}, { 0, 253}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -767, 60, -768}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -767, 60, -768}, { 13678, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 98, -768}, { 13678, 253}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 98, -100}, { 0, 253}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 60, -100}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 60, -100}, { 1024, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 98, -100}, { 1023, 253}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 98, 100}, { -3072, 253}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 60, 100}, { -3072, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 60, 100}, { -445, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 98, 100}, { -445, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 98, 768}, { 13807, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 60, 768}, { 13807, 1023}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 100, 60, -768}, { -133, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 98, -768}, { -133, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 98, -768}, { 4133, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 60, -768}, { 4133, 1023}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 80, -576}, { -131, 1037}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 50, -384}, { 4014, 1037}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 30, -384}, { 4079, 615}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 60, -576}, { -65, 615}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 80, -384}, { -131, 1037}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 50, -384}, { 4014, 1037}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 30, -384}, { 4079, 615}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 60, -384}, { -65, 615}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 80, 576}, { -131, 1037}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 50, 384}, { 4014, 1037}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 30, 384}, { 4079, 615}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 60, 576}, { -65, 615}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 80, 384}, { -131, 1037}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 50, 384}, { 4014, 1037}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 30, 384}, { 4079, 615}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 60, 384}, { -65, 615}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 60, -100}, { -445, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 98, -100}, { -445, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 98, -768}, { 13803, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 60, -768}, { 13803, 1023}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -767, 98, 768}, { -444, 1049}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 98, 768}, { 13789, 1049}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 60, 768}, { 13789, 246}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -767, 60, 768}, { -444, 246}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -191, 80, -576}, { 1885, 1057}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 80, -576}, { -60, 1057}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 60, -576}, { -60, 1483}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -191, 60, -576}, { 1885, 1484}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -191, 50, -384}, { 3932, 1228}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 80, -576}, { 0, 614}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 60, -576}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 30, -384}, { 3932, 1638}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 60, -576}, { -128, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 80, -576}, { -128, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 80, -576}, { 3967, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 60, -576}, { 3967, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 60, -576}, { -60, 1070}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 80, -576}, { -60, 1497}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 110, -384}, { 4035, 2137}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 90, -384}, { 4035, 1710}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 100, 90, -384}, { 3932, 409}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 110, -384}, { 3932, 0}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 80, -576}, { 0, 614}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 60, -576}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 60, -100}, { -317, 1023}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 80, -100}, { -317, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 80, -576}, { 9835, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 60, -576}, { 9835, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -100, 60, 768}, { 133, 1074}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 98, 768}, { 133, 1876}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 98, 768}, { 4400, 1876}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 60, 768}, { 4400, 1074}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 60, 768}, { 0, 1074}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 98, 768}, { 0, 1876}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 98, 768}, { 14267, 1876}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 60, 768}, { 14267, 1074}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 60, 768}, { -445, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 98, 768}, { -445, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 98, 100}, { 13807, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 60, 100}, { 13807, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 60, 100}, { -133, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 98, 100}, { -133, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 98, -100}, { 4133, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 60, -100}, { 4133, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -383, 90, -384}, { 5867, 1443}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 110, -384}, { 5867, 1017}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 110, -100}, { -189, 1017}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 90, -100}, { -189, 1444}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 90, -100}, { -189, 1030}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 110, -100}, { -189, 1457}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 80, -100}, { 3906, 817}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 60, -100}, { 3906, 390}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 193, 90, -192}, { -409, -2662}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 193, 90, 192}, { -409, 1269}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, 100}, { 1556, 326}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, -100}, { 1556, -1721}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, -384}, { 1556, -4628}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -575, 60, -100}, { 1966, -697}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -575, 60, 100}, { 1966, 1350}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -383, 90, 100}, { 3932, 1350}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -383, 90, -100}, { 3932, -697}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, 100}, { -2539, -4793}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 577, 60, 100}, { -573, -4793}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 577, 60, -100}, { -573, -6841}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, -100}, { -2539, -6841}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 100, 90, -384}, { 1712, 3563}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 100, 60, -576}, { 1712, 1597}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 60, -576}, { -335, 1597}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 90, -384}, { -335, 3563}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 769, 60, -100}, { 1392, 1350}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 769, 60, -768}, { 1392, -5488}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, -384}, { -573, -1556}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, -192}, { -573, 409}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, -576}, { -573, -3522}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 385, 30, -384}, { -2539, -1556}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 385, 30, -192}, { -2539, 409}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, -100}, { -573, 1350}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -767, 60, -768}, { -1023, -368}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, -576}, { 942, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -383, 60, -576}, { 2908, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -191, 60, -576}, { 4874, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, -768}, { 5808, -368}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -383, 30, -384}, { 2908, 3563}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -191, 30, -384}, { 4874, 3563}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -191, 60, -576}, { 4874, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, -576}, { 5808, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, -768}, { 5808, -368}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 193, 90, -192}, { -409, -2662}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, -384}, { 1556, -4628}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 100, 90, -384}, { -1359, -4628}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -191, 90, -192}, { -4341, -2662}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 90, -384}, { -3407, -4628}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 769, 60, 768}, { 6512, 1024}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, 576}, { 4546, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 385, 60, 576}, { 2580, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 193, 60, 576}, { 614, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 100, 60, 768}, { -335, 1023}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 385, 30, 384}, { 2580, -2908}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 193, 30, 384}, { 614, -2908}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 193, 90, 192}, { 5734, -778}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -191, 90, 192}, { 1802, -778}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 90, 384}, { 2736, 1187}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 100, 90, 384}, { 4784, 1187}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, 384}, { 7700, 1187}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -383, 90, 384}, { -163, 1187}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -383, 90, 100}, { -163, -1721}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 100, 60, 576}, { -335, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 100, 90, 384}, { 8880, -2908}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 90, 384}, { 6832, -2908}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 60, 576}, { 6832, -942}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 100, 60, 576}, { 8880, -942}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ 385, 90, 100}, { 7700, -1721}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 60, 576}, { 6832, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, 768}, { 6832, 1023}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 100, 60, 768}, { 8880, 1023}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 100, 60, 576}, { 8880, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -767, 60, 768}, { 0, 1023}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, 768}, { 6832, 1023}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, 576}, { 6832, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, 576}, { 1966, -942}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, 384}, { 1966, -2908}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, 192}, { 1966, -4874}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -767, 60, 100}, { 0, -5817}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -383, 90, -384}, { -163, -4628}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -191, 90, -192}, { 1802, -2662}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -100, 90, -384}, { 2736, -4628}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -383, 90, -100}, { -163, -1721}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -383, 90, 100}, { -163, 326}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -191, 90, 192}, { 1802, 1269}, {0xc8, 0x60, 0x60, 0x00}},
|
||||
{{ -767, 60, 100}, { 0, 1350}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, 100}, { 1966, 1350}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, -100}, { 1966, -697}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -767, 60, -100}, { 0, -697}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, -576}, { 1966, -5570}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -767, 60, -768}, { 0, -7536}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -575, 60, 100}, { 1966, -5817}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -383, 30, 384}, { 3932, -2908}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -383, 30, 192}, { 3932, -4874}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, -768}, { -335, -368}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ -100, 60, -576}, { -335, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 100, 60, -576}, { 1712, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 100, 60, -768}, { 1712, -368}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, -576}, { 6594, 1597}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 587, 60, -586}, { 6696, 1495}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 769, 60, -768}, { 8560, -368}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 769, 60, 100}, { 1392, -4793}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 769, 60, -100}, { 1392, -6841}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, -100}, { -573, -6841}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 769, 60, 100}, { 1392, -4793}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, -100}, { -573, -6841}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, 100}, { -573, -4793}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 769, 60, 768}, { 1392, 2048}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 60, 576}, { -573, 81}, {0xa4, 0x34, 0x34, 0x00}},
|
||||
{{ 577, 0, -100}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 20, -100}, { 0, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 50, -100}, { 4095, 2090}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 30, -100}, { 4096, 1663}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 30, -100}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 50, -100}, { 0, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 50, -192}, { 1960, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 30, -192}, { 1960, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 30, 100}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 50, 100}, { 0, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 20, 100}, { 4096, 810}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 0, 100}, { 4096, 384}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 0, 100}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 20, 100}, { 0, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 20, 576}, { 10156, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 0, 576}, { 10156, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 385, 30, -384}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 385, 50, -384}, { 0, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 50, -384}, { 6075, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 30, -384}, { 6075, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 0, -576}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 20, -576}, { 0, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 50, -384}, { 4095, 2090}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 30, -384}, { 4095, 1664}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 30, -384}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 50, -384}, { 0, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -191, 50, -384}, { 1946, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -191, 30, -384}, { 1946, 1023}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 30, -384}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 50, -384}, { 0, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 20, -576}, { 4095, 810}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 0, -576}, { 4095, 384}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 0, -576}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 20, -576}, { 0, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 20, -576}, { 10171, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 577, 0, -576}, { 10171, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 30, 384}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 50, 384}, { 0, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 50, 100}, { 6060, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 385, 30, 100}, { 6060, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -383, 50, 384}, { 5800, 614}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 50, 384}, { 0, 614}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 30, 384}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 30, 384}, { 5800, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 0, 100}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 20, 100}, { 0, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 50, 100}, { 4095, 2090}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 30, 100}, { 4095, 1663}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -383, 30, 100}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 50, 100}, { 0, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 50, 192}, { 1964, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 30, 192}, { 1964, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -575, 0, 576}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 20, 576}, { 0, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 20, 100}, { 10156, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 0, 100}, { 10156, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -100, 0, 576}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 20, 576}, { 0, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 20, 576}, { 10138, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 0, 576}, { 10138, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 0, 576}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 20, 576}, { 0, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 20, 576}, { 10171, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 0, 576}, { 10171, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 0, 576}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 20, 576}, { 0, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 50, 384}, { 4095, 2090}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 30, 384}, { 4095, 1663}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 30, 384}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 50, 384}, { 0, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 193, 50, 384}, { 1979, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 193, 30, 384}, { 1979, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 30, 384}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 50, 384}, { 0, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 20, 576}, { 4096, 810}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -100, 0, 576}, { 4096, 384}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -575, 0, -576}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -575, 20, -576}, { 0, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 20, -576}, { 10138, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 0, -576}, { 10138, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -767, 0, -768}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 38, -768}, { 0, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 38, -100}, { 14248, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 0, -100}, { 14248, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 0, -100}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 38, -100}, { 0, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 38, 100}, { 4266, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 0, 100}, { 4266, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 0, 100}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 38, 100}, { 0, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 38, 768}, { 14252, 1826}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 0, 768}, { 14252, 1023}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -767, 38, 768}, { 13562, 253}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 38, 768}, { -102, 253}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 0, 768}, { -102, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -767, 0, 768}, { 13562, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 0, -768}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 38, -768}, { 0, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -767, 38, -768}, { 14234, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -767, 0, -768}, { 14234, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 577, 20, -100}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 0, -100}, { 0, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 0, -576}, { 10152, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 577, 20, -576}, { 10152, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 769, 0, -100}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 38, -100}, { 0, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 38, -768}, { 14248, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 0, -768}, { 14248, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 100, 0, -768}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 38, -768}, { 0, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 38, -768}, { 4266, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 0, -768}, { 4266, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 769, 0, -768}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 769, 38, -768}, { 0, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 38, -768}, { 14267, 1826}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 100, 0, -768}, { 14267, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -100, 0, 768}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -100, 38, 768}, { 0, 1826}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 38, 768}, { 4266, 1826}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 0, 768}, { 4266, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 193, 30, 192}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ 193, 50, 192}, { 0, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -191, 50, 192}, { 8191, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -191, 30, 192}, { 8191, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 30, -384}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 50, -384}, { 0, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 50, -100}, { 6056, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 30, -100}, { 6056, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ -383, 30, -100}, { 0, 1024}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -383, 50, -100}, { 0, 1450}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 20, -100}, { 4095, 810}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 0, -100}, { 4095, 384}, {0xbc, 0xbc, 0xbc, 0x00}},
|
||||
{{ -575, 0, -100}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 20, -100}, { 0, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 20, -576}, { 10152, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -575, 0, -576}, { 10152, 1023}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 193, 30, -192}, { 0, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 193, 50, -192}, { 0, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 193, 50, 192}, { 8191, 1450}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 193, 30, 192}, { 8191, 1024}, {0x7c, 0x7c, 0x7c, 0x00}},
|
||||
{{ 100, 0, 768}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 100, 38, 768}, { 0, 1826}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 38, 768}, { 14267, 1826}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 0, 768}, { 14267, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 769, 0, 768}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 38, 768}, { 0, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 38, 100}, { 14252, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 0, 100}, { 14252, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 0, 100}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 38, 100}, { 0, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 38, -100}, { 4266, 1826}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ 769, 0, -100}, { 4266, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 30, 192}, { 0, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 50, 192}, { 0, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 50, -192}, { 8191, 1450}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 30, -192}, { 8191, 1024}, {0xfc, 0xfc, 0xfc, 0x00}},
|
||||
{{ -191, 30, -192}, { 0, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ -191, 50, -192}, { 0, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 193, 50, -192}, { 8191, 1450}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 193, 30, -192}, { 8191, 1024}, {0xd8, 0xd8, 0xd8, 0x00}},
|
||||
{{ 385, 30, 100}, { 0, 0}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, -90}, { 0, 0}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, -100}, { 0, 0}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, 100}, { -491, 2374}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 577, 0, 100}, { 1474, 2374}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 577, 0, -100}, { 1474, 326}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, -100}, { -491, 326}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -191, 30, 192}, { 1802, 1269}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, 100}, { -163, 326}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, 192}, { -163, 1269}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, 384}, { -163, 1187}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -191, 30, 192}, { 1802, -778}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, 192}, { -163, -778}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 30, 384}, { 2736, 1187}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 193, 30, -192}, { -409, -614}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, -100}, { 1556, 326}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, -192}, { 1556, -614}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 193, 30, 192}, { -409, 3317}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, 100}, { 1556, 2374}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 193, 30, 192}, { 5734, -778}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, 384}, { 7700, 1187}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, 100}, { 7700, -1721}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 193, 30, 384}, { 5734, 1187}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -767, 0, 768}, { -1024, 1024}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, 768}, { 5808, 1024}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, 576}, { 5808, -942}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -575, 0, 576}, { 942, -942}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 193, 50, -192}, { 3932, -2908}, {0x84, 0xfc, 0x58, 0x00}},
|
||||
{{ -191, 50, -192}, { 0, -2908}, {0x84, 0xfc, 0x58, 0x00}},
|
||||
{{ -191, 50, 192}, { 0, 1023}, {0x84, 0xfc, 0x58, 0x00}},
|
||||
{{ 193, 50, 192}, { 3932, 1023}, {0x84, 0xfc, 0x58, 0x00}},
|
||||
{{ 100, 30, 384}, { 4784, 1187}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 769, 0, 768}, { 6512, 1024}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 577, 0, 576}, { 4546, -942}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, 576}, { -335, -942}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 769, 0, 768}, { 6512, 1024}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, 576}, { -335, -942}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, 768}, { -335, 1023}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 30, 384}, { 1712, -860}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 30, 384}, { -335, -860}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 0, 576}, { -335, 1105}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 100, 0, 576}, { 1712, 1105}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 0, 576}, { -335, -942}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, 768}, { -335, 1023}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, 768}, { 1712, 1023}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, 576}, { 1712, -942}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -191, 30, -192}, { 1802, -2662}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, -100}, { -163, -1721}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, 100}, { -163, 326}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -191, 30, 192}, { 1802, 1269}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, -384}, { -163, -4628}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -575, 0, -100}, { -2129, -1721}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -575, 0, 100}, { -2129, 326}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 769, 0, 100}, { 1392, 1350}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 769, 0, -100}, { 1392, -697}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 577, 0, -100}, { -573, -697}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 577, 0, 100}, { -573, 1350}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 769, 0, -768}, { 1392, -7536}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 577, 0, -576}, { -573, -5570}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, -768}, { -335, -368}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, -576}, { -335, 1597}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 577, 0, -576}, { 4546, 1597}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 587, 0, -586}, { 4648, 1495}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 769, 0, -768}, { 6512, -368}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, -768}, { -335, -368}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, -576}, { -335, 1597}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, -576}, { 1712, 1597}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, -768}, { -335, -368}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, -576}, { 1712, 1597}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 100, 0, -768}, { 1712, -368}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -767, 0, -768}, { -2047, -368}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -575, 0, -576}, { -81, 1597}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, -576}, { 4784, 1597}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -100, 0, -768}, { 4784, -368}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -767, 0, 768}, { 0, 2048}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -575, 0, 576}, { 1966, 81}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -575, 0, 100}, { 1966, -4793}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -767, 0, 100}, { 0, -4793}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -767, 0, 100}, { 0, 1350}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -575, 0, 100}, { 1966, 1350}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -575, 0, -100}, { 1966, -697}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -767, 0, -100}, { 0, -697}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -575, 0, -576}, { 1966, -5570}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -767, 0, -768}, { 0, -7536}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 769, 0, 768}, { 1392, 6144}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 769, 0, 100}, { 1392, -697}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 577, 0, 100}, { -573, -697}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ 577, 0, 576}, { -573, 4177}, {0x28, 0x78, 0x28, 0x00}},
|
||||
{{ -191, 30, -192}, { -245, 1433}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 30, -384}, { 688, -532}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -191, 30, -384}, { -245, -532}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 193, 30, -192}, { 3686, 1433}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 100, 30, -384}, { 2736, -532}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -383, 30, -384}, { -2211, -532}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, -384}, { 5652, -532}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 385, 30, -192}, { 5652, 1433}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 100, 30, -384}, { 1712, 3563}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 100, 0, -576}, { 1712, 1597}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 0, -576}, { -335, 1597}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ 100, 30, -384}, { 1712, 3563}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 0, -576}, { -335, 1597}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
{{ -100, 30, -384}, { -335, 3563}, {0x3c, 0xbc, 0x3c, 0x00}},
|
||||
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,426 @@
|
|||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include "types.h"
|
||||
|
||||
/*
|
||||
#include "courses/mushroom_cup/luigi_raceway/model.inc.c"
|
||||
#include "courses/mushroom_cup/moo_moo_farm/model.inc.c"
|
||||
#include "courses/mushroom_cup/koopa_beach/model.inc.c"
|
||||
#include "courses/mushroom_cup/kalimari_desert/model.inc.c"
|
||||
|
||||
#include "courses/flower_cup/toads_turnpike/model.inc.c"
|
||||
#include "courses/flower_cup/frappe_snowland/model.inc.c"
|
||||
#include "courses/flower_cup/choco_mountain/model.inc.c"
|
||||
#include "courses/flower_cup/mario_raceway/model.inc.c"
|
||||
|
||||
#include "courses/star_cup/wario_stadium/model.inc.c"
|
||||
#include "courses/star_cup/sherbet_land/model.inc.c"
|
||||
#include "courses/star_cup/royal_raceway/model.inc.c"
|
||||
#include "courses/star_cup/bowsers_castle/model.inc.c"
|
||||
|
||||
#include "courses/special_cup/dks_jungle_parkway/model.inc.c"
|
||||
#include "courses/special_cup/yoshi_valley/model.inc.c"
|
||||
#include "courses/special_cup/banshee_boardwalk/model.inc.c"
|
||||
#include "courses/special_cup/rainbow_road/model.inc.c"
|
||||
|
||||
#include "courses/battle/block_fort/model.inc.c"
|
||||
#include "courses/battle/big_donut/model.inc.c"
|
||||
#include "courses/battle/double_deck/model.inc.c"
|
||||
#include "courses/battle/skyscraper/model.inc.c"
|
||||
*/
|
||||
|
||||
|
||||
extern u32 _course_mario_raceway_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_mario_raceway_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _mario_raceway_vertexSegmentRomStart[];
|
||||
extern u32 _mario_raceway_vertexSegmentRomEnd[];
|
||||
extern u32 _course_mario_raceway_offsetsSegmentRomStart[];
|
||||
extern u32 _course_mario_raceway_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_mario_raceway_packed[];
|
||||
extern u32 mario_raceway_textures[];
|
||||
|
||||
extern u32 _course_choco_mountain_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_choco_mountain_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _choco_mountain_vertexSegmentRomStart[];
|
||||
extern u32 _choco_mountain_vertexSegmentRomEnd[];
|
||||
extern u32 _course_choco_mountain_offsetsSegmentRomStart[];
|
||||
extern u32 _course_choco_mountain_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_choco_mountain_packed[];
|
||||
extern u32 choco_mountain_textures[];
|
||||
|
||||
extern u32 _course_bowsers_castle_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_bowsers_castle_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _bowsers_castle_vertexSegmentRomStart[];
|
||||
extern u32 _bowsers_castle_vertexSegmentRomEnd[];
|
||||
extern u32 _course_bowsers_castle_offsetsSegmentRomStart[];
|
||||
extern u32 _course_bowsers_castle_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_bowsers_castle_packed[];
|
||||
extern u32 bowsers_castle_textures[];
|
||||
|
||||
extern u32 _course_banshee_boardwalk_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_banshee_boardwalk_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _banshee_boardwalk_vertexSegmentRomStart[];
|
||||
extern u32 _banshee_boardwalk_vertexSegmentRomEnd[];
|
||||
extern u32 _course_banshee_boardwalk_offsetsSegmentRomStart[];
|
||||
extern u32 _course_banshee_boardwalk_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_banshee_boardwalk_packed[];
|
||||
extern u32 banshee_boardwalk_textures[];
|
||||
|
||||
extern u32 _course_yoshi_valley_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_yoshi_valley_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _yoshi_valley_vertexSegmentRomStart[];
|
||||
extern u32 _yoshi_valley_vertexSegmentRomEnd[];
|
||||
extern u32 _course_yoshi_valley_offsetsSegmentRomStart[];
|
||||
extern u32 _course_yoshi_valley_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_yoshi_valley_packed[];
|
||||
extern u32 yoshi_valley_textures[];
|
||||
|
||||
extern u32 _course_frappe_snowland_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_frappe_snowland_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _frappe_snowland_vertexSegmentRomStart[];
|
||||
extern u32 _frappe_snowland_vertexSegmentRomEnd[];
|
||||
extern u32 _course_frappe_snowland_offsetsSegmentRomStart[];
|
||||
extern u32 _course_frappe_snowland_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_frappe_snowland_packed[];
|
||||
extern u32 frappe_snowland_textures[];
|
||||
|
||||
extern u32 _course_koopa_troopa_beach_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_koopa_troopa_beach_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _koopa_troopa_beach_vertexSegmentRomStart[];
|
||||
extern u32 _koopa_troopa_beach_vertexSegmentRomEnd[];
|
||||
extern u32 _course_koopa_troopa_beach_offsetsSegmentRomStart[];
|
||||
extern u32 _course_koopa_troopa_beach_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_koopa_troopa_beach_packed[];
|
||||
extern u32 koopa_troopa_beach_textures[];
|
||||
|
||||
extern u32 _course_royal_raceway_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_royal_raceway_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _royal_raceway_vertexSegmentRomStart[];
|
||||
extern u32 _royal_raceway_vertexSegmentRomEnd[];
|
||||
extern u32 _course_royal_raceway_offsetsSegmentRomStart[];
|
||||
extern u32 _course_royal_raceway_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_royal_raceway_packed[];
|
||||
extern u32 royal_raceway_textures[];
|
||||
|
||||
extern u32 _course_luigi_raceway_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_luigi_raceway_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _luigi_raceway_vertexSegmentRomStart[];
|
||||
extern u32 _luigi_raceway_vertexSegmentRomEnd[];
|
||||
extern u32 _course_luigi_raceway_offsetsSegmentRomStart[];
|
||||
extern u32 _course_luigi_raceway_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_luigi_raceway_packed[];
|
||||
extern u32 luigi_raceway_textures[];
|
||||
|
||||
extern u32 _course_moo_moo_farm_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_moo_moo_farm_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _moo_moo_farm_vertexSegmentRomStart[];
|
||||
extern u32 _moo_moo_farm_vertexSegmentRomEnd[];
|
||||
extern u32 _course_moo_moo_farm_offsetsSegmentRomStart[];
|
||||
extern u32 _course_moo_moo_farm_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_moo_moo_farm_packed[];
|
||||
extern u32 moo_moo_farm_textures[];
|
||||
|
||||
extern u32 _course_toads_turnpike_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_toads_turnpike_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _toads_turnpike_vertexSegmentRomStart[];
|
||||
extern u32 _toads_turnpike_vertexSegmentRomEnd[];
|
||||
extern u32 _course_toads_turnpike_offsetsSegmentRomStart[];
|
||||
extern u32 _course_toads_turnpike_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_toads_turnpike_packed[];
|
||||
extern u32 toads_turnpike_textures[];
|
||||
|
||||
extern u32 _course_kalimari_desert_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_kalimari_desert_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _kalimari_desert_vertexSegmentRomStart[];
|
||||
extern u32 _kalimari_desert_vertexSegmentRomEnd[];
|
||||
extern u32 _course_kalimari_desert_offsetsSegmentRomStart[];
|
||||
extern u32 _course_kalimari_desert_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_kalimari_desert_packed[];
|
||||
extern u32 kalimari_desert_textures[];
|
||||
|
||||
extern u32 _course_sherbet_land_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_sherbet_land_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _sherbet_land_vertexSegmentRomStart[];
|
||||
extern u32 _sherbet_land_vertexSegmentRomEnd[];
|
||||
extern u32 _course_sherbet_land_offsetsSegmentRomStart[];
|
||||
extern u32 _course_sherbet_land_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_sherbet_land_packed[];
|
||||
extern u32 sherbet_land_textures[];
|
||||
|
||||
extern u32 _course_rainbow_road_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_rainbow_road_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _rainbow_road_vertexSegmentRomStart[];
|
||||
extern u32 _rainbow_road_vertexSegmentRomEnd[];
|
||||
extern u32 _course_rainbow_road_offsetsSegmentRomStart[];
|
||||
extern u32 _course_rainbow_road_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_rainbow_road_packed[];
|
||||
extern u32 rainbow_road_textures[];
|
||||
|
||||
extern u32 _course_wario_stadium_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_wario_stadium_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _wario_stadium_vertexSegmentRomStart[];
|
||||
extern u32 _wario_stadium_vertexSegmentRomEnd[];
|
||||
extern u32 _course_wario_stadium_offsetsSegmentRomStart[];
|
||||
extern u32 _course_wario_stadium_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_wario_stadium_packed[];
|
||||
extern u32 wario_stadium_textures[];
|
||||
|
||||
extern u32 _course_block_fort_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_block_fort_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _block_fort_vertexSegmentRomStart[];
|
||||
extern u32 _block_fort_vertexSegmentRomEnd[];
|
||||
extern u32 _course_block_fort_offsetsSegmentRomStart[];
|
||||
extern u32 _course_block_fort_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_block_fort_packed[];
|
||||
extern u32 block_fort_textures[];
|
||||
|
||||
extern u32 _course_skyscraper_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_skyscraper_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _skyscraper_vertexSegmentRomStart[];
|
||||
extern u32 _skyscraper_vertexSegmentRomEnd[];
|
||||
extern u32 _course_skyscraper_offsetsSegmentRomStart[];
|
||||
extern u32 _course_skyscraper_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_skyscraper_packed[];
|
||||
extern u32 skyscraper_textures[];
|
||||
|
||||
extern u32 _course_double_deck_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_double_deck_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _double_deck_vertexSegmentRomStart[];
|
||||
extern u32 _double_deck_vertexSegmentRomEnd[];
|
||||
extern u32 _course_double_deck_offsetsSegmentRomStart[];
|
||||
extern u32 _course_double_deck_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_double_deck_packed[];
|
||||
extern u32 double_deck_textures[];
|
||||
|
||||
extern u32 _course_dks_jungle_parkway_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_dks_jungle_parkway_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _dks_jungle_parkway_vertexSegmentRomStart[];
|
||||
extern u32 _dks_jungle_parkway_vertexSegmentRomEnd[];
|
||||
extern u32 _course_dks_jungle_parkway_offsetsSegmentRomStart[];
|
||||
extern u32 _course_dks_jungle_parkway_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_dks_jungle_parkway_packed[];
|
||||
extern u32 dks_jungle_parkway_textures[];
|
||||
|
||||
extern u32 _course_big_donut_dl_mio0SegmentRomStart[];
|
||||
extern u32 _course_big_donut_dl_mio0SegmentRomEnd[];
|
||||
extern u32 _big_donut_vertexSegmentRomStart[];
|
||||
extern u32 _big_donut_vertexSegmentRomEnd[];
|
||||
extern u32 _course_big_donut_offsetsSegmentRomStart[];
|
||||
extern u32 _course_big_donut_offsetsSegmentRomEnd[];
|
||||
extern u32 d_course_big_donut_packed[];
|
||||
extern u32 big_donut_textures[];
|
||||
|
||||
/*
|
||||
extern mk64_Vtx d_course_mario_raceway_vertex[];
|
||||
extern mk64_Vtx d_course_choco_mountain_vertex[];
|
||||
extern mk64_Vtx d_course_bowsers_castle_vertex[];
|
||||
extern mk64_Vtx d_course_banshee_boardwalk_vertex[];
|
||||
extern mk64_Vtx d_course_yoshi_valley_vertex[];
|
||||
extern mk64_Vtx d_course_frappe_snowland_vertex[];
|
||||
extern mk64_Vtx d_course_koopa_troopa_beach_vertex[];
|
||||
extern mk64_Vtx d_course_royal_raceway_vertex[];
|
||||
extern mk64_Vtx d_course_luigi_raceway_vertex[];
|
||||
extern mk64_Vtx d_course_moo_moo_farm_vertex[];
|
||||
extern mk64_Vtx d_course_toads_turnpike_vertex[];
|
||||
extern mk64_Vtx d_course_kalimari_desert_vertex[];
|
||||
extern mk64_Vtx d_course_sherbet_land_vertex[];
|
||||
extern mk64_Vtx d_course_rainbow_road_vertex[];
|
||||
extern mk64_Vtx d_course_wario_stadium_vertex[];
|
||||
extern mk64_Vtx d_course_block_fort_vertex[];
|
||||
extern mk64_Vtx d_course_skyscraper_vertex[];
|
||||
extern mk64_Vtx d_course_double_deck_vertex[];
|
||||
extern mk64_Vtx d_course_dks_jungle_parkway_vertex[];
|
||||
extern mk64_Vtx d_course_big_donut_vertex[];
|
||||
*/
|
||||
|
||||
|
||||
// 0x008284D0, 0x0082B620, 0x0088FA10, 0x0089B510, 0x0088CD70, 0x0088D070, 0x0F000000, 0x0000167D, 0x0F0096F4, 0x00006930, 0x09000000, 0x00000000
|
||||
struct courseTable gCourseTable[] = {{
|
||||
_course_mario_raceway_dl_mio0SegmentRomStart, _course_mario_raceway_dl_mio0SegmentRomEnd,
|
||||
_mario_raceway_vertexSegmentRomStart, _mario_raceway_vertexSegmentRomEnd,
|
||||
_course_mario_raceway_offsetsSegmentRomStart, _course_mario_raceway_offsetsSegmentRomEnd,
|
||||
d_course_mario_raceway_vertex, 0x0000167D,
|
||||
d_course_mario_raceway_packed, 0x00006930,
|
||||
mario_raceway_textures, (u16) 0, (u16) 0x0000,
|
||||
}, {
|
||||
_course_choco_mountain_dl_mio0SegmentRomStart, _course_choco_mountain_dl_mio0SegmentRomEnd,
|
||||
_choco_mountain_vertexSegmentRomStart, _choco_mountain_vertexSegmentRomEnd,
|
||||
_course_choco_mountain_offsetsSegmentRomStart, _course_choco_mountain_offsetsSegmentRomEnd,
|
||||
d_course_choco_mountain_vertex, 0x000015B8,
|
||||
d_course_choco_mountain_packed, 0x00005AE8,
|
||||
choco_mountain_textures, 1, 0x0000,
|
||||
}, {
|
||||
_course_bowsers_castle_dl_mio0SegmentRomStart, _course_bowsers_castle_dl_mio0SegmentRomEnd,
|
||||
_bowsers_castle_vertexSegmentRomStart, _bowsers_castle_vertexSegmentRomEnd,
|
||||
_course_bowsers_castle_offsetsSegmentRomStart, _course_bowsers_castle_offsetsSegmentRomEnd,
|
||||
d_course_bowsers_castle_vertex, 0x00002537,
|
||||
d_course_bowsers_castle_packed, 0x00009918,
|
||||
bowsers_castle_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_banshee_boardwalk_dl_mio0SegmentRomStart, _course_banshee_boardwalk_dl_mio0SegmentRomEnd,
|
||||
_banshee_boardwalk_vertexSegmentRomStart, _banshee_boardwalk_vertexSegmentRomEnd,
|
||||
_course_banshee_boardwalk_offsetsSegmentRomStart, _course_banshee_boardwalk_offsetsSegmentRomEnd,
|
||||
d_course_banshee_boardwalk_vertex, 0x00001351,
|
||||
d_course_banshee_boardwalk_packed, 0x00007340,
|
||||
banshee_boardwalk_textures, 1, 0x0000,
|
||||
}, {
|
||||
_course_yoshi_valley_dl_mio0SegmentRomStart, _course_yoshi_valley_dl_mio0SegmentRomEnd,
|
||||
_yoshi_valley_vertexSegmentRomStart, _yoshi_valley_vertexSegmentRomEnd,
|
||||
_course_yoshi_valley_offsetsSegmentRomStart, _course_yoshi_valley_offsetsSegmentRomEnd,
|
||||
d_course_yoshi_valley_vertex, 0x00000E88,
|
||||
d_course_yoshi_valley_packed, 0x00008158,
|
||||
yoshi_valley_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_frappe_snowland_dl_mio0SegmentRomStart, _course_frappe_snowland_dl_mio0SegmentRomEnd,
|
||||
_frappe_snowland_vertexSegmentRomStart, _frappe_snowland_vertexSegmentRomEnd,
|
||||
_course_frappe_snowland_offsetsSegmentRomStart, _course_frappe_snowland_offsetsSegmentRomEnd,
|
||||
d_course_frappe_snowland_vertex, 0x00001599,
|
||||
d_course_frappe_snowland_packed, 0x00006648,
|
||||
frappe_snowland_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_koopa_troopa_beach_dl_mio0SegmentRomStart, _course_koopa_troopa_beach_dl_mio0SegmentRomEnd,
|
||||
_koopa_troopa_beach_vertexSegmentRomStart, _koopa_troopa_beach_vertexSegmentRomEnd,
|
||||
_course_koopa_troopa_beach_offsetsSegmentRomStart, _course_koopa_troopa_beach_offsetsSegmentRomEnd,
|
||||
d_course_koopa_troopa_beach_vertex, 0x000024A0,
|
||||
d_course_koopa_troopa_beach_packed, 0x0000B2B8,
|
||||
koopa_troopa_beach_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_royal_raceway_dl_mio0SegmentRomStart, _course_royal_raceway_dl_mio0SegmentRomEnd,
|
||||
_royal_raceway_vertexSegmentRomStart, _royal_raceway_vertexSegmentRomEnd,
|
||||
_course_royal_raceway_offsetsSegmentRomStart, _course_royal_raceway_offsetsSegmentRomEnd,
|
||||
d_course_royal_raceway_vertex, 0x00002072,
|
||||
d_course_royal_raceway_packed, 0x0000B128,
|
||||
royal_raceway_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_luigi_raceway_dl_mio0SegmentRomStart, _course_luigi_raceway_dl_mio0SegmentRomEnd,
|
||||
_luigi_raceway_vertexSegmentRomStart, _luigi_raceway_vertexSegmentRomEnd,
|
||||
_course_luigi_raceway_offsetsSegmentRomStart, _course_luigi_raceway_offsetsSegmentRomEnd,
|
||||
d_course_luigi_raceway_vertex, 0x00001730,
|
||||
d_course_luigi_raceway_packed, 0x0000C738,
|
||||
luigi_raceway_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_moo_moo_farm_dl_mio0SegmentRomStart, _course_moo_moo_farm_dl_mio0SegmentRomEnd,
|
||||
_moo_moo_farm_vertexSegmentRomStart, _moo_moo_farm_vertexSegmentRomEnd,
|
||||
_course_moo_moo_farm_offsetsSegmentRomStart, _course_moo_moo_farm_offsetsSegmentRomEnd,
|
||||
d_course_moo_moo_farm_vertex, 0x00001F24,
|
||||
d_course_moo_moo_farm_packed, 0x00006738,
|
||||
moo_moo_farm_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_toads_turnpike_dl_mio0SegmentRomStart, _course_toads_turnpike_dl_mio0SegmentRomEnd,
|
||||
_toads_turnpike_vertexSegmentRomStart, _toads_turnpike_vertexSegmentRomEnd,
|
||||
_course_toads_turnpike_offsetsSegmentRomStart, _course_toads_turnpike_offsetsSegmentRomEnd,
|
||||
d_course_toads_turnpike_vertex, 0x000018D7,
|
||||
d_course_toads_turnpike_packed, 0x00006B10,
|
||||
toads_turnpike_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_kalimari_desert_dl_mio0SegmentRomStart, _course_kalimari_desert_dl_mio0SegmentRomEnd,
|
||||
_kalimari_desert_vertexSegmentRomStart, _kalimari_desert_vertexSegmentRomEnd,
|
||||
_course_kalimari_desert_offsetsSegmentRomStart, _course_kalimari_desert_offsetsSegmentRomEnd,
|
||||
d_course_kalimari_desert_vertex, 0x000018F9,
|
||||
d_course_kalimari_desert_packed, 0x0000A678,
|
||||
kalimari_desert_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_sherbet_land_dl_mio0SegmentRomStart, _course_sherbet_land_dl_mio0SegmentRomEnd,
|
||||
_sherbet_land_vertexSegmentRomStart, _sherbet_land_vertexSegmentRomEnd,
|
||||
_course_sherbet_land_offsetsSegmentRomStart, _course_sherbet_land_offsetsSegmentRomEnd,
|
||||
d_course_sherbet_land_vertex, 0x00000A76,
|
||||
d_course_sherbet_land_packed, 0x00003850,
|
||||
sherbet_land_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_rainbow_road_dl_mio0SegmentRomStart, _course_rainbow_road_dl_mio0SegmentRomEnd,
|
||||
_rainbow_road_vertexSegmentRomStart, _rainbow_road_vertexSegmentRomEnd,
|
||||
_course_rainbow_road_offsetsSegmentRomStart, _course_rainbow_road_offsetsSegmentRomEnd,
|
||||
d_course_rainbow_road_vertex, 0x00000C27,
|
||||
d_course_rainbow_road_packed, 0x00002100,
|
||||
rainbow_road_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_wario_stadium_dl_mio0SegmentRomStart, _course_wario_stadium_dl_mio0SegmentRomEnd,
|
||||
_wario_stadium_vertexSegmentRomStart, _wario_stadium_vertexSegmentRomEnd,
|
||||
_course_wario_stadium_offsetsSegmentRomStart, _course_wario_stadium_offsetsSegmentRomEnd,
|
||||
d_course_wario_stadium_vertex, 0x000017B3,
|
||||
d_course_wario_stadium_packed, 0x0000A4B8,
|
||||
wario_stadium_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_block_fort_dl_mio0SegmentRomStart, _course_block_fort_dl_mio0SegmentRomEnd,
|
||||
_block_fort_vertexSegmentRomStart, _block_fort_vertexSegmentRomEnd,
|
||||
_course_block_fort_offsetsSegmentRomStart, _course_block_fort_offsetsSegmentRomEnd,
|
||||
d_course_block_fort_vertex, 0x00000440,
|
||||
d_course_block_fort_packed, 0x000015D0,
|
||||
block_fort_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_skyscraper_dl_mio0SegmentRomStart, _course_skyscraper_dl_mio0SegmentRomEnd,
|
||||
_skyscraper_vertexSegmentRomStart, _skyscraper_vertexSegmentRomEnd,
|
||||
_course_skyscraper_offsetsSegmentRomStart, _course_skyscraper_offsetsSegmentRomEnd,
|
||||
d_course_skyscraper_vertex, 0x0000043E,
|
||||
d_course_skyscraper_packed, 0x00001118,
|
||||
skyscraper_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_double_deck_dl_mio0SegmentRomStart, _course_double_deck_dl_mio0SegmentRomEnd,
|
||||
_double_deck_vertexSegmentRomStart, _double_deck_vertexSegmentRomEnd,
|
||||
_course_double_deck_offsetsSegmentRomStart, _course_double_deck_offsetsSegmentRomEnd,
|
||||
d_course_double_deck_vertex, 0x0000022B,
|
||||
d_course_double_deck_packed, 0x00000748,
|
||||
double_deck_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_dks_jungle_parkway_dl_mio0SegmentRomStart, _course_dks_jungle_parkway_dl_mio0SegmentRomEnd,
|
||||
_dks_jungle_parkway_vertexSegmentRomStart, _dks_jungle_parkway_vertexSegmentRomEnd,
|
||||
_course_dks_jungle_parkway_offsetsSegmentRomStart, _course_dks_jungle_parkway_offsetsSegmentRomEnd,
|
||||
d_course_dks_jungle_parkway_vertex, 0x0000162F,
|
||||
d_course_dks_jungle_parkway_packed, 0x00009C20,
|
||||
dks_jungle_parkway_textures, 0, 0x0000,
|
||||
}, {
|
||||
_course_big_donut_dl_mio0SegmentRomStart, _course_big_donut_dl_mio0SegmentRomEnd,
|
||||
_big_donut_vertexSegmentRomStart, _big_donut_vertexSegmentRomEnd,
|
||||
_course_big_donut_offsetsSegmentRomStart, _course_big_donut_offsetsSegmentRomEnd,
|
||||
d_course_big_donut_vertex, 0x0000048D,
|
||||
d_course_big_donut_packed, 0x00001078,
|
||||
big_donut_textures, 0, 0x0000,
|
||||
}};
|
||||
|
||||
/*
|
||||
mk_course mario_raceway, 0x0000167D, 0x00006930, 0
|
||||
mk_course choco_mountain, 0x000015B8, 0x00005AE8, 1
|
||||
mk_course bowsers_castle, 0x00002537, 0x00009918, 0
|
||||
mk_course banshee_boardwalk, 0x00001351, 0x00007340, 1
|
||||
mk_course yoshi_valley, 0x00000E88, 0x00008158, 0
|
||||
mk_course frappe_snowland, 0x00001599, 0x00006648, 0
|
||||
mk_course koopa_troopa_beach, 0x000024A0, 0x0000B2B8, 0
|
||||
mk_course royal_raceway, 0x00002072, 0x0000B128, 0
|
||||
mk_course luigi_raceway, 0x00001730, 0x0000C738, 0
|
||||
mk_course moo_moo_farm, 0x00001F24, 0x00006738, 0
|
||||
mk_course toads_turnpike, 0x000018D7, 0x00006B10, 0
|
||||
mk_course kalimari_desert, 0x000018F9, 0x0000A678, 0
|
||||
mk_course sherbet_land, 0x00000A76, 0x00003850, 0
|
||||
mk_course rainbow_road, 0x00000C27, 0x00002100, 0
|
||||
mk_course wario_stadium, 0x000017B3, 0x0000A4B8, 0
|
||||
mk_course block_fort, 0x00000440, 0x000015D0, 0
|
||||
mk_course skyscraper, 0x0000043E, 0x00001118, 0
|
||||
mk_course double_deck, 0x0000022B, 0x00000748, 0
|
||||
mk_course dks_jungle_parkway, 0x0000162F, 0x00009C20, 0
|
||||
mk_course big_donut, 0x0000048D, 0x00001078, 0
|
||||
*/
|
||||
|
||||
/*
|
||||
# Course data table 122390 / 802B8D80
|
||||
glabel gCourseTable
|
||||
.word 0x008284D0, 0x0082B620, 0x0088FA10, 0x0089B510, 0x0088CD70, 0x0088D070, 0x0F000000, 0x0000167D, 0x0F0096F4, 0x00006930, 0x09000000, 0x00000000
|
||||
.word 0x0082B620, 0x0082DF40, 0x0089B510, 0x008A7640, 0x0088D070, 0x0088D340, 0x0F000000, 0x000015B8, 0x0F00A0B4, 0x00005AE8, 0x09000000, 0x00010000
|
||||
.word 0x0082DF40, 0x00831DC0, 0x008A7640, 0x008B9630, 0x0088D340, 0x0088D6C0, 0x0F000000, 0x00002537, 0x0F00E368, 0x00009918, 0x09000000, 0x00000000
|
||||
.word 0x00831DC0, 0x00835BA0, 0x008B9630, 0x008C2510, 0x0088D6C0, 0x0088D9C0, 0x0F000000, 0x00001351, 0x0F0068E8, 0x00007340, 0x09000000, 0x00010000
|
||||
.word 0x00835BA0, 0x0083F740, 0x008C2510, 0x008CC900, 0x0088D9C0, 0x0088DAB0, 0x0F000000, 0x00000E88, 0x0F007D90, 0x00008158, 0x09000000, 0x00000000
|
||||
.word 0x0083F740, 0x00842E40, 0x008CC900, 0x008D8E50, 0x0088DAB0, 0x0088DB40, 0x0F000000, 0x00001599, 0x0F009D24, 0x00006648, 0x09000000, 0x00000000
|
||||
.word 0x00842E40, 0x0084ABD0, 0x008D8E50, 0x008EC390, 0x0088DB40, 0x0088DC50, 0x0F000000, 0x000024A0, 0x0F00FD78, 0x0000B2B8, 0x09000000, 0x00000000
|
||||
.word 0x0084ABD0, 0x0084E8E0, 0x008EC390, 0x008FE640, 0x0088DC50, 0x0088E120, 0x0F000000, 0x00002072, 0x0F00EC60, 0x0000B128, 0x09000000, 0x00000000
|
||||
.word 0x0084E8E0, 0x00852E20, 0x008FE640, 0x0090B3E0, 0x0088E120, 0x0088E590, 0x0F000000, 0x00001730, 0x0F009800, 0x0000C738, 0x09000000, 0x00000000
|
||||
.word 0x00852E20, 0x00857E80, 0x0090B3E0, 0x0091B980, 0x0088E590, 0x0088E8D0, 0x0F000000, 0x00001F24, 0x0F00DAEC, 0x00006738, 0x09000000, 0x00000000
|
||||
.word 0x00857E80, 0x008666A0, 0x0091B980, 0x00928C70, 0x0088E8D0, 0x0088ECD0, 0x0F000000, 0x000018D7, 0x0F00A5D0, 0x00006B10, 0x09000000, 0x00000000
|
||||
.word 0x008666A0, 0x0086ECF0, 0x00928C70, 0x00936FD0, 0x0088ECD0, 0x0088EFB0, 0x0F000000, 0x000018F9, 0x0F00B394, 0x0000A678, 0x09000000, 0x00000000
|
||||
.word 0x0086ECF0, 0x00872A00, 0x00936FD0, 0x0093CC60, 0x0088EFB0, 0x0088F2A0, 0x0F000000, 0x00000A76, 0x0F0049F8, 0x00003850, 0x09000000, 0x00000000
|
||||
.word 0x00872A00, 0x008804A0, 0x0093CC60, 0x009438C0, 0x0088F2A0, 0x0088F300, 0x0F000000, 0x00000C27, 0x0F005A5C, 0x00002100, 0x09000000, 0x00000000
|
||||
.word 0x008804A0, 0x00885630, 0x009438C0, 0x00951780, 0x0088F300, 0x0088F600, 0x0F000000, 0x000017B3, 0x0F00A9CC, 0x0000A4B8, 0x09000000, 0x00000000
|
||||
.word 0x00885630, 0x00885780, 0x00951780, 0x00953890, 0x0088F600, 0x0088F680, 0x0F000000, 0x00000440, 0x0F0018D8, 0x000015D0, 0x09000000, 0x00000000
|
||||
.word 0x00885780, 0x008858A0, 0x00953890, 0x00955620, 0x0088F680, 0x0088F800, 0x0F000000, 0x0000043E, 0x0F001678, 0x00001118, 0x09000000, 0x00000000
|
||||
.word 0x008858A0, 0x00885A10, 0x00955620, 0x00956670, 0x0088F800, 0x0088F830, 0x0F000000, 0x0000022B, 0x0F000CD4, 0x00000748, 0x09000000, 0x00000000
|
||||
.word 0x00885A10, 0x0088CC50, 0x00956670, 0x00963EF0, 0x0088F830, 0x0088F9C0, 0x0F000000, 0x0000162F, 0x0F00A45C, 0x00009C20, 0x09000000, 0x00000000
|
||||
.word 0x0088CC50, 0x0088CD70, 0x00963EF0, 0x00966260, 0x0088F9C0, 0x0088FA10, 0x0F000000, 0x0000048D, 0x0F001B84, 0x00001078, 0x09000000, 0x00000000
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_banshee_boardwalk_vertex
|
||||
.incbin "bin/course_banshee_boardwalk_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_banshee_boardwalk_packed
|
||||
.incbin "bin/course_banshee_boardwalk_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_big_donut_vertex
|
||||
.incbin "bin/course_big_donut_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_big_donut_packed
|
||||
.incbin "bin/course_big_donut_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_block_fort_vertex
|
||||
.incbin "bin/course_block_fort_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_block_fort_packed
|
||||
.incbin "bin/course_block_fort_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_bowsers_castle_vertex
|
||||
.incbin "bin/course_bowsers_castle_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_bowsers_castle_packed
|
||||
.incbin "bin/course_bowsers_castle_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_choco_mountain_vertex
|
||||
.incbin "bin/course_choco_mountain_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_choco_mountain_packed
|
||||
.incbin "bin/course_choco_mountain_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_dks_jungle_parkway_vertex
|
||||
.incbin "bin/course_dks_jungle_parkway_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_dks_jungle_parkway_packed
|
||||
.incbin "bin/course_dks_jungle_parkway_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_double_deck_vertex
|
||||
.incbin "bin/course_double_deck_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_double_deck_packed
|
||||
.incbin "bin/course_double_deck_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_frappe_snowland_vertex
|
||||
.incbin "bin/course_frappe_snowland_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_frappe_snowland_packed
|
||||
.incbin "bin/course_frappe_snowland_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_kalimari_desert_vertex
|
||||
.incbin "bin/course_kalimari_desert_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_kalimari_desert_packed
|
||||
.incbin "bin/course_kalimari_desert_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_koopa_troopa_beach_vertex
|
||||
.incbin "bin/course_koopa_troopa_beach_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_koopa_troopa_beach_packed
|
||||
.incbin "bin/course_koopa_troopa_beach_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_luigi_raceway_vertex
|
||||
.incbin "bin/course_luigi_raceway_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_luigi_raceway_packed
|
||||
.incbin "bin/course_luigi_raceway_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_mario_raceway_vertex
|
||||
.incbin "bin/course_mario_raceway_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_mario_raceway_packed
|
||||
.incbin "bin/course_mario_raceway_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_moo_moo_farm_vertex
|
||||
.incbin "bin/course_moo_moo_farm_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_moo_moo_farm_packed
|
||||
.incbin "bin/course_moo_moo_farm_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_rainbow_road_vertex
|
||||
.incbin "bin/course_rainbow_road_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_rainbow_road_packed
|
||||
.incbin "bin/course_rainbow_road_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_royal_raceway_vertex
|
||||
.incbin "bin/course_royal_raceway_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_royal_raceway_packed
|
||||
.incbin "bin/course_royal_raceway_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_sherbet_land_vertex
|
||||
.incbin "bin/course_sherbet_land_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_sherbet_land_packed
|
||||
.incbin "bin/course_sherbet_land_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_skyscraper_vertex
|
||||
.incbin "bin/course_skyscraper_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_skyscraper_packed
|
||||
.incbin "bin/course_skyscraper_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_toads_turnpike_vertex
|
||||
.incbin "bin/course_toads_turnpike_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_toads_turnpike_packed
|
||||
.incbin "bin/course_toads_turnpike_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_wario_stadium_vertex
|
||||
.incbin "bin/course_wario_stadium_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_wario_stadium_packed
|
||||
.incbin "bin/course_wario_stadium_packed.bin"
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 4
|
||||
glabel d_course_yoshi_valley_vertex
|
||||
.incbin "bin/course_yoshi_valley_vertex.mio0"
|
||||
|
||||
.balign 4
|
||||
glabel d_course_yoshi_valley_packed
|
||||
.incbin "bin/course_yoshi_valley_packed.bin"
|
1004
data/data_121DA0.s
1004
data/data_121DA0.s
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,956 @@
|
|||
# Mario Kart 64 (U) disassembly and split file
|
||||
# generated by n64split v0.4a - N64 ROM splitter
|
||||
|
||||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
|
||||
glabel D_802B9140
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B914C
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B9154
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B9160
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B916C
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B9174
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B9180
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B918C
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B9194
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B91A0
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B91A8
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B91B4
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x0000000d
|
||||
.word 0x0000000d
|
||||
|
||||
glabel D_802B91C8
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B91E0
|
||||
.word L8028E6BC, L8028E958, L8028EAB0, L8028EC28
|
||||
.word L8028EC04, L8028E714, L8028E838, L8028EBAC
|
||||
|
||||
glabel D_802B9200
|
||||
.float 1.33333337
|
||||
|
||||
glabel D_802B9204
|
||||
.word L8028ECE0, L8028ED10, L8028ED40, L8028ED50
|
||||
.word L8028ED00, L8028ED60, L8028ED30, L8028ECE0
|
||||
.word L8028ECE0, L8028ED00, L8028ECF0, L8028ED20
|
||||
.word L8028ED60, L8028ED70, L8028ECE0, L8028ED10
|
||||
.word L8028ED90, L8028ED10, L8028ED80, L8028ED90
|
||||
|
||||
glabel D_802B9254
|
||||
.float 0.01666666
|
||||
|
||||
glabel D_802B9258
|
||||
.word L8028F4CC, L8028F4CC, L8028F4B0, L8028F4B0
|
||||
.word L8028F4B0, L8028F4D4, L8028F4B0
|
||||
|
||||
glabel D_802B9274
|
||||
.float 0.017
|
||||
|
||||
glabel D_802B9278
|
||||
.float 0.028
|
||||
|
||||
glabel D_802B927C
|
||||
.word L8028FD10, L8028FE90, L8028FFE4, L8029003C
|
||||
.word L80290088, L80290200, L802902CC, L80290304
|
||||
|
||||
glabel D_802B929C
|
||||
.float 0.008
|
||||
|
||||
glabel D_802B92A0
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B92A4
|
||||
.float 0.2
|
||||
|
||||
glabel D_802B92A8
|
||||
.float 0.55
|
||||
|
||||
.word 0
|
||||
|
||||
glabel D_802B92B0
|
||||
.double 0.85
|
||||
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802B92C0
|
||||
.word L80291488, L802914F4, L80292454, L80292454
|
||||
.word L80291600, L80292454, L80292454, L80292454
|
||||
.word L80292454, L80292454, L80291870, L80291A6C
|
||||
.word L80291B28, L80292454, L80292454, L80292454
|
||||
.word L80291D4C
|
||||
|
||||
glabel D_802B9304
|
||||
.word L802916DC, L802916DC, L80291730, L80291730
|
||||
.word L80291730, L80291730, L80291730, L802916DC
|
||||
.word L802916DC, L802916DC, L80291730, L80291730
|
||||
.word L80291730, L80291730, L80291730, L802916DC
|
||||
|
||||
glabel D_802B9344
|
||||
.word L8029217C, L80292400, L80292400, L80292400
|
||||
.word L80292400, L80292400, L80292400, L80292400
|
||||
.word L80292400, L80292400, L80292400, L80292400
|
||||
.word L802921A0, L802922A0, L80292400, L80292400
|
||||
.word L80292358, L802923C0, L802923E0
|
||||
|
||||
glabel D_802B9390
|
||||
.word L802925EC, L802925EC, L80292610, L80292628
|
||||
.word L80292660, L80292660, L80292694, L802926C4
|
||||
.word L802926C4, L802926D8, L802926F4, L80292730
|
||||
.word L80292750, L80292750, L80292758, L80292758
|
||||
.word L802925EC
|
||||
|
||||
glabel D_802B93D4
|
||||
.word L80293D24, L80293D74, L80293DCC, L80293E24
|
||||
.word L80293E80, L80293ED8
|
||||
|
||||
glabel D_802B93EC
|
||||
.word L80294DD8, L80294E28, L80294E7C, L80294ED0
|
||||
.word L80294F28, L80294F7C
|
||||
|
||||
glabel D_802B9404
|
||||
.word L802956C4, L802956F0, L8029571C, L80295748
|
||||
.word L80295774, L802957A0, L802957CC, L802957F8
|
||||
.word L80295824, L80295850, L8029587C, L802958A8
|
||||
.word L802958D4, L80295900, L8029592C, L80295958
|
||||
.word L80295984, L802959B0, L802959DC, L80295A08
|
||||
|
||||
glabel D_802B9454
|
||||
.word L80295AAC, L80295ABC, L80295ACC, L80295ADC
|
||||
.word L80295AEC, L80295AFC, L80295B0C, L80295B1C
|
||||
.word L80295B2C, L80295B3C, L80295B4C, L80295B5C
|
||||
.word L80295B6C, L80295B7C, L80295B8C, L80295B9C
|
||||
.word L80295BAC, L80295BBC, L80295BCC, L80295BDC
|
||||
|
||||
glabel D_802B94A4
|
||||
.word L80295E3C, L80295EB0, L80295FA4, L80295FE8
|
||||
.word L8029604C, L802960A0, L802960C8, L80296164
|
||||
.word L8029618C, L802961C8, L80296204, L8029627C
|
||||
.word L802962B8, L80296324, L802963E0, L80296520
|
||||
.word L80296560, L8029659C, L802965DC, L80296628
|
||||
|
||||
glabel D_802B94F4
|
||||
.float -475.0
|
||||
|
||||
glabel D_802B94F8
|
||||
.float -0.1
|
||||
|
||||
.word 0
|
||||
|
||||
glabel D_802B9500
|
||||
.word L80296B78, L80296B78, L80296B78, L80296B78
|
||||
.word L80296BAC, L80296B88, L80296B78, L80296B78
|
||||
|
||||
glabel D_802B9520
|
||||
.word L80296CBC, L80296CBC, L80296CBC, L80296CBC
|
||||
.word L80296CF0, L80296CCC, L80296CBC, L80296CBC
|
||||
|
||||
glabel D_802B9540
|
||||
.word L80296F28, L80296F6C, L80296F9C, L80296E40
|
||||
.word L80296E6C, L80296E88, L80296ED8, L80296DDC
|
||||
.word L802971FC, L8029721C, L802971D8, L8029716C
|
||||
.word L8029721C, L80296E5C, L8029721C, L8029721C
|
||||
.word L8029721C, L80296FCC, L8029721C, L8029721C
|
||||
.word L8029721C, L8029721C, L8029721C, L8029713C
|
||||
.word L80296FF4, L8029721C, L80297024, L8029707C
|
||||
.word L802970AC, L802970DC, L8029710C, L8029704C
|
||||
.word L8029721C, L8029721C, L8029721C, L80296DA8
|
||||
.word L8029721C, L8029721C, L8029721C, L8029721C
|
||||
.word L8029721C, L802971B0, L8029721C, L80296E20
|
||||
|
||||
glabel D_802B95F0
|
||||
.float 1.925
|
||||
|
||||
glabel D_802B95F4
|
||||
.float 0.35
|
||||
|
||||
glabel D_802B95F8
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B95FC
|
||||
.word L80297B10, L80297B3C, L80297B68, L80297B94
|
||||
.word L80297BC0
|
||||
|
||||
glabel D_802B9610
|
||||
.double 0.12
|
||||
|
||||
glabel D_802B9618
|
||||
.float 2.3
|
||||
|
||||
glabel D_802B961C
|
||||
.float 0.7
|
||||
|
||||
glabel D_802B9620
|
||||
.float 0.3
|
||||
|
||||
glabel D_802B9624
|
||||
.float 1000000.0
|
||||
|
||||
glabel D_802B9628
|
||||
.float 90000.0
|
||||
|
||||
glabel D_802B962C
|
||||
.float 64000000.0
|
||||
|
||||
glabel D_802B9630
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9634
|
||||
.word L802988F0, L80298910, L80298930, L80298950
|
||||
.word L80298970
|
||||
|
||||
glabel D_802B9648
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B964C
|
||||
.float 0.8
|
||||
|
||||
glabel D_802B9650
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B9654
|
||||
.float 1000000.0
|
||||
|
||||
glabel D_802B9658
|
||||
.float 16000000.0
|
||||
|
||||
glabel D_802B965C
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9660
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9664
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9668
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B966C
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9670
|
||||
.float 6250000.0
|
||||
|
||||
glabel D_802B9674
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9678
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B967C
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9680
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9684
|
||||
.float 640000.0
|
||||
|
||||
glabel D_802B9688
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B968C
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9690
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9694
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9698
|
||||
.float 40000.0
|
||||
|
||||
glabel D_802B969C
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B96A0
|
||||
.float 40000.0
|
||||
|
||||
glabel D_802B96A4
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B96A8
|
||||
.float 40000.0
|
||||
|
||||
glabel D_802B96AC
|
||||
.float 490000.0
|
||||
|
||||
glabel D_802B96B0
|
||||
.float 40000.0
|
||||
|
||||
glabel D_802B96B4
|
||||
.float 490000.0
|
||||
|
||||
glabel D_802B96B8
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B96BC
|
||||
.word L8029AD04, L8029AD24, L8029AD44, L8029AD64
|
||||
.word L8029AD84, L8029ADA4, L8029ADC4, L8029ADE4
|
||||
|
||||
glabel D_802B96DC
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B96E0
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B96E4
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B96E8
|
||||
.float 640000.0
|
||||
|
||||
glabel D_802B96EC
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B96F0
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B96F4
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B96F8
|
||||
.float 640000.0
|
||||
|
||||
glabel D_802B96FC
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B9700
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B9704
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B9708
|
||||
.float 640000.0
|
||||
|
||||
glabel D_802B970C
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B9710
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B9714
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B9718
|
||||
.float 640000.0
|
||||
|
||||
glabel D_802B971C
|
||||
.float 160000.0
|
||||
|
||||
glabel D_802B9720
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B9724
|
||||
.float 122500.0
|
||||
|
||||
glabel D_802B9728
|
||||
.float 640000.0
|
||||
|
||||
glabel D_802B972C
|
||||
.float 1440000.0
|
||||
|
||||
glabel D_802B9730
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B9734
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9738
|
||||
.float 1000000.0
|
||||
|
||||
glabel D_802B973C
|
||||
.float 1440000.0
|
||||
|
||||
glabel D_802B9740
|
||||
.float 9000000.0
|
||||
|
||||
glabel D_802B9744
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9748
|
||||
.float 1000000.0
|
||||
|
||||
glabel D_802B974C
|
||||
.float 1440000.0
|
||||
|
||||
glabel D_802B9750
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9754
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9758
|
||||
.float 5461.0
|
||||
|
||||
.word 0
|
||||
|
||||
glabel D_802B9760
|
||||
.double 0.1
|
||||
|
||||
glabel D_802B9768
|
||||
.float -1.2
|
||||
|
||||
glabel D_802B976C
|
||||
.float -1.2
|
||||
|
||||
glabel D_802B9770
|
||||
.float -1.2
|
||||
|
||||
glabel D_802B9774
|
||||
.float -1.2
|
||||
|
||||
glabel D_802B9778
|
||||
.float -1.2
|
||||
|
||||
glabel D_802B977C
|
||||
.word L8029D6A4, L8029D73C, L8029D6AC, L8029D73C
|
||||
.word L8029D6B4, L8029D6BC, L8029D73C, L8029D6C4
|
||||
.word L8029D6F0, L8029D6F8, L8029D73C, L8029D700
|
||||
|
||||
glabel D_802B97AC
|
||||
.word L8029DBBC, L8029DC88, L8029DCA8, L8029DCC8
|
||||
.word L8029DCDC, L8029DD40, L8029DD60, L8029DDA8
|
||||
.word L8029DDD4, L8029DDF4, L8029DE28, L8029DE3C
|
||||
.word L8029DFD4, L8029DFE8, L8029DFFC, L8029E0D0
|
||||
.word L8029E0E4, L8029E0F8, L8029E10C, L8029E130
|
||||
|
||||
glabel D_802B97FC
|
||||
.word L8029E3B0, L8029E7AC, L8029E488, L8029E7AC
|
||||
.word L8029E4A4, L8029E4C0, L8029E7AC, L8029E4F0
|
||||
.word L8029E5DC, L8029E60C, L8029E7AC, L8029E704
|
||||
.word L8029E7AC, L8029E7AC, L8029E7AC, L8029E7AC
|
||||
.word L8029E7AC, L8029E7AC, L8029E770
|
||||
|
||||
glabel D_802B9848
|
||||
.word L8029E960, L8029E960, L8029E960, L8029E960
|
||||
.word L8029EA8C, L8029E968, L8029E960, L8029E960
|
||||
|
||||
glabel D_802B9868
|
||||
.word L8029EB34, L8029EB34, L8029EB34, L8029EB34
|
||||
.word L8029EC60, L8029EB3C, L8029EB34, L8029EB34
|
||||
|
||||
glabel D_802B9888
|
||||
.float 0.8
|
||||
|
||||
glabel D_802B988C
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B9890
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B9894
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B9898
|
||||
.float 1.3
|
||||
|
||||
glabel D_802B989C
|
||||
.float 0.8
|
||||
|
||||
glabel D_802B98A0
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B98A4
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B98A8
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B98AC
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B98B0
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B98B4
|
||||
.word L8029FE48, L802A00D8, L8029FE38, L8029FE38
|
||||
.word L8029FE88, L802A00D8
|
||||
|
||||
glabel D_802B98CC
|
||||
.word L8029FFB4, L8029FFB4, L8029FF74, L8029FF74
|
||||
.word L8029FF74, L8029FF74, L802A00D8, L802A00D8
|
||||
.word L8029FF74, L8029FF74
|
||||
|
||||
glabel D_802B98F4
|
||||
.word L802A0030, L802A0030, L802A0004, L802A0004
|
||||
.word L802A0004, L802A0004, L802A0058, L802A00D8
|
||||
.word L802A0004, L802A0004
|
||||
|
||||
glabel D_802B991C
|
||||
.word L802A09B0, L802A09B0, L802A09B0, L802A09D4
|
||||
.word L802A04E0, L802A063C, L802A0858, L802A04AC
|
||||
.word L802A0968, L802A0D40, L802A0CBC, L802A0AA4
|
||||
.word L802A0D40, L802A0D40, L802A0D40, L802A0D40
|
||||
.word L802A0D40, L802A09B0, L802A0D40, L802A0D40
|
||||
.word L802A0D40, L802A098C, L802A0D40, L802A09B0
|
||||
.word L802A09B0, L802A0D40, L802A09B0, L802A09B0
|
||||
.word L802A09B0, L802A09B0, L802A09B0, L802A09B0
|
||||
.word L802A0D40, L802A0D40, L802A0D40, L802A0D40
|
||||
.word L802A0D40, L802A0D40, L802A0D40, L802A0D40
|
||||
.word L802A0744, L802A0C34
|
||||
|
||||
glabel D_802B99C4
|
||||
.float 360000.0
|
||||
|
||||
glabel D_802B99C8
|
||||
.float 360000.0
|
||||
|
||||
glabel D_802B99CC
|
||||
.float 8.66
|
||||
|
||||
glabel D_802B99D0
|
||||
.float 0.05
|
||||
|
||||
glabel D_802B99D4
|
||||
.float 0.2
|
||||
|
||||
glabel D_802B99D8
|
||||
.float 8.66
|
||||
|
||||
glabel D_802B99DC
|
||||
.float 0.45
|
||||
|
||||
glabel D_802B99E0
|
||||
.float 1000000.0
|
||||
|
||||
glabel D_802B99E4
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B99E8
|
||||
.float 0.8
|
||||
|
||||
glabel D_802B99EC
|
||||
.float 2.3
|
||||
|
||||
glabel D_802B99F0
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B99F4
|
||||
.float 1.8
|
||||
|
||||
glabel D_802B99F8
|
||||
.float -0.8
|
||||
|
||||
glabel D_802B99FC
|
||||
.float 0.6
|
||||
|
||||
glabel D_802B9A00
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9A04
|
||||
.float 600000.0
|
||||
|
||||
glabel D_802B9A08
|
||||
.float 100000.0
|
||||
|
||||
glabel D_802B9A0C
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B9A10
|
||||
.float 0.8
|
||||
|
||||
glabel D_802B9A14
|
||||
.float 2.3
|
||||
|
||||
glabel D_802B9A18
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B9A1C
|
||||
.float 1.8
|
||||
|
||||
glabel D_802B9A20
|
||||
.float -0.8
|
||||
|
||||
glabel D_802B9A24
|
||||
.float 0.6
|
||||
|
||||
glabel D_802B9A28
|
||||
.float 16000000.0
|
||||
|
||||
glabel D_802B9A2C
|
||||
.float 16000000.0
|
||||
|
||||
glabel D_802B9A30
|
||||
.float 640000.0
|
||||
|
||||
glabel D_802B9A34
|
||||
.float 16000000.0
|
||||
|
||||
glabel D_802B9A38
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9A3C
|
||||
.float 4000000.0
|
||||
|
||||
glabel D_802B9A40
|
||||
.float 250000.0
|
||||
|
||||
glabel D_802B9A44
|
||||
.word L802A31E4, L802A31FC, L802A3214, L802A32EC
|
||||
.word L802A3318, L802A3330, L802A3348, L802A34C0
|
||||
.word L802A3378, L802A34D4, L802A34D4, L802A34D4
|
||||
.word L802A34D4, L802A3390, L802A33A4, L802A33B8
|
||||
.word L802A33CC, L802A322C, L802A33E4, L802A34D4
|
||||
.word L802A34D4, L802A33FC, L802A34D4, L802A3428
|
||||
.word L802A3244, L802A34D4, L802A325C, L802A328C
|
||||
.word L802A32A4, L802A32BC, L802A32D4, L802A3274
|
||||
.word L802A34D4, L802A3414, L802A34D4, L802A345C
|
||||
.word L802A3440, L802A34AC, L802A3470, L802A3484
|
||||
.word L802A3360, L802A34D4, L802A3498, L802A3300
|
||||
|
||||
glabel D_802B9AF4
|
||||
.word L802A36D8, L802A36D8, L802A36D8, L802A3590
|
||||
.word L802A35E0, L802A35A0, L802A35B0, L802A36E8
|
||||
.word L802A3660, L802A36F0, L802A3630, L802A3650
|
||||
.word L802A3670, L802A3600, L802A3610, L802A3620
|
||||
.word L802A36F0, L802A36D8, L802A36F0, L802A3680
|
||||
.word L802A3694, L802A36A8, L802A36F0, L802A36D8
|
||||
.word L802A36D8, L802A36D8, L802A36D8, L802A36D8
|
||||
.word L802A36D8, L802A36D8, L802A36D8, L802A36D8
|
||||
.word L802A36F0, L802A36B8, L802A36F0, L802A36F0
|
||||
.word L802A35F0, L802A36C8, L802A36F0, L802A36F0
|
||||
.word L802A35C0, L802A3640, L802A36F0, L802A35D0
|
||||
|
||||
.word 0, 0, 0
|
||||
|
||||
glabel D_802B9BB0
|
||||
.float 30000.0
|
||||
|
||||
glabel D_802B9BB4
|
||||
.float 6800.0
|
||||
|
||||
glabel D_802B9BB8
|
||||
.word L802A4E04, L802A4D98, L802A4D74, L802A4D74
|
||||
.word L802A4E04, L802A4E04, L802A4DBC, L802A4E04
|
||||
.word L802A4E04, L802A4E04, L802A4E04, L802A4E28
|
||||
.word L802A4E04, L802A4D74, L802A4DE0, L802A4D74
|
||||
.word L802A4D74, L802A4D98, L802A4E04
|
||||
|
||||
glabel D_802B9C04
|
||||
.float 2700.0
|
||||
|
||||
glabel D_802B9C08
|
||||
.float 1500.0
|
||||
|
||||
glabel D_802B9C0C
|
||||
.float 5000.0
|
||||
|
||||
glabel D_802B9C10
|
||||
.float 4500.0
|
||||
|
||||
glabel D_802B9C14
|
||||
.float 7000.0
|
||||
|
||||
glabel D_802B9C18
|
||||
.float 6800.0
|
||||
|
||||
glabel D_802B9C1C
|
||||
.float 1.3333333730697632
|
||||
|
||||
glabel D_802B9C20
|
||||
.float 0.6666666865348816
|
||||
|
||||
glabel D_802B9C24
|
||||
.float 2.6666667461395264
|
||||
|
||||
glabel D_802B9C28
|
||||
.float 1.3333333730697632
|
||||
|
||||
.word 0
|
||||
|
||||
glabel D_802B9C30
|
||||
.word L802A8FE0, L802A9014, L802A902C, L802A9044
|
||||
.word L802A9060, L802A907C, L802A9094, L802A9094
|
||||
.word L802A9094, L802A9094, L802A9094, L802A9094
|
||||
.word L802A9094, L802A9094, L802A9094, L802A9094
|
||||
.word L802A9094, L802A9094, L802A8FF8
|
||||
|
||||
glabel D_802B9C7C
|
||||
.word L802A9250, L802A9268, L802A9280, L802A9298
|
||||
.word L802A92B4, L802A92D0
|
||||
|
||||
glabel D_802B9C94
|
||||
.word L802A9BB8, L802A9BDC, L802A9C00
|
||||
.word L802A9C24, L802A9C48, L802A9C6C, L802A9C90
|
||||
.word L802A9CB4, L802A9CD8, L802A9CFC, L802A9D20
|
||||
.word L802A9D44, L802A9D68, L802A9D8C, L802A9DB0
|
||||
.word L802A9DD4, L802A9DF8, L802A9E1C, L802A9E40
|
||||
.word L802A9E64, L802A9E88, L802A9EAC, L802A9EC8
|
||||
.word L802A9EE4, L802A9F38, L802A9F54, L802A9FC4
|
||||
.word L802AA00C, L802AA030, L802AA054, L802AA078
|
||||
.word L802AA09C, L802AA0C0, L802AA0E4, L802AA108
|
||||
.word L802AA12C, L802AA150, L802AA174, L802AA198
|
||||
.word L802AA1BC, L802AA1E0, L802AA684, L802AA714
|
||||
.word L802AA780, L802A9FE8, L802AA6F0, L802A9F00
|
||||
.word L802A9F70, L802AA6CC, L802A9B74, L802A9B74
|
||||
.word L802AA204, L802AA228, L802AA24C, L802AA270
|
||||
.word L802AA294, L802AA2B8, L802AA2DC, L802AA300
|
||||
.word L802AA324, L802AA348, L802AA36C, L802AA390
|
||||
.word L802AA3B4, L802AA3D8, L802AA3FC, L802AA420
|
||||
.word L802AA444, L802AA468, L802AA48C, L802AA4B0
|
||||
.word L802AA4D4, L802AA4F8, L802AA51C, L802AA540
|
||||
.word L802AA564, L802AA588, L802AA5AC, L802AA5D0
|
||||
.word L802AA5F4, L802AA618, L802AA63C, L802AA660
|
||||
.word L802A9F1C, L802A9F8C, L802A9FA8, L802AA738
|
||||
.word L802AA75C, L802AA6A8
|
||||
|
||||
.word 0, 0
|
||||
|
||||
glabel D_802B9E00
|
||||
.float 1859.0
|
||||
|
||||
glabel D_802B9E04
|
||||
.float 1549.0
|
||||
|
||||
glabel D_802B9E08
|
||||
.float -1102.0
|
||||
|
||||
glabel D_802B9E0C
|
||||
.float -1402.0
|
||||
|
||||
glabel D_802B9E10
|
||||
.float 2405.0
|
||||
|
||||
glabel D_802B9E14
|
||||
.float 2233.0
|
||||
|
||||
glabel D_802B9E18
|
||||
.float 0.8
|
||||
|
||||
glabel D_802B9E1C
|
||||
.float -475.0
|
||||
|
||||
glabel D_802B9E20
|
||||
.float -33.9
|
||||
|
||||
glabel D_802B9E24
|
||||
.float -838.0
|
||||
|
||||
glabel D_802B9E28
|
||||
.float -475.0
|
||||
|
||||
glabel D_802B9E2C
|
||||
.float -475.0
|
||||
|
||||
glabel D_802B9E30
|
||||
.float -993.0
|
||||
|
||||
glabel D_802B9E34
|
||||
.float -33.9
|
||||
|
||||
glabel D_802B9E38
|
||||
.float -475.0
|
||||
|
||||
glabel D_802B9E3C
|
||||
.float -33.9
|
||||
|
||||
glabel D_802B9E40
|
||||
.float -475.0
|
||||
|
||||
glabel D_802B9E44
|
||||
.float -33.9
|
||||
|
||||
glabel D_802B9E48
|
||||
.float -0.9
|
||||
|
||||
glabel D_802B9E4C
|
||||
.float -3000.0
|
||||
|
||||
glabel D_802B9E50
|
||||
.float 3000.0
|
||||
|
||||
glabel D_802B9E54
|
||||
.float 3000.0
|
||||
|
||||
glabel D_802B9E58
|
||||
.float 3000.0
|
||||
|
||||
glabel D_802B9E5C
|
||||
.float 3000.0
|
||||
|
||||
glabel D_802B9E60
|
||||
.float 3000.0
|
||||
|
||||
glabel D_802B9E64
|
||||
.float -0.9
|
||||
|
||||
glabel D_802B9E68
|
||||
.float 0.9
|
||||
|
||||
glabel D_802B9E6C
|
||||
.float 0.1
|
||||
|
||||
glabel D_802B9E70
|
||||
.float -0.1
|
||||
|
||||
.word 0, 0, 0
|
||||
|
||||
glabel D_802B9E80
|
||||
.double 0.015
|
||||
|
||||
glabel D_802B9E88
|
||||
.double 0.015
|
||||
|
||||
glabel D_802B9E90
|
||||
.double 0.015
|
||||
|
||||
glabel D_802B9E98
|
||||
.word L802B0A88, L802B0AB0, L802B0AF8, L802B0B40
|
||||
.word L802B0B84, L802B0BCC, L802B0C70
|
||||
|
||||
glabel D_802B9EB4
|
||||
.word L802B0EF4, L802B0F60, L802B1050, L802B1154
|
||||
.word L802B11FC
|
||||
|
||||
glabel D_802B9EC8
|
||||
.word L802B2094, L802B237C, L802B25A0, L802B2718
|
||||
.word L802B28E8, L802B285C
|
||||
|
||||
glabel D_802B9EE0
|
||||
.float 0.2
|
||||
|
||||
glabel D_802B9EE4
|
||||
.float 0.15
|
||||
|
||||
glabel D_802B9EE8
|
||||
.float 0.2
|
||||
|
||||
glabel D_802B9EEC
|
||||
.float 0.2
|
||||
|
||||
glabel D_802B9EF0
|
||||
.float 0.3
|
||||
|
||||
glabel D_802B9EF4
|
||||
.word L802B2B0C, L802B2B20, L802B2B4C, L802B2B78
|
||||
.word L802B2BA4
|
||||
|
||||
glabel D_802B9F08
|
||||
.word L802B301C, L802B302C, L802B2FEC, L802B30BC
|
||||
.word L802B2FFC, L802B30CC, L802B300C, L802B309C
|
||||
.word L802B30AC, L802B308C, L802B307C, L802B303C
|
||||
.word L802B304C, L802B305C, L802B306C
|
||||
|
||||
glabel D_802B9F44
|
||||
.word L802B33CC, L802B3614, L802B382C, L802B3B30
|
||||
.word L802B3974, L802B3AC4
|
||||
|
||||
glabel D_802B9F5C
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B9F60
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B9F64
|
||||
.float 0.3
|
||||
|
||||
glabel D_802B9F68
|
||||
.float 25000000.0
|
||||
|
||||
glabel D_802B9F6C
|
||||
.word L802B4324, L802B44B0, L802B4750, L802B4A9C
|
||||
.word L802B4AD8, L802B4B18, L802B4B94, L802B4CE4
|
||||
.word L802B4D58, L802B4DE8
|
||||
|
||||
glabel D_802B9F94
|
||||
.float 1.2
|
||||
|
||||
glabel D_802B9F98
|
||||
.float 40000.0
|
||||
|
||||
glabel D_802B9F9C
|
||||
.float 0.3
|
||||
|
||||
glabel D_802B9FA0
|
||||
.float 40000.0
|
||||
|
||||
.word 0, 0, 0
|
||||
|
||||
glabel D_802B9FB0
|
||||
.double 0.017453292222222222
|
||||
|
||||
glabel D_802B9FB8
|
||||
.double 3.141592653589793
|
||||
|
||||
glabel D_802B9FC0
|
||||
.double 360.0
|
||||
|
||||
glabel D_802B9FC8
|
||||
.double 3.141592653589793
|
||||
|
||||
glabel D_802B9FD0
|
||||
.double 360.0
|
||||
|
||||
glabel D_802B9FD8
|
||||
.float 1000000.0
|
||||
|
||||
glabel D_802B9FDC
|
||||
.float -0.01600503
|
||||
|
||||
glabel D_802B9FE0
|
||||
.float 0.002834060
|
||||
|
||||
glabel D_802B9FE4
|
||||
.float -0.074954450
|
||||
|
||||
glabel D_802B9FE8
|
||||
.float 0.042587612
|
||||
|
||||
glabel D_802B9FEC
|
||||
.float -0.142025709
|
||||
|
||||
glabel D_802B9FF0
|
||||
.float 0.106367543
|
||||
|
||||
glabel D_802B9FF4
|
||||
.float -0.333330661
|
||||
|
||||
glabel D_802B9FF8
|
||||
.double 1.3375206719956623e-08
|
||||
|
||||
glabel D_802BA000
|
||||
.double 1.5707963267948966
|
||||
|
||||
glabel D_802BA008
|
||||
.double 1.5707963267948966
|
||||
|
||||
glabel D_802BA010
|
||||
.double 50.123870849609375
|
||||
|
||||
glabel D_802BA018
|
||||
.double 3.141592653589793
|
||||
|
||||
glabel D_802BA020
|
||||
.double 3.141592653589793
|
||||
|
||||
glabel D_802BA028
|
||||
.double 65535.0
|
||||
|
|
@ -163,4 +163,4 @@ glabel seq_1D
|
|||
.incbin "music/seq_1D.m64"
|
||||
glabel seq_1D_end
|
||||
# Unknown region BE90D0-BE90E0 [10]
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
|
|
@ -9,4 +9,4 @@ extern u8 _code_8028DF00SegmentStart[];
|
|||
extern u8 _code_8028DF00SegmentRomStart[];
|
||||
extern u8 _code_8028DF00SegmentRomEnd[];
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
#define SEG_80280000 0x80280000
|
||||
#define SEG_8028DF00 0x8028DF00
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -54,4 +54,73 @@ struct UnkStruct_800DC5EC {
|
|||
u16 unk32;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
s16 ob[3]; /* x, y, z */
|
||||
s16 tc[2]; /* texture coord */
|
||||
u8 ca[4]; /* color & alpha */
|
||||
|
||||
} mk64_Vtx;
|
||||
|
||||
struct courseTable {
|
||||
u32 *dlRomStart; // 0x00 ROM start for segment 6 DL data
|
||||
u32 *dlRomEnd; // 0x04 ROM end for segment 6 DL data
|
||||
u32 *vertexRomStart; // 0x08 ROM start for segment 4 vertex data
|
||||
u32 *vertexRomEnd; // 0x0C ROM end for segment 7?
|
||||
u32 *offsetRomStart; // 0x10 ROM start for uncompressed segment 9 texture and DL addresses
|
||||
u32 *offsetRomEnd; // 0x14 ROM end for uncompressed segment 9 texture and DL addresses
|
||||
mk64_Vtx *vertexStart; // 0x18 segmented address of vertex data
|
||||
u32 vertexCount; // 0x1C number of vertices in vertex data
|
||||
u32 *packedStart; // 0x20 packed display list start address
|
||||
u32 *finalDL; // 0x24
|
||||
u32 *textures; // 0x20 segmented address of textures table
|
||||
u16 unknown1; // 0x2C
|
||||
u16 padding; // 0x2E
|
||||
};
|
||||
|
||||
extern mk64_Vtx d_course_mario_raceway_vertex[];
|
||||
extern mk64_Vtx d_course_choco_mountain_vertex[];
|
||||
extern mk64_Vtx d_course_bowsers_castle_vertex[];
|
||||
extern mk64_Vtx d_course_banshee_boardwalk_vertex[];
|
||||
extern mk64_Vtx d_course_yoshi_valley_vertex[];
|
||||
extern mk64_Vtx d_course_frappe_snowland_vertex[];
|
||||
extern mk64_Vtx d_course_koopa_troopa_beach_vertex[];
|
||||
extern mk64_Vtx d_course_royal_raceway_vertex[];
|
||||
extern mk64_Vtx d_course_luigi_raceway_vertex[];
|
||||
extern mk64_Vtx d_course_moo_moo_farm_vertex[];
|
||||
extern mk64_Vtx d_course_toads_turnpike_vertex[];
|
||||
extern mk64_Vtx d_course_kalimari_desert_vertex[];
|
||||
extern mk64_Vtx d_course_sherbet_land_vertex[];
|
||||
extern mk64_Vtx d_course_rainbow_road_vertex[];
|
||||
extern mk64_Vtx d_course_wario_stadium_vertex[];
|
||||
extern mk64_Vtx d_course_block_fort_vertex[];
|
||||
extern mk64_Vtx d_course_skyscraper_vertex[];
|
||||
extern mk64_Vtx d_course_double_deck_vertex[];
|
||||
extern mk64_Vtx d_course_dks_jungle_parkway_vertex[];
|
||||
extern mk64_Vtx d_course_big_donut_vertex[];
|
||||
|
||||
extern struct courseTable gCourseTable[];
|
||||
|
||||
/*
|
||||
extern mk64_Vtx d_course_mario_raceway_vertex[5757];
|
||||
extern mk64_Vtx d_course_choco_mountain_vertex[5560];
|
||||
extern mk64_Vtx d_course_bowsers_castle_vertex[9527];
|
||||
extern mk64_Vtx d_course_banshee_boardwalk_vertex[4945];
|
||||
extern mk64_Vtx d_course_yoshi_valley_vertex[3720];
|
||||
extern mk64_Vtx d_course_frappe_snowland_vertex[5529];
|
||||
extern mk64_Vtx d_course_koopa_troopa_beach_vertex[9376];
|
||||
extern mk64_Vtx d_course_royal_raceway_vertex[8306];
|
||||
extern mk64_Vtx d_course_luigi_raceway_vertex[5936];
|
||||
extern mk64_Vtx d_course_moo_moo_farm_vertex[7972];
|
||||
extern mk64_Vtx d_course_toads_turnpike_vertex[6359];
|
||||
extern mk64_Vtx d_course_kalimari_desert_vertex[6393];
|
||||
extern mk64_Vtx d_course_sherbet_land_vertex[663];
|
||||
extern mk64_Vtx d_course_rainbow_road_vertex[3111];
|
||||
extern mk64_Vtx d_course_wario_stadium_vertex[6067];
|
||||
extern mk64_Vtx d_course_block_fort_vertex[1088];
|
||||
extern mk64_Vtx d_course_skyscraper_vertex[1086];
|
||||
extern mk64_Vtx d_course_double_deck_vertex[555];
|
||||
extern mk64_Vtx d_course_dks_jungle_parkway_vertex[5679];
|
||||
extern mk64_Vtx d_course_big_donut_vertex[1165];
|
||||
*/
|
||||
|
||||
#endif /* TYPES_H */
|
||||
|
|
141
mk64.ld
141
mk64.ld
|
@ -140,6 +140,8 @@ SECTIONS
|
|||
BUILD_DIR/asm/code_802B0210.o(.text);
|
||||
BUILD_DIR/asm/code_802B4F60.o(.text);
|
||||
BUILD_DIR/data/data_121DA0.o(.data);
|
||||
BUILD_DIR/courses/courseTable.inc.o(.data);
|
||||
BUILD_DIR/data/data_121DA0_2.o(.data);
|
||||
}
|
||||
END_SEG(code_8028DF00)
|
||||
|
||||
|
@ -282,26 +284,125 @@ SECTIONS
|
|||
COURSE_OFFSETS_SEG(course_dks_jungle_parkway_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_big_donut_offsets, 0x09000000)
|
||||
|
||||
VERT_SEG(mario_raceway_vertex, 0x0F000000)
|
||||
VERT_SEG(choco_mountain_vertex, 0x0F000000)
|
||||
VERT_SEG(bowsers_castle_vertex, 0x0F000000)
|
||||
VERT_SEG(banshee_boardwalk_vertex, 0x0F000000)
|
||||
VERT_SEG(yoshi_valley_vertex, 0x0F000000)
|
||||
VERT_SEG(frappe_snowland_vertex, 0x0F000000)
|
||||
VERT_SEG(koopa_troopa_beach_vertex, 0x0F000000)
|
||||
VERT_SEG(royal_raceway_vertex, 0x0F000000)
|
||||
VERT_SEG(luigi_raceway_vertex, 0x0F000000)
|
||||
VERT_SEG(moo_moo_farm_vertex, 0x0F000000)
|
||||
VERT_SEG(toads_turnpike_vertex, 0x0F000000)
|
||||
VERT_SEG(kalimari_desert_vertex, 0x0F000000)
|
||||
VERT_SEG(sherbet_land_vertex, 0x0F000000)
|
||||
VERT_SEG(rainbow_road_vertex, 0x0F000000)
|
||||
VERT_SEG(wario_stadium_vertex, 0x0F000000)
|
||||
VERT_SEG(block_fort_vertex, 0x0F000000)
|
||||
VERT_SEG(skyscraper_vertex, 0x0F000000)
|
||||
VERT_SEG(double_deck_vertex, 0x0F000000)
|
||||
VERT_SEG(dks_jungle_parkway_vertex, 0x0F000000)
|
||||
VERT_SEG(big_donut_vertex, 0x0F000000)
|
||||
BEGIN_SEG(mario_raceway_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/flower_cup/mario_raceway/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(mario_raceway_vertex)
|
||||
|
||||
BEGIN_SEG(choco_mountain_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/flower_cup/choco_mountain/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(choco_mountain_vertex)
|
||||
|
||||
BEGIN_SEG(bowsers_castle_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/star_cup/bowsers_castle/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(bowsers_castle_vertex)
|
||||
|
||||
BEGIN_SEG(banshee_boardwalk_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/special_cup/banshee_boardwalk/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(banshee_boardwalk_vertex)
|
||||
|
||||
BEGIN_SEG(yoshi_valley_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/special_cup/yoshi_valley/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(yoshi_valley_vertex)
|
||||
|
||||
BEGIN_SEG(frappe_snowland_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/flower_cup/frappe_snowland/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(frappe_snowland_vertex)
|
||||
|
||||
BEGIN_SEG(koopa_troopa_beach_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/mushroom_cup/koopa_beach/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(koopa_troopa_beach_vertex)
|
||||
|
||||
BEGIN_SEG(royal_raceway_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/star_cup/royal_raceway/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(royal_raceway_vertex)
|
||||
|
||||
BEGIN_SEG(luigi_raceway_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/mushroom_cup/luigi_raceway/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(luigi_raceway_vertex)
|
||||
|
||||
BEGIN_SEG(moo_moo_farm_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/mushroom_cup/moo_moo_farm/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(moo_moo_farm_vertex)
|
||||
|
||||
BEGIN_SEG(toads_turnpike_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/flower_cup/toads_turnpike/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(toads_turnpike_vertex)
|
||||
|
||||
BEGIN_SEG(kalimari_desert_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/mushroom_cup/kalimari_desert/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(kalimari_desert_vertex)
|
||||
|
||||
BEGIN_SEG(sherbet_land_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/star_cup/sherbet_land/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(sherbet_land_vertex)
|
||||
|
||||
BEGIN_SEG(rainbow_road_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/special_cup/rainbow_road/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(rainbow_road_vertex)
|
||||
|
||||
BEGIN_SEG(wario_stadium_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/star_cup/wario_stadium/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(wario_stadium_vertex)
|
||||
|
||||
BEGIN_SEG(block_fort_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/battle/block_fort/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(block_fort_vertex)
|
||||
|
||||
BEGIN_SEG(skyscraper_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/battle/skyscraper/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(skyscraper_vertex)
|
||||
|
||||
BEGIN_SEG(double_deck_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/battle/double_deck/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(double_deck_vertex)
|
||||
|
||||
BEGIN_SEG(dks_jungle_parkway_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/special_cup/dks_jungle_parkway/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(dks_jungle_parkway_vertex)
|
||||
|
||||
BEGIN_SEG(big_donut_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/battle/big_donut/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(big_donut_vertex)
|
||||
|
||||
BEGIN_SEG(audio_banks, 0x0)
|
||||
{
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
/n64cksum
|
||||
/n64graphics
|
||||
/tkmk00
|
||||
/extract_data_for_mio
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
CC := gcc
|
||||
CFLAGS := -I . -Wall -Wextra -Wno-unused-parameter -pedantic -std=c99 -O2 -s
|
||||
PROGRAMS := mio0 n64graphics n64cksum tkmk00
|
||||
PROGRAMS := mio0 n64graphics n64cksum tkmk00 extract_data_for_mio
|
||||
|
||||
|
||||
n64graphics_SOURCES := n64graphics.c utils.c
|
||||
|
@ -15,6 +15,8 @@ tkmk00_CFLAGS := -DTKMK00_STANDALONE
|
|||
n64cksum_SOURCES := n64cksum.c utils.c
|
||||
n64cksum_CFLAGS := -DN64CKSUM_STANDALONE
|
||||
|
||||
extract_data_for_mio_SOURCES := extract_data_for_mio.c
|
||||
|
||||
all: $(PROGRAMS)
|
||||
|
||||
clean:
|
||||
|
|
|
@ -0,0 +1,308 @@
|
|||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#define EI_DATA 5
|
||||
#define EI_NIDENT 16
|
||||
|
||||
#define STT_NOTYPE 0
|
||||
#define STT_OBJECT 1
|
||||
#define STT_FUNC 2
|
||||
#define STT_SECTION 3
|
||||
#define STT_FILE 4
|
||||
#define STT_COMMON 5
|
||||
#define STT_TLS 6
|
||||
|
||||
#define ELF_ST_TYPE(x) (((unsigned int) x) & 0xf)
|
||||
|
||||
typedef uint32_t Elf32_Addr;
|
||||
typedef uint32_t Elf32_Off;
|
||||
|
||||
typedef struct {
|
||||
unsigned char e_ident[EI_NIDENT];
|
||||
uint16_t e_type;
|
||||
uint16_t e_machine;
|
||||
uint32_t e_version;
|
||||
Elf32_Addr e_entry;
|
||||
Elf32_Off e_phoff;
|
||||
Elf32_Off e_shoff;
|
||||
uint32_t e_flags;
|
||||
uint16_t e_ehsize;
|
||||
uint16_t e_phentsize;
|
||||
uint16_t e_phnum;
|
||||
uint16_t e_shentsize;
|
||||
uint16_t e_shnum;
|
||||
uint16_t e_shstrndx;
|
||||
} Elf32_Ehdr;
|
||||
|
||||
typedef struct {
|
||||
uint32_t sh_name;
|
||||
uint32_t sh_type;
|
||||
uint32_t sh_flags;
|
||||
Elf32_Addr sh_addr;
|
||||
Elf32_Off sh_offset;
|
||||
uint32_t sh_size;
|
||||
uint32_t sh_link;
|
||||
uint32_t sh_info;
|
||||
uint32_t sh_addralign;
|
||||
uint32_t sh_entsize;
|
||||
} Elf32_Shdr;
|
||||
|
||||
typedef struct {
|
||||
uint32_t st_name;
|
||||
Elf32_Addr st_value;
|
||||
uint32_t st_size;
|
||||
unsigned char st_info;
|
||||
unsigned char st_other;
|
||||
uint16_t st_shndx;
|
||||
} Elf32_Sym;
|
||||
|
||||
typedef struct {
|
||||
uint16_t magic; //To verify validity of the table
|
||||
uint16_t vstamp; //Version stamp
|
||||
uint32_t ilineMax; //Number of line number entries
|
||||
uint32_t cbLine; //Number of bytes for line number entries
|
||||
uint32_t cbLineOffset; //Index to start of line numbers
|
||||
uint32_t idnMax; //Max index into dense numbers
|
||||
uint32_t cbDnOffset; //Index to start dense numbers
|
||||
uint32_t ipdMax; //Number of procedures
|
||||
uint32_t cbPdOffset; //Index to procedure descriptors
|
||||
uint32_t isymMax; //Number of local symbols
|
||||
uint32_t cbSymOffset; //Index to start of local symbols
|
||||
uint32_t ioptMax; //Maximum index into optimization entries
|
||||
uint32_t cbOptOffset; //Index to start of optimization entries
|
||||
uint32_t iauxMax; //Number of auxiliary symbols
|
||||
uint32_t cbAuxOffset; //Index to the start of auxiliary symbols
|
||||
uint32_t issMax; //Max index into local strings
|
||||
uint32_t cbSsOffset; //Index to start of local strings
|
||||
uint32_t issExtMax; //Max index into external strings
|
||||
uint32_t cbSsExtOffset; //Index to the start of external strings
|
||||
uint32_t ifdMax; //Number of file descriptors
|
||||
uint32_t cbFdOffset; //Index to file descriptor
|
||||
uint32_t crfd; //Number of relative file descriptors
|
||||
uint32_t cbRfdOffset; //Index to relative file descriptors
|
||||
uint32_t iextMax; //Maximum index into external symbols
|
||||
uint32_t cbExtOffset; //Index to the start of external symbols.
|
||||
} SymbolicHeader;
|
||||
|
||||
typedef struct {
|
||||
uint32_t adr; // Memory address of start of file
|
||||
uint32_t rss; // Source file name
|
||||
uint32_t issBase; // Start of local strings
|
||||
uint32_t cbSs; // Number of bytes in local strings
|
||||
uint32_t isymBase; // Start of local symbol entries
|
||||
uint32_t csym; // Count of local symbol entries
|
||||
uint32_t ilineBase; // Start of line number entries
|
||||
uint32_t cline; // Count of line number entries
|
||||
uint32_t ioptBase; // Start of optimization symbol entries
|
||||
uint32_t copt; // Count of optimization symbol entries
|
||||
uint16_t ipdFirst; // Start of procedure descriptor table
|
||||
uint16_t cpd; // Count of procedures descriptors
|
||||
uint32_t iauxBase; // Start of auxiliary symbol entries
|
||||
uint32_t caux; // Count of auxiliary symbol entries
|
||||
uint32_t rfdBase; // Index into relative file descriptors
|
||||
uint32_t crfd; // Relative file descriptor count
|
||||
uint32_t flags;
|
||||
uint32_t cbLineOffset; // Byte offset from header or file ln's
|
||||
uint32_t cbLine;
|
||||
} FileDescriptorTable;
|
||||
|
||||
typedef struct {
|
||||
uint32_t iss;
|
||||
uint32_t value;
|
||||
uint32_t st_sc_index;
|
||||
} LocalSymbolsEntry;
|
||||
|
||||
typedef enum {
|
||||
stNil,
|
||||
stGlobal,
|
||||
stStatic,
|
||||
stParam,
|
||||
stLocal,
|
||||
stLabel,
|
||||
stProc,
|
||||
stBlock,
|
||||
stEnd,
|
||||
stMember,
|
||||
stTypedef,
|
||||
stFile,
|
||||
stStaticProc,
|
||||
stConstant
|
||||
} StConstants;
|
||||
|
||||
uint32_t u32be(uint32_t val) {
|
||||
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||
return __builtin_bswap32(val);
|
||||
#else
|
||||
return val;
|
||||
#endif
|
||||
}
|
||||
|
||||
uint16_t u16be(uint16_t val) {
|
||||
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||
return __builtin_bswap16(val);
|
||||
#else
|
||||
return val;
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool elf_get_section_range(uint8_t *file, const char *searched_name, uint32_t *address, uint32_t *offset, uint32_t *size, uint32_t *section_index) {
|
||||
Elf32_Ehdr *ehdr = (Elf32_Ehdr *)file;
|
||||
|
||||
for (int i = 0; i < u16be(ehdr->e_shnum); i++) {
|
||||
if (memcmp("\x7f" "ELF", ehdr->e_ident, 4) != 0) {
|
||||
fprintf(stderr, "Missing ELF magic\n");
|
||||
exit(1);
|
||||
}
|
||||
if (ehdr->e_ident[EI_DATA] != 2) {
|
||||
fprintf(stderr, "ELF file is not big-endian\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Elf32_Shdr *shdr = (Elf32_Shdr *)(file + u32be(ehdr->e_shoff) + i * u16be(ehdr->e_shentsize));
|
||||
if (u16be(ehdr->e_shstrndx) >= u16be(ehdr->e_shnum)) {
|
||||
fprintf(stderr, "Invalid ELF file\n");
|
||||
exit(1);
|
||||
}
|
||||
Elf32_Shdr *str_shdr = (Elf32_Shdr *)(file + u32be(ehdr->e_shoff) + u16be(ehdr->e_shstrndx) * u16be(ehdr->e_shentsize));
|
||||
char *name = (char *)(file + u32be(str_shdr->sh_offset) + u32be(shdr->sh_name));
|
||||
if (memcmp(name, searched_name, strlen(searched_name)) == 0) {
|
||||
*address = u32be(shdr->sh_addr);
|
||||
*offset = u32be(shdr->sh_offset);
|
||||
*size = u32be(shdr->sh_size);
|
||||
*section_index = i;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc < 3) {
|
||||
fprintf(stderr, "Usage: %s INFILE OUTFILE\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
FILE *in = fopen(argv[1], "rb");
|
||||
if (in == NULL) {
|
||||
perror("fopen couldn't open input file");
|
||||
exit(1);
|
||||
}
|
||||
fseek(in, 0, SEEK_END);
|
||||
size_t file_size = ftell(in);
|
||||
fseek(in, 0, SEEK_SET);
|
||||
uint8_t *file = malloc(file_size);
|
||||
if (fread(file, 1, file_size, in) != file_size) {
|
||||
fclose(in);
|
||||
fprintf(stderr, "Failed to read file: %s\n", argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
fclose(in);
|
||||
|
||||
uint32_t data_address, data_offset, data_size, data_index;
|
||||
if (!elf_get_section_range(file, ".data", &data_address, &data_offset, &data_size, &data_index)) {
|
||||
fprintf(stderr, "section .data not found\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
uint32_t rodata_address, rodata_offset, rodata_size, rodata_index;
|
||||
if (elf_get_section_range(file, ".rodata", &rodata_address, &rodata_offset, &rodata_size, &rodata_index)) {
|
||||
fprintf(stderr, ".rodata section found, please put everything in .data instead (non-const variables)\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
uint32_t symtab_address, symtab_offset, symtab_size, symtab_index;
|
||||
if (!elf_get_section_range(file, ".symtab", &symtab_address, &symtab_offset, &symtab_size, &symtab_index)) {
|
||||
fprintf(stderr, "section .symtab not found\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
uint32_t strtab_address, strtab_offset, strtab_size, strtab_index;
|
||||
if (!elf_get_section_range(file, ".strtab", &strtab_address, &strtab_offset, &strtab_size, &strtab_index)) {
|
||||
fprintf(stderr, "section .strtab not found\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// IDO might pad the section to the nearest 16 byte boundary,
|
||||
// but the mio0 data should not include that. Therefore find
|
||||
// the "real" end by finding where the last symbol ends.
|
||||
uint32_t last_symbol_end = 0;
|
||||
|
||||
for (uint32_t i = 0; i < symtab_size / sizeof(Elf32_Sym); i++) {
|
||||
Elf32_Sym *symbol = (Elf32_Sym *)(file + symtab_offset + i * sizeof(Elf32_Sym));
|
||||
#if DEBUG
|
||||
const char *name = "(null)";
|
||||
if (symbol->st_name != 0U) {
|
||||
name = (const char*)file + strtab_offset + u32be(symbol->st_name);
|
||||
}
|
||||
printf("%08x\t%08x\t%02x\t%02x\t%02x\t%s\n", u32be(symbol->st_value), u32be(symbol->st_size), symbol->st_info, symbol->st_other, u16be(symbol->st_shndx), name);
|
||||
#endif
|
||||
if (ELF_ST_TYPE(symbol->st_info) == STT_OBJECT && u16be(symbol->st_shndx) == data_index) {
|
||||
uint32_t symbol_end = u32be(symbol->st_value) + u32be(symbol->st_size);
|
||||
if (symbol_end > last_symbol_end) {
|
||||
last_symbol_end = symbol_end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t mdebug_address, mdebug_offset, mdebug_size, mdebug_index;
|
||||
if (elf_get_section_range(file, ".mdebug", &mdebug_address, &mdebug_offset, &mdebug_size, &mdebug_index)) {
|
||||
SymbolicHeader *symbolic_header = (SymbolicHeader *)(file + mdebug_offset);
|
||||
|
||||
for (uint32_t i = 0; i < u32be(symbolic_header->ifdMax); i++) {
|
||||
FileDescriptorTable *fdt = (FileDescriptorTable *)(file + u32be(symbolic_header->cbFdOffset) + i * sizeof(FileDescriptorTable));
|
||||
|
||||
for (uint32_t j = 0; j < u32be(fdt->csym); j++) {
|
||||
LocalSymbolsEntry lse;
|
||||
memcpy(&lse, file + u32be(symbolic_header->cbSymOffset) + (u32be(fdt->isymBase) + j) * sizeof(LocalSymbolsEntry), sizeof(LocalSymbolsEntry));
|
||||
|
||||
uint32_t value = u32be(lse.value);
|
||||
uint32_t st_sc_index = u32be(lse.st_sc_index);
|
||||
uint32_t st = (st_sc_index >> 26);
|
||||
#ifdef DEBUG
|
||||
uint32_t sc = (st_sc_index >> 21) & 0x1f;
|
||||
uint32_t index = st_sc_index & 0xfffff;
|
||||
uint32_t iss = u32be(lse.iss);
|
||||
const char *symbol_name = file + u32be(symbolic_header->cbSsOffset) + iss;
|
||||
printf("%s %08x\n", symbol_name, value);
|
||||
#endif
|
||||
|
||||
if (st == stStatic || st == stGlobal) {
|
||||
// Right now just assume length 8 since it's quite much work to extract the real size
|
||||
uint32_t symbol_end = value + 8;
|
||||
if (symbol_end > last_symbol_end) {
|
||||
last_symbol_end = symbol_end;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("Last symbol end: %08x\n", last_symbol_end);
|
||||
#endif
|
||||
|
||||
size_t new_size = last_symbol_end - data_address;
|
||||
if (new_size + 16 <= data_size) {
|
||||
// There seems to be more than 16 bytes padding or non-identified data, so abort and take the original size
|
||||
new_size = data_size;
|
||||
} else {
|
||||
// Make sure we don't cut off non-zero bytes
|
||||
for (size_t i = new_size; i < data_size; i++) {
|
||||
if (file[data_offset + i] != 0) {
|
||||
// Must be some symbol missing, so abort and take the original size
|
||||
new_size = data_size;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FILE *out = fopen(argv[2], "wb");
|
||||
fwrite(file + data_offset, 1, new_size, out);
|
||||
fclose(out);
|
||||
|
||||
free(file);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
/recomp
|
||||
/recomp-conservative
|
||||
|
||||
/cc*
|
||||
/cfe*
|
||||
/uopt*
|
||||
/ugen*
|
||||
/as1*
|
||||
/acpp*
|
||||
/copt*
|
||||
/ujoin*
|
||||
/uld*
|
||||
/umerge*
|
||||
/usplit*
|
||||
|
||||
/err.english.cc
|
|
@ -0,0 +1,37 @@
|
|||
IRIX_ROOT := ../ido5.3_compiler
|
||||
|
||||
cc: OPT_CFLAGS := -O2
|
||||
cfe: OPT_CFLAGS := -O2
|
||||
uopt: OPT_CFLAGS := -O2
|
||||
ugen: OPT_CFLAGS := -O2
|
||||
as1: OPT_CFLAGS := -O2
|
||||
acpp: OPT_CFLAGS := -O2
|
||||
|
||||
RECOMP := recomp
|
||||
|
||||
ugen_c.c: RECOMP_FLAGS := --conservative
|
||||
|
||||
all: cc cfe uopt ugen as1 acpp copt ujoin uld umerge usplit err.english.cc
|
||||
|
||||
clean:
|
||||
$(RM) cc* cfe* uopt* ugen* as1* acpp* copt* ujoin* uld* umerge* usplit* err.english.cc $(RECOMP) libc_impl.o
|
||||
|
||||
$(RECOMP): recomp.cpp
|
||||
$(CXX) $^ -o $@ -std=c++11 -O2 -Wno-switch `pkg-config --cflags --libs capstone`
|
||||
|
||||
libc_impl.o: libc_impl.c libc_impl.h
|
||||
$(CC) $< -c -fno-strict-aliasing -O2 -DIDO53
|
||||
|
||||
err.english.cc: $(IRIX_ROOT)/usr/lib/err.english.cc
|
||||
cp $^ $@
|
||||
|
||||
cc_c.c: $(IRIX_ROOT)/usr/bin/cc $(RECOMP)
|
||||
./$(RECOMP) $(RECOMP_FLAGS) $< > $@
|
||||
|
||||
%_c.c: $(IRIX_ROOT)/usr/lib/% $(RECOMP)
|
||||
./$(RECOMP) $(RECOMP_FLAGS) $< > $@
|
||||
|
||||
%: %_c.c libc_impl.o
|
||||
$(CC) libc_impl.o $< -o $@ $(OPT_CFLAGS) -fno-strict-aliasing -lm -no-pie
|
||||
|
||||
.PHONY: all clean
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,99 @@
|
|||
#ifndef ELF_H
|
||||
#define ELF_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define EI_DATA 5
|
||||
#define EI_NIDENT 16
|
||||
#define SHT_SYMTAB 2
|
||||
#define SHT_DYNAMIC 6
|
||||
#define SHT_REL 9
|
||||
#define SHT_DYNSYM 11
|
||||
#define SHT_MIPS_REGINFO 0x70000006
|
||||
#define STN_UNDEF 0
|
||||
#define STT_OBJECT 1
|
||||
#define STT_FUNC 2
|
||||
#define DT_PLTGOT 3
|
||||
#define DT_MIPS_LOCAL_GOTNO 0x7000000a
|
||||
#define DT_MIPS_SYMTABNO 0x70000011
|
||||
#define DT_MIPS_GOTSYM 0x70000013
|
||||
|
||||
#define ELF32_R_SYM(info) ((info) >> 8)
|
||||
#define ELF32_R_TYPE(info) ((info) & 0xff)
|
||||
|
||||
#define ELF32_ST_TYPE(info) ((info) & 0xf)
|
||||
|
||||
#define R_MIPS_26 4
|
||||
#define R_MIPS_HI16 5
|
||||
#define R_MIPS_LO16 6
|
||||
|
||||
#define SHN_UNDEF 0
|
||||
#define SHN_COMMON 0xfff2
|
||||
#define SHN_MIPS_ACOMMON 0xff00
|
||||
#define SHN_MIPS_TEXT 0xff01
|
||||
#define SHN_MIPS_DATA 0xff02
|
||||
|
||||
typedef uint32_t Elf32_Addr;
|
||||
typedef uint32_t Elf32_Off;
|
||||
|
||||
typedef struct {
|
||||
uint8_t e_ident[EI_NIDENT];
|
||||
uint16_t e_type;
|
||||
uint16_t e_machine;
|
||||
uint32_t e_version;
|
||||
Elf32_Addr e_entry;
|
||||
Elf32_Off e_phoff;
|
||||
Elf32_Off e_shoff;
|
||||
uint32_t e_flags;
|
||||
uint16_t e_ehsize;
|
||||
uint16_t e_phentsize;
|
||||
uint16_t e_phnum;
|
||||
uint16_t e_shentsize;
|
||||
uint16_t e_shnum;
|
||||
uint16_t e_shstrndx;
|
||||
} Elf32_Ehdr;
|
||||
|
||||
typedef struct {
|
||||
uint32_t sh_name;
|
||||
uint32_t sh_type;
|
||||
uint32_t sh_flags;
|
||||
Elf32_Addr sh_addr;
|
||||
Elf32_Off sh_offset;
|
||||
uint32_t sh_size;
|
||||
uint32_t sh_link;
|
||||
uint32_t sh_info;
|
||||
uint32_t sh_addralign;
|
||||
uint32_t sh_entsize;
|
||||
} Elf32_Shdr;
|
||||
|
||||
typedef struct {
|
||||
uint32_t st_name;
|
||||
Elf32_Addr st_value;
|
||||
uint32_t st_size;
|
||||
uint8_t st_info;
|
||||
uint8_t st_other;
|
||||
uint16_t st_shndx;
|
||||
} Elf32_Sym;
|
||||
|
||||
typedef struct {
|
||||
Elf32_Addr r_offset;
|
||||
uint32_t r_info;
|
||||
} Elf32_Rel;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t ri_gprmask; /* General registers used. */
|
||||
uint32_t ri_cprmask[4]; /* Coprocessor registers used. */
|
||||
int32_t ri_gp_value; /* $gp register value. */
|
||||
} Elf32_RegInfo;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int32_t d_tag; /* Dynamic entry type */
|
||||
union {
|
||||
uint32_t d_val; /* Integer value */
|
||||
Elf32_Addr d_ptr; /* Address value */
|
||||
} d_un;
|
||||
} Elf32_Dyn;
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,30 @@
|
|||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "libc_impl.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#define RM_RN 0
|
||||
#define RM_RZ 1
|
||||
#define RM_RP 2
|
||||
#define RM_RM 3
|
||||
|
||||
union FloatReg {
|
||||
float f[2];
|
||||
uint32_t w[2];
|
||||
double d;
|
||||
};
|
||||
|
||||
#define cvt_w_d(f) \
|
||||
((fcsr & RM_RZ) ? ((isnan(f) || f <= -2147483649.0 || f >= 2147483648.0) ? (fcsr |= 0x40, 2147483647) : (int)f) : (assert(0), 0))
|
||||
|
||||
#define cvt_w_s(f) cvt_w_d((double)f)
|
||||
|
||||
static union FloatReg f0 = {{0, 0}}, f2 = {{0, 0}}, f4 = {{0, 0}}, f6 = {{0, 0}}, f8 = {{0, 0}},
|
||||
f10 = {{0, 0}}, f12 = {{0, 0}}, f14 = {{0, 0}}, f16 = {{0, 0}}, f18 = {{0, 0}}, f20 = {{0, 0}},
|
||||
f22 = {{0, 0}}, f24 = {{0, 0}}, f26 = {{0, 0}}, f28 = {{0, 0}}, f30 = {{0, 0}};
|
||||
static uint32_t fcsr = 1;
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef HELPERS_H
|
||||
#define HELPERS_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define MEM_U32(a) (*(uint32_t *)(mem + a))
|
||||
#define MEM_S32(a) (*(int32_t *)(mem + a))
|
||||
#define MEM_U16(a) (*(uint16_t *)(mem + ((a) ^ 2)))
|
||||
#define MEM_S16(a) (*(int16_t *)(mem + ((a) ^ 2)))
|
||||
#define MEM_U8(a) (*(uint8_t *)(mem + ((a) ^ 3)))
|
||||
#define MEM_S8(a) (*(int8_t *)(mem + ((a) ^ 3)))
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,163 @@
|
|||
#include <stdint.h>
|
||||
|
||||
void mmap_initial_data_range(uint8_t *mem, uint32_t start, uint32_t end);
|
||||
void setup_libc_data(uint8_t *mem);
|
||||
|
||||
uint32_t wrapper_sbrk(uint8_t *mem, int increment);
|
||||
uint32_t wrapper_malloc(uint8_t *mem, uint32_t size);
|
||||
uint32_t wrapper_calloc(uint8_t *mem, uint32_t num, uint32_t size);
|
||||
uint32_t wrapper_realloc(uint8_t *mem, uint32_t data_addr, uint32_t size);
|
||||
int wrapper_fscanf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper_printf(uint8_t *mem, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper_sprintf(uint8_t *mem, uint32_t str_addr, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper_fprintf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper__doprnt(uint8_t *mem, uint32_t format_addr, uint32_t params_addr, uint32_t fp_addr);
|
||||
void wrapper_free(uint8_t *mem, uint32_t data_addr);
|
||||
uint32_t wrapper_strlen(uint8_t *mem, uint32_t str_addr);
|
||||
int wrapper_open(uint8_t *mem, uint32_t pathname_addr, int flags, int mode);
|
||||
int wrapper_creat(uint8_t *mem, uint32_t pathname_addr, int mode);
|
||||
int wrapper_access(uint8_t *mem, uint32_t pathname_addr, int mode);
|
||||
int wrapper_rename(uint8_t *mem, uint32_t oldpath_addr, uint32_t newpath_addr);
|
||||
int wrapper_utime(uint8_t *mem, uint32_t filename_addr, uint32_t times_addr);
|
||||
int wrapper_flock(uint8_t *mem, int fd, int operation);
|
||||
int wrapper_chmod(uint8_t *mem, uint32_t path_addr, uint32_t mode);
|
||||
int wrapper_umask(int mode);
|
||||
uint32_t wrapper_ecvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr);
|
||||
uint32_t wrapper_fcvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr);
|
||||
double wrapper_sqrt(double v);
|
||||
float wrapper_sqrtf(float v);
|
||||
int wrapper_atoi(uint8_t *mem, uint32_t nptr_addr);
|
||||
int wrapper_atol(uint8_t *mem, uint32_t nptr_addr);
|
||||
double wrapper_atof(uint8_t *mem, uint32_t nptr_addr);
|
||||
int wrapper_strtol(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base);
|
||||
uint32_t wrapper_strtoul(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base);
|
||||
double wrapper_strtod(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr);
|
||||
uint32_t wrapper_strchr(uint8_t *mem, uint32_t str_addr, int c);
|
||||
uint32_t wrapper_strrchr(uint8_t *mem, uint32_t str_addr, int c);
|
||||
uint32_t wrapper_strcspn(uint8_t *mem, uint32_t str_addr, uint32_t invalid_addr);
|
||||
uint32_t wrapper_strpbrk(uint8_t *mem, uint32_t str_addr, uint32_t accept_addr);
|
||||
int wrapper_fstat(uint8_t *mem, int fildes, uint32_t buf_addr);
|
||||
int wrapper_stat(uint8_t *mem, uint32_t pathname_addr, uint32_t buf_addr);
|
||||
int wrapper_ftruncate(uint8_t *mem, int fd, int length);
|
||||
void wrapper_bcopy(uint8_t *mem, uint32_t src_addr, uint32_t dst_addr, uint32_t len);
|
||||
uint32_t wrapper_memcpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, uint32_t len);
|
||||
uint32_t wrapper_memccpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, int c, uint32_t len);
|
||||
int wrapper_read(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes);
|
||||
int wrapper_write(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes);
|
||||
uint32_t wrapper_fopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr);
|
||||
uint32_t wrapper_freopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr, uint32_t fp_addr);
|
||||
int wrapper_fclose(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_fflush(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_ftell(uint8_t *mem, uint32_t fp_addr);
|
||||
void wrapper_rewind(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_fseek(uint8_t *mem, uint32_t fp_addr, int offset, int origin);
|
||||
int wrapper_lseek(uint8_t *mem, int fd, int offset, int whence);
|
||||
int wrapper_dup(uint8_t *mem, int fd);
|
||||
int wrapper_dup2(uint8_t *mem, int oldfd, int newfd);
|
||||
int wrapper_pipe(uint8_t *mem, uint32_t pipefd_addr);
|
||||
void wrapper_perror(uint8_t *mem, uint32_t str_addr);
|
||||
int wrapper_fdopen(uint8_t *mem, int fd, uint32_t mode_addr);
|
||||
uint32_t wrapper_memset(uint8_t *mem, uint32_t dest_addr, int byte, uint32_t n);
|
||||
int wrapper_bcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n);
|
||||
int wrapper_memcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n);
|
||||
int wrapper_getpid(void);
|
||||
int wrapper_getpgrp(uint8_t *mem);
|
||||
int wrapper_remove(uint8_t *mem, uint32_t path_addr);
|
||||
int wrapper_unlink(uint8_t *mem, uint32_t path_addr);
|
||||
int wrapper_close(uint8_t *mem, int fd);
|
||||
int wrapper_strcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr);
|
||||
int wrapper_strncmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n);
|
||||
uint32_t wrapper_strcpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr);
|
||||
uint32_t wrapper_strncpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n);
|
||||
uint32_t wrapper_strcat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr);
|
||||
uint32_t wrapper_strncat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n);
|
||||
uint32_t wrapper_strtok(uint8_t *mem, uint32_t str_addr, uint32_t delimiters_addr);
|
||||
uint32_t wrapper_strstr(uint8_t *mem, uint32_t str1_addr, uint32_t str2_addr);
|
||||
uint32_t wrapper_strdup(uint8_t *mem, uint32_t str_addr);
|
||||
int wrapper_toupper(int c);
|
||||
int wrapper_tolower(int c);
|
||||
int wrapper_gethostname(uint8_t *mem, uint32_t name_addr, uint32_t len);
|
||||
int wrapper_isatty(uint8_t *mem, int fd);
|
||||
int wrapper_times(uint8_t *mem, uint32_t buffer_addr);
|
||||
uint32_t wrapper_strftime(uint8_t *mem, uint32_t ptr_addr, uint32_t maxsize, uint32_t format_addr, uint32_t timeptr_addr);
|
||||
int wrapper_clock(void);
|
||||
uint32_t wrapper_ctime(uint8_t *mem, uint32_t timep_addr);
|
||||
uint32_t wrapper_localtime(uint8_t *mem, uint32_t timep_addr);
|
||||
int wrapper_setvbuf(uint8_t *mem, uint32_t fp_addr, uint32_t buf_addr, int mode, uint32_t size);
|
||||
int wrapper___semgetc(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper___semputc(uint8_t *mem, int c, uint32_t fp_addr);
|
||||
int wrapper_fgetc(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_fgets(uint8_t *mem, uint32_t str_addr, int count, uint32_t fp_addr);
|
||||
int wrapper___filbuf(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper___flsbuf(uint8_t *mem, int ch, uint32_t fp_addr);
|
||||
int wrapper_ungetc(uint8_t *mem, int ch, uint32_t fp_addr);
|
||||
uint32_t wrapper_gets(uint8_t *mem, uint32_t str_addr);
|
||||
uint32_t wrapper_fread(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr);
|
||||
uint32_t wrapper_fwrite(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr);
|
||||
int wrapper_fputs(uint8_t *mem, uint32_t str_addr, uint32_t fp_addr);
|
||||
int wrapper_puts(uint8_t *mem, uint32_t str_addr);
|
||||
uint32_t wrapper_getcwd(uint8_t *mem, uint32_t buf_addr, uint32_t size);
|
||||
int wrapper_time(uint8_t *mem, uint32_t tloc_addr);
|
||||
void wrapper_bzero(uint8_t *mem, uint32_t str_addr, uint32_t n);
|
||||
int wrapper_fp_class_d(double d);
|
||||
double wrapper_ldexp(double d, int i);
|
||||
int64_t wrapper___ll_mul(int64_t a0, int64_t a1);
|
||||
int64_t wrapper___ll_div(int64_t a0, int64_t a1);
|
||||
int64_t wrapper___ll_rem(uint64_t a0, int64_t a1);
|
||||
int64_t wrapper___ll_lshift(int64_t a0, uint64_t shift);
|
||||
int64_t wrapper___ll_rshift(int64_t a0, uint64_t shift);
|
||||
uint64_t wrapper___ull_div(uint64_t a0, uint64_t a1);
|
||||
uint64_t wrapper___ull_rem(uint64_t a0, uint64_t a1);
|
||||
uint64_t wrapper___ull_rshift(uint64_t a0, uint64_t shift);
|
||||
uint64_t wrapper___d_to_ull(double d);
|
||||
int64_t wrapper___d_to_ll(double d);
|
||||
uint64_t wrapper___f_to_ull(float f);
|
||||
int64_t wrapper___f_to_ll(float f);
|
||||
float wrapper___ull_to_f(uint64_t v);
|
||||
float wrapper___ll_to_f(int64_t v);
|
||||
double wrapper___ull_to_d(uint64_t v);
|
||||
double wrapper___ll_to_d(int64_t v);
|
||||
void wrapper_abort(uint8_t *mem);
|
||||
void wrapper_exit(uint8_t *mem, int status);
|
||||
void wrapper__exit(uint8_t *mem, int status);
|
||||
void wrapper__cleanup(uint8_t *mem);
|
||||
uint32_t wrapper__rld_new_interface(uint8_t *mem, uint32_t operation, uint32_t sp);
|
||||
void wrapper__exithandle(uint8_t *mem);
|
||||
int wrapper__prctl(uint8_t *mem, int operation, uint32_t sp);
|
||||
double wrapper__atod(uint8_t *mem, uint32_t buffer_addr, int ndigits, int dexp);
|
||||
int wrapper_pathconf(uint8_t *mem, uint32_t path_addr, int name);
|
||||
uint32_t wrapper_getenv(uint8_t *mem, uint32_t name_addr);
|
||||
uint32_t wrapper_gettxt(uint8_t *mem, uint32_t msgid_addr, uint32_t default_str_addr);
|
||||
uint32_t wrapper_setlocale(uint8_t *mem, int category, uint32_t locale_addr);
|
||||
uint32_t wrapper_mmap(uint8_t *mem, uint32_t addr, uint32_t length, int prot, int flags, int fd, int offset);
|
||||
int wrapper_munmap(uint8_t *mem, uint32_t addr, uint32_t length);
|
||||
int wrapper_mprotect(uint8_t *mem, uint32_t addr, uint32_t length, int prot);
|
||||
int wrapper_sysconf(uint8_t *mem, int name);
|
||||
int wrapper_getpagesize(uint8_t *mem);
|
||||
int wrapper_strerror(uint8_t *mem, int errnum);
|
||||
int wrapper_ioctl(uint8_t *mem, int fd, uint32_t request, uint32_t sp);
|
||||
int wrapper_fcntl(uint8_t *mem, int fd, int cmd, uint32_t sp);
|
||||
uint32_t wrapper_signal(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t handler_addr, uint32_t sp);
|
||||
uint32_t wrapper_sigset(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t disp_addr, uint32_t sp);
|
||||
int wrapper_get_fpc_csr(uint8_t *mem);
|
||||
int wrapper_set_fpc_csr(uint8_t *mem, int csr);
|
||||
int wrapper_setjmp(uint8_t *mem, uint32_t addr);
|
||||
void wrapper_longjmp(uint8_t *mem, uint32_t addr, int status);
|
||||
uint32_t wrapper_tempnam(uint8_t *mem, uint32_t dir_addr, uint32_t pfx_addr);
|
||||
uint32_t wrapper_tmpnam(uint8_t *mem, uint32_t str_addr);
|
||||
uint32_t wrapper_mktemp(uint8_t *mem, uint32_t template_addr);
|
||||
int wrapper_mkstemp(uint8_t *mem, uint32_t name_addr);
|
||||
uint32_t wrapper_tmpfile(uint8_t *mem);
|
||||
int wrapper_wait(uint8_t *mem, uint32_t wstatus_addr);
|
||||
int wrapper_kill(uint8_t *mem, int pid, int sig);
|
||||
int wrapper_execlp(uint8_t *mem, uint32_t file_addr, uint32_t sp);
|
||||
int wrapper_execv(uint8_t *mem, uint32_t pathname_addr, uint32_t argv_addr);
|
||||
int wrapper_execvp(uint8_t *mem, uint32_t file_addr, uint32_t argv_addr);
|
||||
int wrapper_fork(uint8_t *mem);
|
||||
int wrapper_system(uint8_t *mem, uint32_t command_addr);
|
||||
uint32_t wrapper_tsearch(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr);
|
||||
uint32_t wrapper_tfind(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr);
|
||||
uint32_t wrapper_qsort(uint8_t *mem, uint32_t base_addr, uint32_t num, uint32_t size, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t compare_addr, uint32_t sp);
|
||||
uint32_t wrapper_regcmp(uint8_t *mem, uint32_t string1_addr, uint32_t sp);
|
||||
uint32_t wrapper_regex(uint8_t *mem, uint32_t re_addr, uint32_t subject_addr, uint32_t sp);
|
||||
void wrapper___assert(uint8_t *mem, uint32_t assertion_addr, uint32_t file_addr, int line);
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -669,6 +669,48 @@ D_8028461C = 0x8028461C;
|
|||
D_802874A0 = 0x802874A0; /* Very end of data_credits_128480.s unused? */
|
||||
D_802874BE = 0x802874BE; /* unused? */
|
||||
|
||||
d_course_mario_raceway_vertex = 0x0F000000;
|
||||
d_course_moo_moo_farm_vertex = 0x0F000000;
|
||||
d_course_luigi_raceway_vertex = 0x0F000000;
|
||||
d_course_sherbet_land_vertex = 0x0F000000;
|
||||
d_course_kalimari_desert_vertex = 0x0F000000;
|
||||
d_course_koopa_troopa_beach_vertex = 0x0F000000;
|
||||
d_course_choco_mountain_vertex = 0x0F000000;
|
||||
d_course_frappe_snowland_vertex = 0x0F000000;
|
||||
d_course_toads_turnpike_vertex = 0x0F000000;
|
||||
d_course_banshee_boardwalk_vertex = 0x0F000000;
|
||||
d_course_dks_jungle_parkway_vertex = 0x0F000000;
|
||||
d_course_rainbow_road_vertex = 0x0F000000;
|
||||
d_course_yoshi_valley_vertex = 0x0F000000;
|
||||
d_course_bowsers_castle_vertex = 0x0F000000;
|
||||
d_course_royal_raceway_vertex = 0x0F000000;
|
||||
d_course_wario_stadium_vertex = 0x0F000000;
|
||||
d_course_big_donut_vertex = 0x0F000000;
|
||||
d_course_block_fort_vertex = 0x0F000000;
|
||||
d_course_double_deck_vertex = 0x0F000000;
|
||||
d_course_skyscraper_vertex = 0x0F000000;
|
||||
|
||||
d_course_luigi_raceway_packed = 0x0F009800;
|
||||
d_course_mario_raceway_packed = 0x0F0096f4;
|
||||
d_course_choco_mountain_packed = 0x0F00A0B4;
|
||||
d_course_bowsers_castle_packed = 0x0f00e368;
|
||||
d_course_banshee_boardwalk_packed = 0x0f0068e8;
|
||||
d_course_yoshi_valley_packed = 0x0f007d90;
|
||||
d_course_frappe_snowland_packed = 0x0f009d24;
|
||||
d_course_royal_raceway_packed = 0x0f00ec60;
|
||||
d_course_toads_turnpike_packed = 0x0f00a5d0;
|
||||
d_course_kalimari_desert_packed = 0x0f00b394;
|
||||
d_course_sherbet_land_packed = 0x0f0049f8;
|
||||
d_course_rainbow_road_packed = 0x0f005a5c;
|
||||
d_course_wario_stadium_packed = 0x0f00a9cc;
|
||||
d_course_block_fort_packed = 0x0f0018d8;
|
||||
d_course_skyscraper_packed = 0x0f001678;
|
||||
d_course_double_deck_packed = 0x0f000cd4;
|
||||
d_course_dks_jungle_parkway_packed = 0x0f00a45c;
|
||||
d_course_big_donut_packed = 0x0f001b84;
|
||||
d_course_koopa_troopa_beach_packed = 0x0f00fd78;
|
||||
d_course_moo_moo_farm_packed = 0x0f00daec;
|
||||
|
||||
|
||||
D_802874C4 = 0x802874C4;
|
||||
D_802874C6 = 0x802874C6;
|
||||
|
|
Loading…
Reference in New Issue