mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-09 14:56:07 -04:00
Disassembled courses, added DLpacker, and disassembled packed DLs (#290)
* Disassembled all courses; packed DLs and course data. * Added displaylist packer * Minor documentation and naming
This commit is contained in:
@@ -47,7 +47,10 @@ COURSE_DIRS := $(shell find courses -mindepth 2 -type d)
|
||||
TEXTURES_DIR = textures
|
||||
TEXTURE_DIRS := textures/common
|
||||
|
||||
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone $(TEXTURES_DIR)/startup_logo $(TEXTURES_DIR)/crash_screen $(TEXTURES_DIR)/trophy $(TEXTURE_DIRS) $(TEXTURE_DIRS)/tlut $(TEXTURE_DIRS)/tlut2)
|
||||
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw \
|
||||
$(TEXTURES_DIR)/standalone $(TEXTURES_DIR)/startup_logo $(TEXTURES_DIR)/crash_screen $(TEXTURES_DIR)/trophy $(TEXTURES_DIR)/courses \
|
||||
$(TEXTURES_DIR)/courses/tlut $(TEXTURES_DIR)/courses/tlut2 $(TEXTURE_DIRS) $(TEXTURE_DIRS)/tlut $(TEXTURES_DIR)/courses/tlut3 \
|
||||
$(TEXTURE_DIRS)/tlut2)
|
||||
|
||||
################### Universal Dependencies ###################
|
||||
|
||||
@@ -90,7 +93,7 @@ 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)) $(COURSE_ASM_FILES)
|
||||
COURSE_FILES := $(foreach dir,$(COURSE_DIRS),$(wildcard $(dir)/model.inc.c))
|
||||
COURSE_FILES := $(foreach dir,$(COURSE_DIRS),$(wildcard $(dir)/*.inc.c))
|
||||
|
||||
# Object files
|
||||
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
||||
@@ -160,7 +163,7 @@ INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I src -I .
|
||||
GRUCODE_CFLAGS = -DF3DEX_GBI -D_LANGUAGE_C
|
||||
|
||||
# Check code syntax with host compiler
|
||||
CC_CHECK := gcc -fsyntax-only -fsigned-char $(CC_CFLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -std=gnu90 -Wall -Wextra -Wno-format-security -Wno-main -DNON_MATCHING -DAVOID_UB $(VERSION_CFLAGS) $(GRUCODE_CFLAGS)
|
||||
CC_CHECK := gcc -fsyntax-only -fsigned-char $(CC_CFLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -std=gnu90 -w -Wall -Wextra -Wno-format-security -Wno-main -DNON_MATCHING -DAVOID_UB $(VERSION_CFLAGS) $(GRUCODE_CFLAGS)
|
||||
|
||||
ASFLAGS = -march=vr4300 -mabi=32 -I include -I $(BUILD_DIR) --defsym F3DEX_GBI=1
|
||||
CFLAGS = -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn -signed $(OPT_FLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) $(VERSION_CFLAGS) $(MIPSISET) $(GRUCODE_CFLAGS)
|
||||
@@ -182,6 +185,7 @@ endif
|
||||
MIO0TOOL = $(TOOLS_DIR)/mio0
|
||||
N64CKSUM = $(TOOLS_DIR)/n64cksum
|
||||
N64GRAPHICS = $(TOOLS_DIR)/n64graphics
|
||||
DLPACKER = $(TOOLS_DIR)/displaylist_packer
|
||||
BIN2C = $(PYTHON) $(TOOLS_DIR)/bin2c.py
|
||||
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
|
||||
EMULATOR = mupen64plus
|
||||
@@ -272,8 +276,6 @@ TEXTURE_FILES_TLUT2 := $(foreach dir,$(TEXTURE_DIRS)/tlut2,$(subst .png, , $(wil
|
||||
$(TEXTURE_FILES):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8
|
||||
|
||||
$(info $$var is [$(TEXTURE_FILES_TLUT)])
|
||||
#$(info $$var is [$(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT))), ,$(TEXTURE_FILES_TLUT))))])
|
||||
# TLUT
|
||||
$(TEXTURE_FILES_TLUT):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT))), ,$(TEXTURE_FILES_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
|
||||
@@ -344,16 +346,79 @@ endif
|
||||
|
||||
#################### Compile course vertex to mio0 #####################
|
||||
|
||||
COURSE_PACKED_DL := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/packed_dl.inc.bin)
|
||||
|
||||
COURSE_MODEL_TARGETS := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/model.inc.mio0.o)
|
||||
|
||||
#$(info $(COURSE_PACKED_DL))
|
||||
$(COURSE_PACKED_DL):
|
||||
$(LD) -t -e 0 -Ttext=07000000 -Map $(@D)/packed.inc.elf.map -o $(@D)/packed.inc.elf $(@D)/packed.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(@D)/packed.inc.elf $(@D)/packed.inc.bin
|
||||
$(DLPACKER) $(@D)/packed.inc.bin $(@D)/packed_dl.inc.bin
|
||||
|
||||
# Elf the course data to include symbol addresses then convert to binary and compress to mio0. The mio0 file is converted to an object file so that the linker can link it.
|
||||
$(COURSE_MODEL_TARGETS) : $(BUILD_DIR)/%/model.inc.mio0.o : %/model.inc.c
|
||||
$(COURSE_MODEL_TARGETS) : $(BUILD_DIR)/%/model.inc.mio0.o : %/model.inc.c $(COURSE_PACKED_DL)
|
||||
$(LD) -t -e 0 -Ttext=0F000000 -Map $(@D)/model.inc.elf.map -o $(@D)/model.inc.elf $(@D)/model.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(@D)/model.inc.elf $(@D)/model.inc.bin
|
||||
$(MIO0TOOL) -c $(@D)/model.inc.bin $(@D)/model.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"$(@D)/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_$(lastword $(subst /, ,$*))_packed\n\n.incbin \"bin/course_$(lastword $(subst /, ,$*))_packed.bin\"\n" > $(@D)/model.inc.mio0.s
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"$(@D)/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_$(lastword $(subst /, ,$*))_packed\n\n.incbin \"$(@D)/packed_dl.inc.bin\"\n" > $(@D)/model.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $@ $(@D)/model.inc.mio0.s
|
||||
|
||||
#################### Compile course displaylists to mio0 #####################
|
||||
COURSE_DL_TARGETS := $(foreach dir,$(COURSE_DIRS),$(BUILD_DIR)/$(dir)/course_data.inc.mio0.o)
|
||||
|
||||
COURSE_TEXTURE_FILES := $(foreach dir,textures/courses,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
COURSE_TLUT := $(foreach dir,textures/courses/tlut,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
COURSE_TLUT2 := $(foreach dir,textures/courses/tlut2,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
COURSE_TLUT3 := $(foreach dir,textures/courses/tlut3,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
#RAINBOW_ROAD_TEXTURE_FILES := $(foreach dir,textures/courses/rainbow_road,$(subst .png, , $(wildcard $(dir)/*)))
|
||||
|
||||
$(COURSE_TEXTURE_FILES):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8
|
||||
|
||||
$(COURSE_TLUT):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(COURSE_TLUT))), ,$(COURSE_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
|
||||
|
||||
$(COURSE_TLUT2):
|
||||
$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(COURSE_TLUT2))), ,$(COURSE_TLUT2)))) -p $(BUILD_DIR)/$@.tlut.inc.c -m 0xFFFF
|
||||
|
||||
$(COURSE_TLUT3):
|
||||
$(N64GRAPHICS) -Z $(BUILD_DIR)/$@.inc.c -g $@.png -s u8 -c rgba16 -f ci8 -p textures/courses/$(basename $(notdir $@)).png
|
||||
# tluts
|
||||
# $(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(COURSE_TLUT2))), ,$(COURSE_TLUT2)))) -p $(BUILD_DIR)/$@.tlut.inc.c -m 0xFFFF
|
||||
|
||||
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_mushroom.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_mushroom4.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_mushroom4_tlut.rgba16.png
|
||||
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_mario.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_mario5.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_mario5_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_boo.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_boo5.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_boo5_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_peach.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_peach.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_peach_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_luigi.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_luigi.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_luigi_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_donkey_kong.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_donkey_kong.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_donkey_kong_tlut.rgba16.png
|
||||
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_yoshi.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_yoshi.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_yoshi_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_bowser.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_bowser.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_bowser_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_wario.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_wario.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_wario_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/rainbow_road/neon_toad.rgba16.ci8.inc.c -g textures/courses/rainbow_road/neon_toad.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/rainbow_road_neon_toad_tlut.rgba16.png
|
||||
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/koopa_troopa_beach/crab1.rgba16.ci8.inc.c -g textures/courses/koopa_troopa_beach/crab1.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/koopa_troopa_beach_crab_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/koopa_troopa_beach/crab2.rgba16.ci8.inc.c -g textures/courses/koopa_troopa_beach/crab2.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/koopa_troopa_beach_crab_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/koopa_troopa_beach/crab3.rgba16.ci8.inc.c -g textures/courses/koopa_troopa_beach/crab3.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/koopa_troopa_beach_crab_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/koopa_troopa_beach/crab4.rgba16.ci8.inc.c -g textures/courses/koopa_troopa_beach/crab4.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/koopa_troopa_beach_crab_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/koopa_troopa_beach/crab5.rgba16.ci8.inc.c -g textures/courses/koopa_troopa_beach/crab5.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/koopa_troopa_beach_crab_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/koopa_troopa_beach/crab6.rgba16.ci8.inc.c -g textures/courses/koopa_troopa_beach/crab6.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/koopa_troopa_beach_crab_tlut.rgba16.png
|
||||
# $(N64GRAPHICS) -Z $(BUILD_DIR)/textures/courses/koopa_troopa_beach/crab7.rgba16.ci8.inc.c -g textures/courses/koopa_troopa_beach/crab7.rgba16.ci8.png -s u8 -c rgba16 -f ci8 -p textures/courses/koopa_troopa_beach_crab_tlut.rgba16.png
|
||||
# $(info RUNNING)
|
||||
# $(error "Forced error")
|
||||
|
||||
$(COURSE_DL_TARGETS): $(BUILD_DIR)/%/course_data.inc.mio0.o : %/course_data.inc.c $(BUILD_DIR)/%/course_data.inc.o $(COURSE_TEXTURE_FILES) $(COURSE_TLUT) $(COURSE_TLUT2) $(COURSE_TLUT3)
|
||||
# todo: Clean this up if possible. Not really worth the time though.
|
||||
$(LD) -t -e 0 -Ttext=06000000 -Map $(@D)/course_data.inc.elf.map -o $(@D)/course_data.inc.elf $(@D)/course_data.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(@D)/course_data.inc.elf $(@D)/course_data.inc.bin
|
||||
$(MIO0TOOL) -c $(@D)/course_data.inc.bin $(@D)/course_data.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"$(@D)/course_data.inc.mio0\"\n\n" > $(@D)/course_data.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $@ $(@D)/course_data.inc.mio0.s
|
||||
|
||||
#################### STAFF GHOSTS #####################
|
||||
|
||||
# trophy_model.inc.c
|
||||
@@ -383,7 +448,7 @@ $(BUILD_DIR)/src/common_textures.inc.mio0.o: $(BUILD_DIR)/src/common_textures.in
|
||||
$(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/common_textures.inc.mio0.o $(BUILD_DIR)/src/common_textures.inc.mio0.s
|
||||
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(BUILD_DIR)/src/common_textures.inc.mio0.o $(COURSE_MODEL_TARGETS) undefined_syms.txt
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(COURSE_DL_TARGETS) $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(BUILD_DIR)/src/common_textures.inc.mio0.o $(COURSE_MODEL_TARGETS) undefined_syms.txt
|
||||
$(LD) $(LDFLAGS) -o $@
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).z64: $(BUILD_DIR)/$(TARGET).elf
|
||||
|
||||
@@ -164,3 +164,11 @@ $(MUSIC_DIR)/seq_21.m64
|
||||
|
||||
$(BUILD_DIR)/src/startup_logo.inc.elf: SEGMENT_ADDRESS := 0x06000000
|
||||
$(BUILD_DIR)/src/trophy_model.inc.elf: SEGMENT_ADDRESS := 0x0B000000
|
||||
|
||||
|
||||
# COURSES
|
||||
|
||||
$(BUILD_DIR)/courses/star_cup/sherbet_land/gfx.inc.elf: SEGMENT_ADDRESS := 0x06000000
|
||||
$(BUILD_DIR)/courses/star_cup/wario_stadium/gfx.inc.elf: SEGMENT_ADDRESS := 0x06000000
|
||||
$(BUILD_DIR)/courses/mushroom_cup/luigi_raceway/gfx.inc.elf: SEGMENT_ADDRESS := 0x06000000
|
||||
|
||||
|
||||
+168
-181
@@ -12569,7 +12569,7 @@
|
||||
"textures/69333C_00000.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x7320", "0x83F740"]}, "offsets": {"us":["0x69333C", "0x00000"]}},
|
||||
"textures/693790_00000.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x7320", "0x83F740"]}, "offsets": {"us":["0x693790", "0x00000"]}},
|
||||
|
||||
"textures/gTLUTCow.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x852E20", "0x13870"]}},
|
||||
"textures/courses/moo_moo_farm_cow_tlut.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x852E20", "0x13870"]}},
|
||||
"textures/gTextureCow01Left.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x13870", "0x852E20"]}, "offsets": {"us":["0x693BC4", "0x00000"]}},
|
||||
"textures/gTextureCow01Right.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x13870", "0x852E20"]}, "offsets": {"us":["0x693F48", "0x00000"]}},
|
||||
"textures/gTextureCow02Left.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x13870", "0x852E20"]}, "offsets": {"us":["0x69429C", "0x00000"]}},
|
||||
@@ -12598,7 +12598,7 @@
|
||||
"textures/697E80_00000.rgba16.ci8.png": {"meta":{"dims":[64,32], "pal":["0x0", "0x132B50"]}, "offsets": {"us":["0x697E80", "0x00000"]}},
|
||||
"textures/69811C_00000.rgba16.ci8.png": {"meta":{"dims":[64,32], "pal":["0x0", "0x132B50"]}, "offsets": {"us":["0x69811C", "0x00000"]}},
|
||||
|
||||
"textures/gTLUTPiranhaPlant.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x8284D0", "0x6750"]}},
|
||||
"textures/courses/gTLUTPiranhaPlant.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x8284D0", "0x6750"]}},
|
||||
"textures/gTexturePiranhaPlant01.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x6750", "0x8284D0"]}, "offsets": {"us":["0x698378", "0x00000"]}},
|
||||
"textures/gTexturePiranhaPlant02.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x6750", "0x8284D0"]}, "offsets": {"us":["0x69859C", "0x00000"]}},
|
||||
"textures/gTexturePiranhaPlant03.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":["0x6750", "0x8284D0"]}, "offsets": {"us":["0x6987FC", "0x00000"]}},
|
||||
@@ -12611,7 +12611,7 @@
|
||||
|
||||
"textures/standalone/texture_6997E0.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x6997E0", "0x00000"]}},
|
||||
|
||||
"textures/gTLUTKiwanoFruit.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x885A10", "0x13978"]}},
|
||||
"textures/courses/dks_jungle_parkway_kiwano_tlut.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x885A10", "0x13978"]}},
|
||||
"textures/gTextureKiwanoFruit01.rgba16.ci8.png": {"meta":{"dims":[32,32], "pal":["0x13978", "0x885A10"]}, "offsets": {"us":["0x699E24", "0x00000"]}},
|
||||
"textures/gTextureKiwanoFruit02.rgba16.ci8.png": {"meta":{"dims":[32,32], "pal":["0x13978", "0x885A10"]}, "offsets": {"us":["0x69A154", "0x00000"]}},
|
||||
"textures/gTextureKiwanoFruit03.rgba16.ci8.png": {"meta":{"dims":[32,32], "pal":["0x13978", "0x885A10"]}, "offsets": {"us":["0x69A4C0", "0x00000"]}},
|
||||
@@ -12792,7 +12792,7 @@
|
||||
"textures/gTextureLakituFishing03.rgba16.ci8.png": {"meta":{"dims":[56,72], "pal":["0x25CD8", "0x132B50"]}, "offsets": {"us":["0x710E40", "0x0"]}},
|
||||
"textures/gTextureLakituFishing04.rgba16.ci8.png": {"meta":{"dims":[56,72], "pal":["0x25CD8", "0x132B50"]}, "offsets": {"us":["0x711E00", "0x0"]}},
|
||||
|
||||
"textures/gTLUTBoo.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x831DC0", "0x5C80"]}},
|
||||
"textures/courses/gTLUTBoo.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x831DC0", "0x5C80"]}},
|
||||
"textures/712DC0_00000.rgba16.ci8.png": {"meta":{"dims":[48,40], "pal":["0x5C80", "0x831DC0"]}, "offsets": {"us":["0x712DC0", "0x00000"]}},
|
||||
"textures/712DC0_00780.rgba16.ci8.png": {"meta":{"dims":[48,40], "pal":["0x5C80", "0x831DC0"]}, "offsets": {"us":["0x712DC0", "0x00780"]}},
|
||||
"textures/712DC0_00F00.rgba16.ci8.png": {"meta":{"dims":[48,40], "pal":["0x5C80", "0x831DC0"]}, "offsets": {"us":["0x712DC0", "0x00F00"]}},
|
||||
@@ -13501,201 +13501,188 @@
|
||||
"textures/821D10_07760.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x821D10", "0x07760"]}},
|
||||
"textures/821D10_08070.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x821D10", "0x08070"]}},
|
||||
"textures/825800_08A48.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x825800", "0x08A48"]}},
|
||||
"textures/8284D0_07068.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8284D0", "0x07068"]}},
|
||||
"textures/8284D0_08068.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8284D0", "0x08068"]}},
|
||||
"textures/82B620_05B38.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x82B620", "0x05B38"]}},
|
||||
"textures/82B620_06338.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x82B620", "0x06338"]}},
|
||||
"textures/82DF40_06738.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x82DF40", "0x06738"]}},
|
||||
"textures/courses/mario_raceway_sign_left.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8284D0", "0x07068"]}},
|
||||
"textures/courses/mario_raceway_sign_right.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8284D0", "0x08068"]}},
|
||||
"textures/courses/choco_mountain_wall.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x82B620", "0x05B38"]}},
|
||||
"textures/courses/choco_mountain_rock.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x82B620", "0x06338"]}},
|
||||
"textures/courses/bowsers_castle_thwomp.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x82DF40", "0x06738"]}},
|
||||
|
||||
"textures/gTLUTWhomp.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x82DF40", "0x06F38"]}},
|
||||
"textures/gTextureWhomp01.rgba16.ci8.png": {"meta":{"dims":[16,64], "pal":"0x6F38"}, "offsets": {"us":["0x82DF40", "0x07138"]}},
|
||||
"textures/gTextureWhomp02.rgba16.ci8.png": {"meta":{"dims":[16,64], "pal":"0x6F38"}, "offsets": {"us":["0x82DF40", "0x07538"]}},
|
||||
"textures/gTextureWhomp03.rgba16.ci8.png": {"meta":{"dims":[16,64], "pal":"0x6F38"}, "offsets": {"us":["0x82DF40", "0x07938"]}},
|
||||
"textures/gTextureWhomp04.rgba16.ci8.png": {"meta":{"dims":[16,64], "pal":"0x6F38"}, "offsets": {"us":["0x82DF40", "0x07D38"]}},
|
||||
"textures/gTextureWhomp05.rgba16.ci8.png": {"meta":{"dims":[16,64], "pal":"0x6F38"}, "offsets": {"us":["0x82DF40", "0x08138"]}},
|
||||
"textures/gTextureWhomp06.rgba16.ci8.png": {"meta":{"dims":[16,64], "pal":"0x6F38"}, "offsets": {"us":["0x82DF40", "0x08538"]}},
|
||||
"textures/courses/tlut/bowsers_castle_thwomp_face.rgba16.ci8.png": {"meta":{"dims":[16,384], "pal":"0x6F38"}, "offsets": {"us":["0x82DF40", "0x07138"]}},
|
||||
|
||||
"textures/831DC0_06E50.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x831DC0", "0x06E50"]}},
|
||||
"textures/courses/banshee_boardwalk_fish_eyes.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x831DC0", "0x06E50"]}},
|
||||
|
||||
"textures/gTLUTBat.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x831DC0", "0x07BB8"]}},
|
||||
"textures/gTextureBat01.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0x7BB8"}, "offsets": {"us":["0x831DC0", "0x07DB8"]}},
|
||||
"textures/gTextureBat02.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0x7BB8"}, "offsets": {"us":["0x831DC0", "0x085B8"]}},
|
||||
"textures/gTextureBat03.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0x7BB8"}, "offsets": {"us":["0x831DC0", "0x08DB8"]}},
|
||||
"textures/gTextureBat04.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0x7BB8"}, "offsets": {"us":["0x831DC0", "0x095B8"]}},
|
||||
"textures/courses/tlut/banshee_boardwalk_bat.rgba16.ci8.png": {"meta":{"dims":[32,256], "pal":"0x7BB8"}, "offsets": {"us":["0x831DC0", "0x07DB8"]}},
|
||||
|
||||
"textures/831DC0_0A050.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x831DC0", "0x0A050"]}},
|
||||
"textures/831DC0_0AA78.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x831DC0", "0x0AA78"]}},
|
||||
"textures/835BA0_139A0.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x835BA0", "0x139A0"]}},
|
||||
"textures/courses/banshee_boardwalk_0A050.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x831DC0", "0x0A050"]}},
|
||||
"textures/courses/banshee_boardwalk_0AA78.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x831DC0", "0x0AA78"]}},
|
||||
"textures/courses/yoshi_valley_yoshi_flag.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x835BA0", "0x139A0"]}},
|
||||
|
||||
"textures/gTLUTHedgehog.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x835BA0", "0x14908"]}},
|
||||
"textures/gTextureHedgehog.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x14908"}, "offsets": {"us":["0x835BA0", "0x14B08"]}},
|
||||
"textures/courses/tlut2/yoshi_valley_hedgehog.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x14908"}, "offsets": {"us":["0x835BA0", "0x14B08"]}},
|
||||
|
||||
"textures/835BA0_16570.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x835BA0", "0x16570"]}},
|
||||
"textures/835BA0_16FA8.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x835BA0", "0x16FA8"]}},
|
||||
"textures/courses/yoshi_valley_egg_spot.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x835BA0", "0x16570"]}},
|
||||
"textures/courses/yoshi_valley_egg.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x835BA0", "0x16FA8"]}},
|
||||
|
||||
"textures/gTLUTSnowman.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x83F740", "0x4B20"]}},
|
||||
"textures/gTextureSnowmanHead.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x4B20"}, "offsets": {"us":["0x83F740", "0x04D20"]}},
|
||||
"textures/gTextureSnowmanBody.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x4B20"}, "offsets": {"us":["0x83F740", "0x05D20"]}},
|
||||
"textures/courses/tlut2/frappe_snowland_snowman.rgba16.ci8.png": {"meta":{"dims":[64,128], "pal":"0x4B20"}, "offsets": {"us":["0x83F740", "0x04D20"]}},
|
||||
"textures/courses/tlut/frappe_snowland_snow.rgba16.ci8.png": {"meta":{"dims":[32,32], "pal":"0x6D20"}, "offsets": {"us":["0x83F740", "0x06F20"]}},
|
||||
"textures/courses/frappe_snowland_tree.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x83F740", "0x07320"]}},
|
||||
|
||||
"textures/83F740_06F20.rgba16.ci8.png": {"meta":{"dims":[32,32], "pal":"0x6D20"}, "offsets": {"us":["0x83F740", "0x06F20"]}},
|
||||
"textures/courses/koopa_troopa_beach_crab1.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/courses/koopa_troopa_beach_crab2.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/courses/koopa_troopa_beach_crab3.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/courses/koopa_troopa_beach_crab4.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/courses/koopa_troopa_beach_crab5.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/courses/koopa_troopa_beach_crab6.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/courses/koopa_troopa_beach_crab7.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/courses/tlut3/koopa_troopa_beach_crab1.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x0D828"]}},
|
||||
"textures/courses/tlut3/koopa_troopa_beach_crab2.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x0E828"]}},
|
||||
"textures/courses/tlut3/koopa_troopa_beach_crab3.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x0F828"]}},
|
||||
"textures/courses/tlut3/koopa_troopa_beach_crab4.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x10828"]}},
|
||||
"textures/courses/tlut3/koopa_troopa_beach_crab5.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x11828"]}},
|
||||
"textures/courses/tlut3/koopa_troopa_beach_crab6.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x12828"]}},
|
||||
"textures/courses/tlut3/koopa_troopa_beach_crab7.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x13828"]}},
|
||||
|
||||
"textures/gTLUTCrab.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x842E40", "0x0D628"]}},
|
||||
"textures/gTextureCrab01.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x0D828"]}},
|
||||
"textures/gTextureCrab02.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x0E828"]}},
|
||||
"textures/gTextureCrab03.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x0F828"]}},
|
||||
"textures/gTextureCrab04.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x10828"]}},
|
||||
"textures/gTextureCrab05.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x11828"]}},
|
||||
"textures/gTextureCrab06.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x12828"]}},
|
||||
"textures/gTextureCrab07.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0xD628"}, "offsets": {"us":["0x842E40", "0x13828"]}},
|
||||
"textures/courses/koopa_troopa_beach_bird_wing.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x14C00"]}},
|
||||
"textures/courses/koopa_troopa_beach_bird_reflection_map.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x15400"]}},
|
||||
"textures/courses/koopa_troopa_beach_orange.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x15C00"]}},
|
||||
"textures/courses/koopa_troopa_beach_leaf.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x842E40", "0x16D20"]}},
|
||||
"textures/courses/koopa_troopa_beach_wood.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x17D20"]}},
|
||||
"textures/courses/luigi_raceway_sign_left.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x84E8E0", "0x0C588"]}},
|
||||
"textures/courses/luigi_raceway_sign_right.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x84E8E0", "0x0D588"]}},
|
||||
"textures/courses/luigi_raceway_balloon_basket.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x84E8E0", "0x0E588"]}},
|
||||
"textures/courses/luigi_raceway_balloon_rope.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x84E8E0", "0x0ED88"]}},
|
||||
|
||||
"textures/842E40_14C00.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x14C00"]}},
|
||||
"textures/842E40_15400.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x15400"]}},
|
||||
"textures/842E40_15C00.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x15C00"]}},
|
||||
"textures/842E40_16D20.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x842E40", "0x16D20"]}},
|
||||
"textures/842E40_17D20.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x842E40", "0x17D20"]}},
|
||||
"textures/84E8E0_0C588.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x84E8E0", "0x0C588"]}},
|
||||
"textures/84E8E0_0D588.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x84E8E0", "0x0D588"]}},
|
||||
"textures/84E8E0_0E588.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x84E8E0", "0x0E588"]}},
|
||||
"textures/84E8E0_0ED88.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x84E8E0", "0x0ED88"]}},
|
||||
"textures/courses/tlut/moo_moo_farm_mole.rgba16.ci8.png": {"meta":{"dims":[32,448], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x0FE70"]}},
|
||||
|
||||
"textures/gTLUTMole.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x852E20", "0x0FC70"]}},
|
||||
"textures/gTextureMole01.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x0FE70"]}},
|
||||
"textures/gTextureMole02.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x10670"]}},
|
||||
"textures/gTextureMole03.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x10E70"]}},
|
||||
"textures/gTextureMole04.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x11670"]}},
|
||||
"textures/gTextureMole05.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x11E70"]}},
|
||||
"textures/gTextureMole06.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x12670"]}},
|
||||
"textures/gTextureMole07.rgba16.ci8.png": {"meta":{"dims":[32,64], "pal":"0xFC70"}, "offsets": {"us":["0x852E20", "0x12E70"]}},
|
||||
"textures/courses/moo_moo_farm_mole_dirt.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x852E20", "0x13670"]}},
|
||||
"textures/courses/toads_turnpike_857E80_059B8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x857E80", "0x059B8"]}},
|
||||
"textures/courses/toads_turnpike_truck1_box.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x069B8"]}},
|
||||
"textures/courses/toads_turnpike_truck1_headlights.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x071B8"]}},
|
||||
"textures/courses/toads_turnpike_truck1_tyre.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x079B8"]}},
|
||||
"textures/courses/toads_turnpike_truck1_cab.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x081B8"]}},
|
||||
"textures/courses/toads_turnpike_truck1_cab_side.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x089B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_back_lod0.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x857E80", "0x091B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_side.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x857E80", "0x0A1B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_door_lod0.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0B1B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_window.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0B9B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_front_lod0.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x857E80", "0x0C1B8"]}},
|
||||
"textures/courses/toads_turnpike_black.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0D1B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_driver_window.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0D9B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_door_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0E1B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_side_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0E9B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_front_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0F1B8"]}},
|
||||
"textures/courses/toads_turnpike_bus_back_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0F9B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_stripe.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x101B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_windshield.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x109B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_front.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x111B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_headlights.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x119B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_bumper.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x121B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_side_back_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x129B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_back_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x131B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_side_front_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x139B8"]}},
|
||||
"textures/courses/toads_turnpike_tanker_truck_front_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x141B8"]}},
|
||||
"textures/courses/toads_turnpike_truck2_box.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x149B8"]}},
|
||||
"textures/courses/toads_turnpike_truck3_box.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x151B8"]}},
|
||||
"textures/courses/toads_turnpike_car_headlights.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x159B8"]}},
|
||||
"textures/courses/toads_turnpike_car_taillights.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x161B8"]}},
|
||||
"textures/courses/toads_turnpike_car_front_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x169B8"]}},
|
||||
"textures/courses/toads_turnpike_car_back_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x171B8"]}},
|
||||
"textures/courses/toads_turnpike_car_side_lod1.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x179B8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_1.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x087E8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_2.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x097E8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_3.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0A7E8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_4.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0B7E8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_5.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0C7E8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_6.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0D7E8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_7.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0E7E8"]}},
|
||||
"textures/courses/kalimari_desert_crossing_signal_8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0F7E8"]}},
|
||||
"textures/courses/kalimari_desert_locomotive_64.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x10E60"]}},
|
||||
"textures/courses/kalimari_desert_locomotive_cab_window.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x8666A0", "0x11660"]}},
|
||||
"textures/courses/kalimari_desert_locomotive_cab_window_front.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x12660"]}},
|
||||
"textures/courses/kalimari_desert_locomotive_chassis.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x13660"]}},
|
||||
"textures/courses/kalimari_desert_locomotive_lamp.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x13E60"]}},
|
||||
"textures/courses/kalimari_desert_locomotive_boiler.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x14660"]}},
|
||||
"textures/courses/kalimari_desert_carriage_railing.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x14E60"]}},
|
||||
"textures/courses/kalimari_desert_locomotive_tender.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x8666A0", "0x15E60"]}},
|
||||
"textures/courses/kalimari_desert_railway_ballast.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x16E60"]}},
|
||||
"textures/courses/kalimari_desert_carriage_lower.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x17660"]}},
|
||||
"textures/courses/kalimari_desert_carriage_door.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x17E60"]}},
|
||||
"textures/courses/kalimari_desert_carriage_window.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x18E60"]}},
|
||||
"textures/courses/kalimari_desert_train_bogie.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x21D28"]}},
|
||||
"textures/courses/sherbet_land_ice.ia16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x86ECF0", "0x068E8"]}},
|
||||
"textures/courses/sherbet_land_penguin_beak.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x86ECF0", "0x072E8"]}},
|
||||
"textures/courses/sherbet_land_penguin_eye.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x86ECF0", "0x07AE8"]}},
|
||||
|
||||
"textures/852E20_13670.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x852E20", "0x13670"]}},
|
||||
"textures/857E80_059B8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x857E80", "0x059B8"]}},
|
||||
"textures/857E80_069B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x069B8"]}},
|
||||
"textures/857E80_071B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x071B8"]}},
|
||||
"textures/857E80_079B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x079B8"]}},
|
||||
"textures/857E80_081B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x081B8"]}},
|
||||
"textures/857E80_089B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x089B8"]}},
|
||||
"textures/857E80_091B8.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x857E80", "0x091B8"]}},
|
||||
"textures/857E80_0A1B8.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x857E80", "0x0A1B8"]}},
|
||||
"textures/857E80_0B1B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0B1B8"]}},
|
||||
"textures/857E80_0B9B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0B9B8"]}},
|
||||
"textures/857E80_0C1B8.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x857E80", "0x0C1B8"]}},
|
||||
"textures/857E80_0D1B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0D1B8"]}},
|
||||
"textures/857E80_0D9B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0D9B8"]}},
|
||||
"textures/857E80_0E1B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0E1B8"]}},
|
||||
"textures/857E80_0E9B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0E9B8"]}},
|
||||
"textures/857E80_0F1B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0F1B8"]}},
|
||||
"textures/857E80_0F9B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x0F9B8"]}},
|
||||
"textures/857E80_101B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x101B8"]}},
|
||||
"textures/857E80_109B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x109B8"]}},
|
||||
"textures/857E80_111B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x111B8"]}},
|
||||
"textures/857E80_119B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x119B8"]}},
|
||||
"textures/857E80_121B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x121B8"]}},
|
||||
"textures/857E80_129B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x129B8"]}},
|
||||
"textures/857E80_131B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x131B8"]}},
|
||||
"textures/857E80_139B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x139B8"]}},
|
||||
"textures/857E80_141B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x141B8"]}},
|
||||
"textures/857E80_149B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x149B8"]}},
|
||||
"textures/857E80_151B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x151B8"]}},
|
||||
"textures/857E80_159B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x159B8"]}},
|
||||
"textures/857E80_161B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x161B8"]}},
|
||||
"textures/857E80_169B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x169B8"]}},
|
||||
"textures/857E80_171B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x171B8"]}},
|
||||
"textures/857E80_179B8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x857E80", "0x179B8"]}},
|
||||
"textures/8666A0_087E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x087E8"]}},
|
||||
"textures/8666A0_097E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x097E8"]}},
|
||||
"textures/8666A0_0A7E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0A7E8"]}},
|
||||
"textures/8666A0_0B7E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0B7E8"]}},
|
||||
"textures/8666A0_0C7E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0C7E8"]}},
|
||||
"textures/8666A0_0D7E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0D7E8"]}},
|
||||
"textures/8666A0_0E7E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0E7E8"]}},
|
||||
"textures/8666A0_0F7E8.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x0F7E8"]}},
|
||||
"textures/8666A0_10E60.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x10E60"]}},
|
||||
"textures/8666A0_11660.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x8666A0", "0x11660"]}},
|
||||
"textures/8666A0_12660.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x12660"]}},
|
||||
"textures/8666A0_13660.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x13660"]}},
|
||||
"textures/8666A0_13E60.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x13E60"]}},
|
||||
"textures/8666A0_14660.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x14660"]}},
|
||||
"textures/8666A0_14E60.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x14E60"]}},
|
||||
"textures/8666A0_15E60.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x8666A0", "0x15E60"]}},
|
||||
"textures/8666A0_16E60.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x16E60"]}},
|
||||
"textures/8666A0_17660.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x8666A0", "0x17660"]}},
|
||||
"textures/8666A0_17E60.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x17E60"]}},
|
||||
"textures/8666A0_18E60.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x18E60"]}},
|
||||
"textures/8666A0_21D28.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x8666A0", "0x21D28"]}},
|
||||
"textures/86ECF0_068E8.ia16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x86ECF0", "0x068E8"]}},
|
||||
"textures/86ECF0_072E8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x86ECF0", "0x072E8"]}},
|
||||
"textures/86ECF0_07AE8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x86ECF0", "0x07AE8"]}},
|
||||
"textures/courses/rainbow_road_neon_mushroom1.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05400"]}},
|
||||
"textures/courses/rainbow_road_neon_mushroom2.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05600"]}},
|
||||
"textures/courses/rainbow_road_neon_mushroom3.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05800"]}},
|
||||
"textures/courses/rainbow_road_neon_mushroom4.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05A00"]}},
|
||||
"textures/courses/rainbow_road_neon_mushroom5.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05C00"]}},
|
||||
|
||||
"textures/gTLUTNeonMushroom01.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05400"]}},
|
||||
"textures/gTLUTNeonMushroom02.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05600"]}},
|
||||
"textures/gTLUTNeonMushroom03.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05800"]}},
|
||||
"textures/gTLUTNeonMushroom04.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05A00"]}},
|
||||
"textures/gTLUTNeonMushroom05.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05C00"]}},
|
||||
"textures/courses/rainbow_road_neon_mario1.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05E00"]}},
|
||||
"textures/courses/rainbow_road_neon_mario2.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06000"]}},
|
||||
"textures/courses/rainbow_road_neon_mario3.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06200"]}},
|
||||
"textures/courses/rainbow_road_neon_mario4.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06400"]}},
|
||||
"textures/courses/rainbow_road_neon_mario5.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06600"]}},
|
||||
|
||||
"textures/gTLUTNeonMario01.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x05E00"]}},
|
||||
"textures/gTLUTNeonMario02.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06000"]}},
|
||||
"textures/gTLUTNeonMario03.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06200"]}},
|
||||
"textures/gTLUTNeonMario04.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06400"]}},
|
||||
"textures/gTLUTNeonMario05.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06600"]}},
|
||||
"textures/courses/rainbow_road_neon_boo1.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06800"]}},
|
||||
"textures/courses/rainbow_road_neon_boo2.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06A00"]}},
|
||||
"textures/courses/rainbow_road_neon_boo3.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06C00"]}},
|
||||
"textures/courses/rainbow_road_neon_boo4.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06E00"]}},
|
||||
"textures/courses/rainbow_road_neon_boo5.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07000"]}},
|
||||
|
||||
"textures/gTLUTNeonBoo01.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06800"]}},
|
||||
"textures/gTLUTNeonBoo02.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06A00"]}},
|
||||
"textures/gTLUTNeonBoo03.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06C00"]}},
|
||||
"textures/gTLUTNeonBoo04.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x06E00"]}},
|
||||
"textures/gTLUTNeonBoo05.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07000"]}},
|
||||
"textures/courses/rainbow_road_neon_peach.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07200"]}},
|
||||
"textures/courses/rainbow_road_neon_luigi.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07400"]}},
|
||||
"textures/courses/rainbow_road_neon_donkey_kong.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07600"]}},
|
||||
"textures/courses/rainbow_road_neon_yoshi.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07800"]}},
|
||||
"textures/courses/rainbow_road_neon_bowser.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07A00"]}},
|
||||
"textures/courses/rainbow_road_neon_wario.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07C00"]}},
|
||||
"textures/courses/rainbow_road_neon_toad.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07E00"]}},
|
||||
|
||||
"textures/gTLUTNeonPeach.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07200"]}},
|
||||
"textures/gTLUTNeonLuigi.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07400"]}},
|
||||
"textures/gTLUTNeonDonkeyKong.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07600"]}},
|
||||
"textures/gTLUTNeonYoshi.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07800"]}},
|
||||
"textures/gTLUTNeonBowser.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07A00"]}},
|
||||
"textures/gTLUTNeonWario.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07C00"]}},
|
||||
"textures/gTLUTNeonToad.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x872A00", "0x07E00"]}},
|
||||
"textures/rainbow_road_neon_mushroom1.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5400"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/rainbow_road_neon_mushroom2.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5600"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/rainbow_road_neon_mushroom3.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5800"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_mushroom4.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5A00"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/rainbow_road_neon_mushroom5.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5C00"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
|
||||
"textures/gTextureNeonMushroom01.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5400"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/gTextureNeonMushroom02.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5600"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/gTextureNeonMushroom03.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5800"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/gTextureNeonMushroom04.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5A00"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/gTextureNeonMushroom05.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5C00"}, "offsets": {"us":["0x872A00", "0x08000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_mario1.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5E00"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_mario2.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6000"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_mario3.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6200"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_mario4.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6400"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_mario5.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6600"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
|
||||
"textures/gTextureNeonMario01.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x5E00"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/gTextureNeonMario02.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6000"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/gTextureNeonMario03.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6200"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/gTextureNeonMario04.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6400"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/gTextureNeonMario05.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6600"}, "offsets": {"us":["0x872A00", "0x09000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_boo1.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6800"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_boo2.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6A00"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_boo3.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6C00"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_boo4.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6E00"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_boo5.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7000"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
|
||||
"textures/gTextureNeonBoo01.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6800"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/gTextureNeonBoo02.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6A00"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/gTextureNeonBoo03.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6C00"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/gTextureNeonBoo04.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x6E00"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/gTextureNeonBoo05.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7000"}, "offsets": {"us":["0x872A00", "0x0A000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_peach.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7200"}, "offsets": {"us":["0x872A00", "0x0B000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_luigi.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7400"}, "offsets": {"us":["0x872A00", "0x0C000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_donkey_kong.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7600"}, "offsets": {"us":["0x872A00", "0x0D000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_yoshi.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7800"}, "offsets": {"us":["0x872A00", "0x0E000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_bowser.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7A00"}, "offsets": {"us":["0x872A00", "0x0F000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_wario.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7C00"}, "offsets": {"us":["0x872A00", "0x10000"]}},
|
||||
"textures/courses/tlut3/rainbow_road_neon_toad.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7E00"}, "offsets": {"us":["0x872A00", "0x11000"]}},
|
||||
|
||||
"textures/gTextureNeonPeach.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7200"}, "offsets": {"us":["0x872A00", "0x0B000"]}},
|
||||
"textures/gTextureNeonLuigi.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7400"}, "offsets": {"us":["0x872A00", "0x0C000"]}},
|
||||
"textures/gTextureNeonDonkeyKong.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7600"}, "offsets": {"us":["0x872A00", "0x0D000"]}},
|
||||
"textures/gTextureNeonYoshi.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7800"}, "offsets": {"us":["0x872A00", "0x0E000"]}},
|
||||
"textures/gTextureNeonBoswer.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7A00"}, "offsets": {"us":["0x872A00", "0x0F000"]}},
|
||||
"textures/gTextureNeonWario.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7C00"}, "offsets": {"us":["0x872A00", "0x10000"]}},
|
||||
"textures/gTextureNeonToad.rgba16.ci8.png": {"meta":{"dims":[64,64], "pal":"0x7E00"}, "offsets": {"us":["0x872A00", "0x11000"]}},
|
||||
|
||||
"textures/872A00_12028.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x872A00", "0x12028"]}},
|
||||
"textures/872A00_13028.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x13028"]}},
|
||||
"textures/872A00_13828.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x13828"]}},
|
||||
"textures/872A00_14028.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x14028"]}},
|
||||
"textures/872A00_14828.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x14828"]}},
|
||||
"textures/8804A0_08890.rgba16.png": {"meta":{"dims":[64,64]}, "offsets": {"us":["0x8804A0", "0x08890"]}},
|
||||
"textures/8804A0_0A890.rgba16.png": {"meta":{"dims":[64,64]}, "offsets": {"us":["0x8804A0", "0x0A890"]}},
|
||||
"textures/885A10_09E48.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x885A10", "0x09E48"]}},
|
||||
"textures/885A10_0AE48.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0AE48"]}},
|
||||
"textures/885A10_0B648.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x885A10", "0x0B648"]}},
|
||||
"textures/885A10_0C648.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x885A10", "0x0C648"]}},
|
||||
"textures/885A10_0D648.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0D648"]}},
|
||||
"textures/885A10_0EAE0.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0EAE0"]}},
|
||||
"textures/885A10_0F2E0.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0F2E0"]}},
|
||||
"textures/885A10_0FCC0.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x885A10", "0x0FCC0"]}},
|
||||
"textures/885A10_10DC8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x10DC8"]}},
|
||||
"textures/885A10_115C8.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x115C8"]}},
|
||||
"textures/885A10_11EF0.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x11EF0"]}},
|
||||
"textures/885A10_126F0.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x126F0"]}},
|
||||
"textures/885A10_13038.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x13038"]}}
|
||||
"textures/courses/rainbow_road_sphere.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x872A00", "0x12028"]}},
|
||||
"textures/courses/reflection_map_metal.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x13028"]}},
|
||||
"textures/courses/reflection_map_gold.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x13828"]}},
|
||||
"textures/courses/rainbow_road_heart.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x14028"]}},
|
||||
"textures/courses/rainbow_road_eye.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x872A00", "0x14828"]}},
|
||||
"textures/courses/wario_stadium_sign_left.rgba16.png": {"meta":{"dims":[64,64]}, "offsets": {"us":["0x8804A0", "0x08890"]}},
|
||||
"textures/courses/wario_stadium_sign_right.rgba16.png": {"meta":{"dims":[64,64]}, "offsets": {"us":["0x8804A0", "0x0A890"]}},
|
||||
"textures/courses/royal_raceway_tree_tlut.rgba16.png": {"meta":{"dims":[16,16]}, "offsets": {"us":["0x84ABD0", "0x0D610"]}},
|
||||
"textures/courses/dks_jungle_parkway_boat_mario_sign.rgba16.png": {"meta":{"dims":[64,32]}, "offsets": {"us":["0x885A10", "0x09E48"]}},
|
||||
"textures/courses/dks_jungle_parkway_tree.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0AE48"]}},
|
||||
"textures/courses/dks_jungle_parkway_boat_window_upper.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x885A10", "0x0B648"]}},
|
||||
"textures/courses/dks_jungle_parkway_boat_window_lower.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x885A10", "0x0C648"]}},
|
||||
"textures/courses/dks_jungle_parkway_boat_railing.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0D648"]}},
|
||||
"textures/courses/dks_jungle_parkway_boat_paddle.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0EAE0"]}},
|
||||
"textures/courses/dks_jungle_parkway_boat_paddle2.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x0F2E0"]}},
|
||||
"textures/courses/dks_jungle_parkway_tree2.rgba16.png": {"meta":{"dims":[32,64]}, "offsets": {"us":["0x885A10", "0x0FCC0"]}},
|
||||
"textures/courses/dks_jungle_parkway_tree3.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x10DC8"]}},
|
||||
"textures/courses/dks_jungle_parkway_tree4.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x115C8"]}},
|
||||
"textures/courses/dks_jungle_parkway_palm_tree.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x13078"]}},
|
||||
"textures/courses/dks_jungle_parkway_tree5.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x126F0"]}},
|
||||
"textures/courses/dks_jungle_parkway_tree_trunk.rgba16.png": {"meta":{"dims":[32,32]}, "offsets": {"us":["0x885A10", "0x11EF0"]}}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
// todo: Replace addresses with variables
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
|
||||
Gfx d_course_big_donut_dl[] = {
|
||||
gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsSPDisplayList(0x07000210),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsSPDisplayList(0x07000D20),
|
||||
gsSPDisplayList(0x07000AC0),
|
||||
gsSPDisplayList(0x07000450),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// Item box spawn locations
|
||||
struct ActorSpawnData d_course_big_donut_spawn_item_box[] = {
|
||||
{{ 0xFFD8, 0x00DE, 0x0338 }, { 0x0000 }},
|
||||
{{ 0x007D, 0x00C8, 0x023D }, { 0x0000 }},
|
||||
{{ 0xFED2, 0x00FB, 0x0379 }, { 0x0000 }},
|
||||
{{ 0x0026, 0x00CB, 0x028E }, { 0x0000 }},
|
||||
{{ 0x0016, 0x00CF, 0x02CC }, { 0x0000 }},
|
||||
{{ 0x006E, 0x00CD, 0x02AA }, { 0x0000 }},
|
||||
{{ 0x02A9, 0x00CD, 0x0035 }, { 0x0001 }},
|
||||
{{ 0x02F7, 0x00DA, 0xFF03 }, { 0x0001 }},
|
||||
{{ 0x031E, 0x00DD, 0x00AC }, { 0x0001 }},
|
||||
{{ 0x022D, 0x00C8, 0xFF91 }, { 0x0001 }},
|
||||
{{ 0x0275, 0x00C9, 0xFF82 }, { 0x0001 }},
|
||||
{{ 0x02C0, 0x00CF, 0xFF77 }, { 0x0001 }},
|
||||
{{ 0xFF91, 0x00C8, 0xFDD6 }, { 0x0002 }},
|
||||
{{ 0x0048, 0x00FA, 0xFC5B }, { 0x0002 }},
|
||||
{{ 0xFFE7, 0x00CF, 0xFD3F }, { 0x0002 }},
|
||||
{{ 0xFFEB, 0x00E1, 0xFCB5 }, { 0x0002 }},
|
||||
{{ 0xFFAD, 0x00DC, 0xFCD9 }, { 0x0002 }},
|
||||
{{ 0xFFCF, 0x00D6, 0xFCF9 }, { 0x0002 }},
|
||||
{{ 0xFCD9, 0x00DC, 0x0035 }, { 0x0003 }},
|
||||
{{ 0xFCA5, 0x00F2, 0x012C }, { 0x0003 }},
|
||||
{{ 0xFD60, 0x00CF, 0xFF25 }, { 0x0003 }},
|
||||
{{ 0xFC8B, 0x006C, 0xFFC5 }, { 0x0003 }},
|
||||
{{ 0xFCE7, 0x0067, 0xFFDF }, { 0x0003 }},
|
||||
{{ 0xFD0B, 0x00D6, 0x00A6 }, { 0x0003 }},
|
||||
{{ 0x8000, 0x0000, 0x0000 }, { 0x0000 }},
|
||||
};
|
||||
@@ -0,0 +1,615 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
#include <course.h>
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000000, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000200, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000400, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000600, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000800, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000A00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_210[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000000),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_220[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000210),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_230[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000220),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_240[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000C00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000E00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001000, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001200, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001400, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001600, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_450[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000240),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_460[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001800, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 18, 21, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001A00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 8, 11, 13, 0),
|
||||
gsSP1Quadrangle(14, 12, 13, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 14, 15, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 4, 7, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 22, 23, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSP1Quadrangle(30, 26, 29, 31, 0),
|
||||
gsSP1Quadrangle(20, 30, 31, 21, 0),
|
||||
gsSPVertex(0x04001C00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 8, 11, 13, 0),
|
||||
gsSP1Quadrangle(14, 12, 13, 15, 0),
|
||||
gsSP1Quadrangle(5, 16, 17, 6, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 18, 21, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 22, 23, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSP1Quadrangle(16, 26, 29, 17, 0),
|
||||
gsSP1Quadrangle(30, 31, 14, 15, 0),
|
||||
gsSPVertex(0x04001E00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 4, 7, 9, 0),
|
||||
gsSP1Quadrangle(10, 8, 9, 11, 0),
|
||||
gsSP1Quadrangle(2, 12, 13, 3, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 14, 17, 19, 0),
|
||||
gsSP1Quadrangle(20, 18, 19, 21, 0),
|
||||
gsSP1Quadrangle(22, 20, 21, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002000, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 4, 5, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(1, 12, 13, 2, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 14, 17, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 24, 27, 0),
|
||||
gsSP1Quadrangle(30, 8, 11, 31, 0),
|
||||
gsSPVertex(0x04002200, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(6, 4, 5, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 6, 7, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 14, 17, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 20, 23, 25, 0),
|
||||
gsSP1Quadrangle(12, 24, 25, 13, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSPVertex(0x040023E0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 4, 7, 9, 0),
|
||||
gsSP1Quadrangle(10, 8, 9, 11, 0),
|
||||
gsSP1Quadrangle(2, 12, 13, 3, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 14, 17, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 18, 19, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(12, 22, 25, 13, 0),
|
||||
gsSP1Quadrangle(26, 27, 10, 11, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x040025E0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 4, 7, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 14, 17, 19, 0),
|
||||
gsSP1Quadrangle(20, 18, 19, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 20, 21, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x040027E0, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(6, 4, 5, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 6, 7, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 14, 17, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 24, 27, 29, 0),
|
||||
gsSPVertex(0x040029C0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 8, 11, 13, 0),
|
||||
gsSP1Quadrangle(14, 12, 13, 15, 0),
|
||||
gsSP1Quadrangle(6, 16, 17, 7, 0),
|
||||
gsSP1Quadrangle(18, 0, 3, 19, 0),
|
||||
gsSP1Quadrangle(20, 18, 19, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 20, 21, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(16, 24, 27, 17, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002BC0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 0, 3, 0),
|
||||
gsSP1Quadrangle(6, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 6, 9, 11, 0),
|
||||
gsSP1Quadrangle(1, 12, 13, 2, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 14, 17, 19, 0),
|
||||
gsSP1Quadrangle(20, 18, 19, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 20, 21, 0),
|
||||
gsSP1Quadrangle(12, 24, 25, 13, 0),
|
||||
gsSP1Quadrangle(26, 10, 11, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002DC0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 4, 7, 9, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 18, 21, 23, 0),
|
||||
gsSP1Quadrangle(24, 22, 23, 25, 0),
|
||||
gsSP1Quadrangle(26, 24, 25, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002FC0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 4, 5, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(1, 12, 13, 2, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSP1Quadrangle(30, 26, 29, 31, 0),
|
||||
gsSPVertex(0x040031C0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 4, 7, 9, 0),
|
||||
gsSP1Quadrangle(10, 8, 9, 11, 0),
|
||||
gsSP1Quadrangle(12, 10, 11, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 0, 3, 19, 0),
|
||||
gsSP1Quadrangle(20, 18, 19, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 22, 25, 27, 0),
|
||||
gsSP1Quadrangle(16, 26, 27, 17, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x040033C0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 0, 3, 0),
|
||||
gsSP1Quadrangle(6, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 6, 9, 11, 0),
|
||||
gsSP1Quadrangle(1, 12, 13, 2, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 14, 17, 19, 0),
|
||||
gsSP1Quadrangle(20, 18, 19, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 20, 21, 0),
|
||||
gsSP1Quadrangle(12, 24, 25, 13, 0),
|
||||
gsSP1Quadrangle(26, 10, 11, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x040035C0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 8, 11, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 22, 25, 27, 0),
|
||||
gsSP1Quadrangle(28, 26, 27, 29, 0),
|
||||
gsSP1Quadrangle(30, 28, 29, 31, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_AC0[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000460),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_AD0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040037C0, 9, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
|
||||
gsSP2Triangles(3, 4, 2, 0, 4, 5, 2, 0),
|
||||
gsSP1Quadrangle(2, 5, 6, 7, 0),
|
||||
gsSP2Triangles(7, 8, 2, 0, 8, 0, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_B58[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04003850, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04003A50, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04003C50, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04003E50, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04004050, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_D20[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000B58),
|
||||
gsSPDisplayList(0x07000AD0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_D38[] =
|
||||
{
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsSPVertex(0x04004250, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(1, 6, 7, 2, 0),
|
||||
gsSP1Quadrangle(4, 5, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(12, 14, 15, 13, 0),
|
||||
gsSP1Quadrangle(14, 16, 17, 15, 0),
|
||||
gsSP1Quadrangle(16, 18, 19, 17, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 20, 23, 25, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(27, 26, 28, 29, 0),
|
||||
gsSPVertex(0x04004430, 10, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 4, 5, 0),
|
||||
gsSP1Quadrangle(8, 9, 7, 6, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_DE8[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000D38),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_DF8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040044D0, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_E80[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040045D0, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_F08[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040046D0, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_F90[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040047D0, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_1018[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000F90),
|
||||
gsSPDisplayList(0x07000F08),
|
||||
gsSPDisplayList(0x07000E80),
|
||||
gsSPDisplayList(0x07000DF8),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_1040[] =
|
||||
{
|
||||
gsSPDisplayList(0x07001018),
|
||||
gsSPDisplayList(0x07000DE8),
|
||||
gsSPDisplayList(0x07000D20),
|
||||
gsSPDisplayList(0x07000AC0),
|
||||
gsSPDisplayList(0x07000450),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_big_donut_packed_dl_1070[] =
|
||||
{
|
||||
gsSPDisplayList(0x07001040),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
u8 d_course_big_donut_packed_dl_tail[] = { 0xFF, 0, 0, 0, 0, 0, 0, 0 };
|
||||
@@ -0,0 +1,55 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
|
||||
Gfx d_course_block_fort_dl[] = {
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsSPDisplayList(0x070014A0),
|
||||
gsSPDisplayList(0x070009C0),
|
||||
gsSPDisplayList(0x07000688),
|
||||
gsSPDisplayList(0x070003F0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// Item box spawn locations
|
||||
struct ActorSpawnData d_course_block_fort_spawn_item_box[] = {
|
||||
{{ 0xFFDA, 0x0000, 0x02E8 }, { 0x0000 }},
|
||||
{{ 0x001D, 0x0000, 0x02C6 }, { 0x0000 }},
|
||||
{{ 0xFFF3, 0x0000, 0x02AD }, { 0x0000 }},
|
||||
{{ 0xFDD7, 0x002F, 0x021F }, { 0x0000 }},
|
||||
{{ 0xFDF1, 0x002F, 0x020E }, { 0x0000 }},
|
||||
{{ 0xFF73, 0x002F, 0x0099 }, { 0x0000 }},
|
||||
{{ 0xFF47, 0x002F, 0x00B3 }, { 0x0000 }},
|
||||
{{ 0xFE7C, 0x005C, 0x016E }, { 0x0000 }},
|
||||
{{ 0xFE54, 0x005C, 0x01A8 }, { 0x0000 }},
|
||||
{{ 0xFD2C, 0x0000, 0xFFCE }, { 0x0001 }},
|
||||
{{ 0xFD59, 0x0000, 0xFFFC }, { 0x0001 }},
|
||||
{{ 0xFD20, 0x0000, 0x0025 }, { 0x0001 }},
|
||||
{{ 0xFDD6, 0x002F, 0xFDDA }, { 0x0001 }},
|
||||
{{ 0xFDEE, 0x002F, 0xFDE8 }, { 0x0001 }},
|
||||
{{ 0xFF56, 0x002F, 0xFF54 }, { 0x0001 }},
|
||||
{{ 0xFF76, 0x002F, 0xFF7B }, { 0x0001 }},
|
||||
{{ 0xFE4F, 0x005C, 0xFE53 }, { 0x0001 }},
|
||||
{{ 0xFE85, 0x005C, 0xFE7A }, { 0x0001 }},
|
||||
{{ 0xFFC3, 0x0000, 0xFD28 }, { 0x0002 }},
|
||||
{{ 0xFFEF, 0x0000, 0xFD62 }, { 0x0002 }},
|
||||
{{ 0x001A, 0x0000, 0xFD3C }, { 0x0002 }},
|
||||
{{ 0x0225, 0x002F, 0xFDDC }, { 0x0002 }},
|
||||
{{ 0x020F, 0x002F, 0xFDEC }, { 0x0002 }},
|
||||
{{ 0x0094, 0x002F, 0xFF6E }, { 0x0002 }},
|
||||
{{ 0x00C0, 0x002F, 0xFF4B }, { 0x0002 }},
|
||||
{{ 0x01D7, 0x005C, 0xFE39 }, { 0x0002 }},
|
||||
{{ 0x019E, 0x005C, 0xFE56 }, { 0x0002 }},
|
||||
{{ 0x02D8, 0x0000, 0xFFDC }, { 0x0003 }},
|
||||
{{ 0x02A4, 0x0000, 0xFFFC }, { 0x0003 }},
|
||||
{{ 0x02BC, 0x0000, 0x001F }, { 0x0003 }},
|
||||
{{ 0x008C, 0x002F, 0x00A3 }, { 0x0003 }},
|
||||
{{ 0x00B2, 0x002F, 0x00C9 }, { 0x0003 }},
|
||||
{{ 0x0211, 0x002F, 0x0214 }, { 0x0003 }},
|
||||
{{ 0x022A, 0x002F, 0x022D }, { 0x0003 }},
|
||||
{{ 0x01D6, 0x005C, 0x01E2 }, { 0x0003 }},
|
||||
{{ 0x01B6, 0x005C, 0x01BA }, { 0x0003 }},
|
||||
{{ 0x8000, 0x0000, 0x0000 }, { 0x0000 }},
|
||||
};
|
||||
@@ -0,0 +1,818 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
#include <course.h>
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_0[] =
|
||||
{
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsSPVertex(0x04000000, 3, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 0, 0, 0, 0),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000030, 20, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP2Triangles(8, 4, 7, 0, 9, 10, 11, 0),
|
||||
gsSP2Triangles(9, 11, 12, 0, 13, 10, 9, 0),
|
||||
gsSP2Triangles(11, 14, 12, 0, 15, 16, 17, 0),
|
||||
gsSP2Triangles(15, 17, 18, 0, 5, 19, 6, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_B8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000170, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP2Triangles(4, 7, 8, 0, 7, 9, 8, 0),
|
||||
gsSP2Triangles(10, 11, 12, 0, 12, 13, 14, 0),
|
||||
gsSP2Triangles(12, 14, 10, 0, 13, 15, 14, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_148[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000270, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(4, 5, 6, 0, 5, 4, 7, 0),
|
||||
gsSP2Triangles(5, 7, 8, 0, 7, 9, 8, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP2Triangles(10, 13, 14, 0, 11, 15, 12, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_1D8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000370, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(4, 5, 6, 0, 5, 7, 8, 0),
|
||||
gsSP2Triangles(5, 8, 6, 0, 8, 7, 9, 0),
|
||||
gsSP2Triangles(10, 11, 12, 0, 11, 13, 14, 0),
|
||||
gsSP2Triangles(11, 14, 12, 0, 13, 15, 14, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_268[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000470, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 10, 9, 0),
|
||||
gsSP1Quadrangle(12, 14, 15, 13, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000670, 8, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_330[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040006F0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 24, 25, 26, 0),
|
||||
gsSP2Triangles(24, 26, 27, 0, 28, 29, 30, 0),
|
||||
gsSP1Triangle(28, 30, 31, 0),
|
||||
gsSPVertex(0x040008F0, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_3F0[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000330),
|
||||
gsSPDisplayList(0x07000268),
|
||||
gsSPDisplayList(0x070001D8),
|
||||
gsSPDisplayList(0x07000148),
|
||||
gsSPDisplayList(0x070000B8),
|
||||
gsSPDisplayList(0x07000000),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_428[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000930, 24, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_4C0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000AB0, 24, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_558[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000C30, 20, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 5, 4, 13, 0),
|
||||
gsSP1Quadrangle(14, 8, 11, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_5F0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000D70, 18, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 0, 3, 13, 0),
|
||||
gsSP1Quadrangle(14, 4, 7, 15, 0),
|
||||
gsSP1Quadrangle(16, 10, 9, 17, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_688[] =
|
||||
{
|
||||
gsSPDisplayList(0x070005F0),
|
||||
gsSPDisplayList(0x07000558),
|
||||
gsSPDisplayList(0x070004C0),
|
||||
gsSPDisplayList(0x07000428),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_6B0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05003000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000E90, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001090, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_7A0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05003000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001290, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_828[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05003000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001390, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_8B0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05003000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001490, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_938[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05003000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001590, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_9C0[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000938),
|
||||
gsSPDisplayList(0x070008B0),
|
||||
gsSPDisplayList(0x07000828),
|
||||
gsSPDisplayList(0x070007A0),
|
||||
gsSPDisplayList(0x070006B0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_9F0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001690, 12, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001750, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(10, 12, 13, 11, 0),
|
||||
gsSP2Triangles(14, 15, 16, 0, 17, 18, 19, 0),
|
||||
gsSP2Triangles(17, 19, 20, 0, 21, 22, 23, 0),
|
||||
gsSP2Triangles(24, 25, 26, 0, 27, 28, 24, 0),
|
||||
gsSP2Triangles(27, 24, 26, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001950, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(3, 5, 6, 0, 7, 8, 9, 0),
|
||||
gsSP2Triangles(7, 9, 10, 0, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(11, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP2Triangles(24, 20, 23, 0, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001B50, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001D50, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(0, 3, 4, 0, 5, 6, 7, 0),
|
||||
gsSP2Triangles(5, 7, 8, 0, 9, 8, 7, 0),
|
||||
gsSP1Quadrangle(10, 11, 9, 7, 0),
|
||||
gsSP1Quadrangle(12, 11, 10, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP2Triangles(15, 18, 16, 0, 19, 20, 12, 0),
|
||||
gsSP2Triangles(19, 12, 13, 0, 21, 19, 13, 0),
|
||||
gsSP2Triangles(21, 13, 22, 0, 23, 24, 25, 0),
|
||||
gsSP2Triangles(24, 26, 25, 0, 26, 27, 25, 0),
|
||||
gsSP1Quadrangle(28, 23, 25, 29, 0),
|
||||
gsSP1Quadrangle(30, 28, 29, 31, 0),
|
||||
gsSPVertex(0x04001F50, 13, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0),
|
||||
gsSP2Triangles(3, 2, 4, 0, 5, 6, 7, 0),
|
||||
gsSP2Triangles(5, 7, 8, 0, 9, 10, 11, 0),
|
||||
gsSP1Triangle(9, 11, 12, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04002020, 11, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(4, 6, 5, 0, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(7, 9, 10, 5, 0),
|
||||
gsSP1Triangle(7, 5, 6, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_C80[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040020D0, 12, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04002190, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(0, 3, 4, 0, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002390, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(10, 12, 13, 11, 0),
|
||||
gsSP2Triangles(14, 15, 16, 0, 17, 18, 19, 0),
|
||||
gsSP2Triangles(17, 19, 20, 0, 19, 21, 20, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP2Triangles(26, 27, 28, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002590, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(3, 5, 6, 0, 7, 3, 6, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04002790, 30, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 2, 3, 4, 0),
|
||||
gsSP2Triangles(2, 1, 3, 0, 5, 0, 2, 0),
|
||||
gsSP2Triangles(5, 2, 6, 0, 7, 8, 9, 0),
|
||||
gsSP2Triangles(7, 9, 10, 0, 7, 11, 8, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(14, 13, 16, 17, 0),
|
||||
gsSP2Triangles(16, 18, 17, 0, 19, 20, 21, 0),
|
||||
gsSP2Triangles(19, 21, 22, 0, 21, 23, 22, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 5, 6, 29, 0),
|
||||
gsSPVertex(0x04002970, 19, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0),
|
||||
gsSP2Triangles(5, 7, 8, 0, 7, 9, 10, 0),
|
||||
gsSP2Triangles(7, 10, 8, 0, 11, 12, 13, 0),
|
||||
gsSP2Triangles(11, 13, 14, 0, 15, 16, 17, 0),
|
||||
gsSP1Triangle(15, 17, 18, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04002AA0, 11, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(0, 5, 6, 0, 1, 7, 8, 0),
|
||||
gsSP1Quadrangle(1, 8, 9, 10, 0),
|
||||
gsSP1Triangle(1, 10, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_F10[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04002B50, 12, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04002C10, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(6, 8, 9, 7, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP2Triangles(18, 14, 17, 0, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSPVertex(0x04002DF0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP2Triangles(14, 16, 15, 0, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(17, 19, 20, 21, 0),
|
||||
gsSP2Triangles(22, 23, 24, 0, 25, 26, 27, 0),
|
||||
gsSP2Triangles(25, 27, 28, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002FF0, 30, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(3, 5, 6, 0, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSPVertex(0x040031D0, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04003210, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(1, 0, 4, 5, 0),
|
||||
gsSP1Quadrangle(4, 6, 7, 5, 0),
|
||||
gsSP1Quadrangle(8, 9, 6, 4, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP2Triangles(11, 14, 12, 0, 2, 15, 3, 0),
|
||||
gsSP1Quadrangle(16, 17, 3, 15, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP2Triangles(18, 22, 19, 0, 23, 24, 25, 0),
|
||||
gsSP2Triangles(24, 26, 25, 0, 27, 23, 25, 0),
|
||||
gsSP1Quadrangle(28, 27, 25, 29, 0),
|
||||
gsSP1Quadrangle(30, 28, 29, 31, 0),
|
||||
gsSPVertex(0x04003410, 13, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0),
|
||||
gsSP2Triangles(3, 2, 4, 0, 5, 6, 7, 0),
|
||||
gsSP2Triangles(5, 7, 8, 0, 9, 10, 11, 0),
|
||||
gsSP1Triangle(9, 11, 12, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040034E0, 11, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP1Quadrangle(3, 5, 6, 0, 0),
|
||||
gsSP2Triangles(3, 0, 2, 0, 2, 1, 7, 0),
|
||||
gsSP1Quadrangle(2, 7, 8, 9, 0),
|
||||
gsSP1Triangle(2, 9, 10, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_11A8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04003590, 12, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04003650, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(4, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP2Triangles(22, 23, 24, 0, 25, 26, 27, 0),
|
||||
gsSP2Triangles(25, 27, 28, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04003850, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP2Triangles(8, 9, 10, 0, 11, 12, 13, 0),
|
||||
gsSP2Triangles(11, 13, 14, 0, 13, 15, 16, 0),
|
||||
gsSP1Quadrangle(13, 16, 17, 18, 0),
|
||||
gsSP1Quadrangle(13, 18, 19, 20, 0),
|
||||
gsSP2Triangles(13, 20, 14, 0, 21, 22, 23, 0),
|
||||
gsSP2Triangles(21, 23, 24, 0, 23, 25, 24, 0),
|
||||
gsSP2Triangles(26, 27, 28, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04003A50, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(8, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(8, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(8, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSPVertex(0x04003C30, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04003D30, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(0, 4, 1, 0, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 5, 7, 9, 0),
|
||||
gsSP2Triangles(7, 10, 11, 0, 7, 6, 10, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 12, 15, 0),
|
||||
gsSP1Quadrangle(14, 18, 19, 20, 0),
|
||||
gsSP1Quadrangle(14, 20, 21, 15, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(21, 20, 26, 27, 0),
|
||||
gsSP1Quadrangle(21, 27, 28, 29, 0),
|
||||
gsSP2Triangles(21, 29, 30, 0, 29, 31, 30, 0),
|
||||
gsSPVertex(0x04003F30, 23, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(2, 4, 5, 3, 0),
|
||||
gsSP1Quadrangle(6, 7, 8, 9, 0),
|
||||
gsSP2Triangles(7, 10, 8, 0, 11, 12, 13, 0),
|
||||
gsSP2Triangles(11, 13, 14, 0, 15, 16, 17, 0),
|
||||
gsSP2Triangles(15, 17, 18, 0, 19, 20, 21, 0),
|
||||
gsSP1Triangle(19, 21, 22, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040040A0, 17, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(0, 3, 4, 5, 0),
|
||||
gsSP1Quadrangle(0, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(0, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(0, 9, 10, 11, 0),
|
||||
gsSP2Triangles(0, 11, 12, 0, 4, 3, 13, 0),
|
||||
gsSP1Quadrangle(4, 13, 14, 15, 0),
|
||||
gsSP1Triangle(4, 15, 16, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_14A0[] =
|
||||
{
|
||||
gsSPDisplayList(0x070011A8),
|
||||
gsSPDisplayList(0x07000F10),
|
||||
gsSPDisplayList(0x07000C80),
|
||||
gsSPDisplayList(0x070009F0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_14C8[] =
|
||||
{
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsSPVertex(0x040041B0, 31, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 0, 3, 5, 0),
|
||||
gsSP1Quadrangle(1, 6, 7, 2, 0),
|
||||
gsSP1Quadrangle(6, 8, 9, 7, 0),
|
||||
gsSP1Quadrangle(8, 10, 11, 9, 0),
|
||||
gsSP2Triangles(8, 12, 13, 0, 8, 4, 12, 0),
|
||||
gsSP1Quadrangle(14, 4, 5, 15, 0),
|
||||
gsSP1Quadrangle(16, 14, 15, 17, 0),
|
||||
gsSP2Triangles(12, 4, 18, 0, 19, 13, 20, 0),
|
||||
gsSP2Triangles(19, 20, 21, 0, 22, 19, 21, 0),
|
||||
gsSP2Triangles(22, 21, 23, 0, 12, 18, 13, 0),
|
||||
gsSP1Quadrangle(13, 24, 25, 20, 0),
|
||||
gsSP1Quadrangle(10, 22, 23, 11, 0),
|
||||
gsSP1Quadrangle(26, 16, 17, 27, 0),
|
||||
gsSP1Quadrangle(18, 26, 27, 28, 0),
|
||||
gsSP1Quadrangle(29, 18, 28, 30, 0),
|
||||
gsSPVertex(0x040043A0, 6, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(1, 4, 5, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_1580[] =
|
||||
{
|
||||
gsSPDisplayList(0x070014C8),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_1590[] =
|
||||
{
|
||||
gsSPDisplayList(0x07001580),
|
||||
gsSPDisplayList(0x070014A0),
|
||||
gsSPDisplayList(0x070009C0),
|
||||
gsSPDisplayList(0x07000688),
|
||||
gsSPDisplayList(0x070003F0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_15C0[] =
|
||||
{
|
||||
gsSPDisplayList(0x07001590),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_block_fort_packed_dl_15D0[] =
|
||||
{
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
u8 d_course_block_fort_packed_tail[] = {0xFF, 15, 0, 0, 0, 0, 0, 0};
|
||||
@@ -0,0 +1,59 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
|
||||
Gfx d_course_double_deck_dl[] = {
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsSPDisplayList(0x07000708),
|
||||
gsSPDisplayList(0x070003A0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// Item box spawn locations.
|
||||
struct ActorSpawnData d_course_double_deck_spawn_item_box[] = {
|
||||
{{ -331, 0, 675 }, { 0 }},
|
||||
{{ 18, 30, 295 }, { 0 }},
|
||||
{{ -685, 0, -279 }, { 0 }},
|
||||
{{ -329, 0, 731 }, { 0 }},
|
||||
{{ 17, 30, 346 }, { 0 }},
|
||||
{{ -741, 0, -280 }, { 0 }},
|
||||
{{ -367, 30, 13 }, { 0 }},
|
||||
{{ -315, 30, 2 }, { 0 }},
|
||||
{{ -625, 0, -276 }, { 0 }},
|
||||
{{ -259, 30, -12 }, { 0 }},
|
||||
{{ 22, 30, 245 }, { 0 }},
|
||||
{{ -341, 0, 619 }, { 0 }},
|
||||
{{ 350, 0, -605 }, { 1 }},
|
||||
{{ 732, 0, 277 }, { 1 }},
|
||||
{{ 248, 30, 48 }, { 1 }},
|
||||
{{ 56, 30, -340 }, { 1 }},
|
||||
{{ 670, 0, 286 }, { 1 }},
|
||||
{{ 356, 0, -658 }, { 1 }},
|
||||
{{ 48, 30, -283 }, { 1 }},
|
||||
{{ 626, 0, 288 }, { 1 }},
|
||||
{{ 292, 30, 56 }, { 1 }},
|
||||
{{ 337, 30, 58 }, { 1 }},
|
||||
{{ 54, 30, -248 }, { 1 }},
|
||||
{{ 363, 0, -709 }, { 1 }},
|
||||
{{ 341, 60, -726 }, { 2 }},
|
||||
{{ 352, 60, -682 }, { 2 }},
|
||||
{{ 698, 60, 430 }, { 2 }},
|
||||
{{ 660, 60, 439 }, { 2 }},
|
||||
{{ 280, 90, 290 }, { 2 }},
|
||||
{{ 236, 90, 246 }, { 2 }},
|
||||
{{ 351, 60, -632 }, { 2 }},
|
||||
{{ 616, 60, 456 }, { 2 }},
|
||||
{{ 324, 90, 331 }, { 2 }},
|
||||
{{ -233, 90, -235 }, { 3 }},
|
||||
{{ -281, 90, -280 }, { 3 }},
|
||||
{{ -688, 60, -395 }, { 3 }},
|
||||
{{ -735, 60, -390 }, { 3 }},
|
||||
{{ -434, 60, 707 }, { 3 }},
|
||||
{{ -422, 60, 663 }, { 3 }},
|
||||
{{ -435, 60, 618 }, { 3 }},
|
||||
{{ -626, 60, -405 }, { 3 }},
|
||||
{{ -312, 90, -320 }, { 3 }},
|
||||
{{ -32768, 0, 0 }, { 0 }},
|
||||
};
|
||||
@@ -0,0 +1,277 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
#include <course.h>
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000000, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000200, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000400, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000600, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000800, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000A00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_210[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000C00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(0, 3, 4, 0, 5, 6, 7, 0),
|
||||
gsSP2Triangles(5, 7, 8, 0, 9, 10, 11, 0),
|
||||
gsSP2Triangles(9, 11, 12, 0, 13, 14, 15, 0),
|
||||
gsSP2Triangles(13, 15, 16, 0, 17, 18, 19, 0),
|
||||
gsSP2Triangles(17, 19, 20, 0, 18, 21, 19, 0),
|
||||
gsSP1Quadrangle(19, 22, 23, 20, 0),
|
||||
gsSP2Triangles(17, 20, 24, 0, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(25, 27, 28, 29, 0),
|
||||
gsSP1Quadrangle(27, 30, 31, 28, 0),
|
||||
gsSPVertex(0x04000E00, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP1Quadrangle(6, 3, 5, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP2Triangles(8, 11, 12, 0, 10, 13, 14, 0),
|
||||
gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0),
|
||||
gsSP2Triangles(15, 17, 18, 0, 19, 15, 18, 0),
|
||||
gsSP2Triangles(16, 20, 17, 0, 20, 16, 21, 0),
|
||||
gsSP2Triangles(11, 22, 12, 0, 23, 24, 25, 0),
|
||||
gsSP2Triangles(23, 25, 26, 0, 15, 19, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSP1Triangle(28, 31, 28, 0),
|
||||
gsSPVertex(0x04001000, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(0, 4, 5, 6, 0),
|
||||
gsSP2Triangles(0, 3, 4, 0, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(8, 7, 10, 11, 0),
|
||||
gsSP2Triangles(8, 11, 12, 0, 13, 14, 15, 0),
|
||||
gsSP2Triangles(13, 15, 16, 0, 17, 18, 16, 0),
|
||||
gsSP2Triangles(17, 16, 15, 0, 5, 19, 6, 0),
|
||||
gsSP1Quadrangle(4, 20, 21, 5, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(25, 24, 26, 27, 0),
|
||||
gsSP2Triangles(25, 27, 28, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001200, 5, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0),
|
||||
gsSP1Triangle(3, 2, 4, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_3A0[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000210),
|
||||
gsSPDisplayList(0x07000000),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_3B8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001250, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001450, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001650, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001850, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001A50, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_580[] =
|
||||
{
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPTexture(0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsSPVertex(0x04001C50, 3, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001C80, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(4, 5, 6, 0, 7, 8, 9, 0),
|
||||
gsSP2Triangles(8, 7, 10, 0, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(11, 14, 15, 12, 0),
|
||||
gsSP2Triangles(16, 17, 18, 0, 17, 16, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(16, 8, 10, 28, 0),
|
||||
gsSP2Triangles(16, 28, 19, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001E80, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(3, 5, 6, 0, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(7, 9, 10, 7, 0),
|
||||
gsSP1Quadrangle(11, 12, 13, 14, 0),
|
||||
gsSP2Triangles(11, 15, 12, 0, 16, 17, 13, 0),
|
||||
gsSP2Triangles(16, 13, 12, 0, 18, 19, 20, 0),
|
||||
gsSP2Triangles(18, 20, 21, 0, 19, 22, 23, 0),
|
||||
gsSP2Triangles(19, 23, 20, 0, 24, 25, 26, 0),
|
||||
gsSP1Quadrangle(24, 26, 27, 28, 0),
|
||||
gsSP1Triangle(29, 30, 31, 0),
|
||||
gsSPVertex(0x04002080, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(3, 5, 6, 0, 7, 8, 9, 0),
|
||||
gsSP2Triangles(7, 9, 10, 0, 11, 12, 13, 0),
|
||||
gsSP2Triangles(11, 13, 14, 0, 15, 16, 14, 0),
|
||||
gsSP2Triangles(15, 14, 13, 0, 17, 18, 19, 0),
|
||||
gsSP2Triangles(17, 19, 20, 0, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(21, 24, 25, 22, 0),
|
||||
gsSP2Triangles(26, 21, 23, 0, 24, 27, 25, 0),
|
||||
gsSP2Triangles(24, 28, 27, 0, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002280, 3, 0),
|
||||
gsSP1Triangle(0, 1, 2, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_708[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000580),
|
||||
gsSPDisplayList(0x070003B8),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_720[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000708),
|
||||
gsSPDisplayList(0x070003A0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_738[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000720),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_double_deck_packed_dl_748[] =
|
||||
{
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
u8 d_course_double_deck_packed_tail[] = { 0xFF, 9, 0, 0, 0, 0, 0, 0 };
|
||||
@@ -0,0 +1,52 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
|
||||
Gfx d_course_skyscraper_dl[] = {
|
||||
gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsSPDisplayList(0x07000238),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsSPDisplayList(0x07000FE8),
|
||||
gsSPDisplayList(0x07000C60),
|
||||
gsSPDisplayList(0x07000B70),
|
||||
gsSPDisplayList(0x070006B8),
|
||||
gsSPDisplayList(0x07000570),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsSPDisplayList(0x070010C8),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// Item box spawn locations
|
||||
struct ActorSpawnData d_course_skyscraper_spawn_item_box[] = {
|
||||
{{ -18, 480, 365 }, { 0 }},
|
||||
{{ -272, 480, 312 }, { 0 }},
|
||||
{{ -312, 480, 359 }, { 0 }},
|
||||
{{ -293, 480, 337 }, { 0 }},
|
||||
{{ 12, 480, 360 }, { 0 }},
|
||||
{{ 363, 480, 14 }, { 1 }},
|
||||
{{ 288, 480, 309 }, { 1 }},
|
||||
{{ 308, 480, 326 }, { 1 }},
|
||||
{{ 325, 480, 345 }, { 1 }},
|
||||
{{ 364, 480, -9 }, { 1 }},
|
||||
{{ 11, 480, -361 }, { 2 }},
|
||||
{{ 281, 480, -306 }, { 2 }},
|
||||
{{ 303, 480, -316 }, { 2 }},
|
||||
{{ 336, 480, -324 }, { 2 }},
|
||||
{{ -11, 480, -363 }, { 2 }},
|
||||
{{ -357, 480, -5 }, { 3 }},
|
||||
{{ -318, 480, -267 }, { 3 }},
|
||||
{{ -357, 480, -312 }, { 3 }},
|
||||
{{ -339, 480, -288 }, { 3 }},
|
||||
{{ -354, 480, 18 }, { 3 }},
|
||||
{{ -66, 485, 0 }, { 4 }},
|
||||
{{ 0, 485, -67 }, { 4 }},
|
||||
{{ 66, 485, 1 }, { 4 }},
|
||||
{{ 1, 485, 67 }, { 4 }},
|
||||
{{ -32768, 0, 0 }, { 0 }},
|
||||
};
|
||||
@@ -0,0 +1,631 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include <PR/gbi.h>
|
||||
#include <actor_types.h>
|
||||
#include <course.h>
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_0[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500D000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000000, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000200, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000400, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000600, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP2Triangles(24, 25, 26, 0, 27, 24, 26, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000800, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP2Triangles(20, 21, 22, 0, 23, 20, 22, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000A00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP2Triangles(28, 29, 30, 0, 29, 31, 30, 0),
|
||||
gsSPVertex(0x04000C00, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_238[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000000),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_248[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000238),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_258[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000248),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_268[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500D800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04000D00, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(0, 8, 9, 10, 0),
|
||||
gsSP1Quadrangle(11, 12, 13, 14, 0),
|
||||
gsSP2Triangles(15, 16, 17, 0, 18, 19, 20, 0),
|
||||
gsSP2Triangles(18, 20, 21, 0, 22, 23, 24, 0),
|
||||
gsSP2Triangles(22, 24, 25, 0, 26, 27, 28, 0),
|
||||
gsSP1Quadrangle(26, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04000F00, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
|
||||
gsSP2Triangles(12, 1, 13, 0, 14, 4, 15, 0),
|
||||
gsSP2Triangles(16, 17, 18, 0, 19, 20, 21, 0),
|
||||
gsSP2Triangles(19, 21, 22, 0, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(23, 26, 27, 28, 0),
|
||||
gsSP1Quadrangle(16, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001100, 31, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(4, 5, 6, 0, 7, 8, 9, 0),
|
||||
gsSP2Triangles(7, 10, 11, 0, 12, 13, 14, 0),
|
||||
gsSP2Triangles(15, 16, 17, 0, 15, 18, 19, 0),
|
||||
gsSP2Triangles(20, 21, 22, 0, 15, 23, 24, 0),
|
||||
gsSP2Triangles(25, 26, 27, 0, 28, 29, 30, 0),
|
||||
gsSPVertex(0x040012F0, 31, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP2Triangles(8, 9, 10, 0, 11, 12, 13, 0),
|
||||
gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0),
|
||||
gsSP2Triangles(14, 18, 19, 0, 20, 21, 22, 0),
|
||||
gsSP2Triangles(20, 22, 23, 0, 24, 25, 26, 0),
|
||||
gsSP1Quadrangle(27, 28, 29, 30, 0),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500E000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040014E0, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500E800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001520, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500F000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001560, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500F800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040015A0, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040015E0, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
|
||||
gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
|
||||
gsSP2Triangles(12, 13, 14, 0, 15, 16, 17, 0),
|
||||
gsSP2Triangles(18, 19, 20, 0, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x040017E0, 24, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_570[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000268),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_580[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05010800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04001960, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(0, 3, 4, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 2, 1, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(17, 16, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 25, 24, 0),
|
||||
gsSP1Quadrangle(27, 26, 28, 29, 0),
|
||||
gsSPVertex(0x04001B40, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(0, 3, 4, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 2, 1, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04001D40, 20, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_6B8[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000580),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_6C8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 6, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x00FC),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05011000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 256),
|
||||
gsSPVertex(0x04001E80, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(3, 2, 4, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(9, 10, 11, 12, 0),
|
||||
gsSP1Quadrangle(13, 11, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002080, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(3, 2, 4, 5, 0),
|
||||
gsSP1Quadrangle(6, 7, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(13, 12, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002280, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002480, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002680, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(27, 26, 17, 16, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002880, 14, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(7, 6, 8, 9, 0),
|
||||
gsSP1Quadrangle(3, 2, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 1, 0, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_8D8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 6, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x00FC),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05011000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 256),
|
||||
gsSPVertex(0x04002960, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
|
||||
gsSP1Quadrangle(4, 0, 2, 5, 0),
|
||||
gsSP1Quadrangle(5, 6, 7, 8, 0),
|
||||
gsSP2Triangles(9, 10, 11, 0, 10, 12, 11, 0),
|
||||
gsSP1Quadrangle(13, 11, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 9, 11, 13, 0),
|
||||
gsSP1Quadrangle(17, 7, 18, 19, 0),
|
||||
gsSP2Triangles(7, 20, 18, 0, 7, 21, 20, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSP1Quadrangle(15, 14, 30, 31, 0),
|
||||
gsSPVertex(0x04002B60, 32, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(7, 6, 8, 9, 0),
|
||||
gsSP2Triangles(6, 10, 8, 0, 6, 11, 10, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP2Triangles(21, 24, 22, 0, 24, 25, 22, 0),
|
||||
gsSP1Quadrangle(23, 22, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04002D60, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(9, 12, 13, 10, 0),
|
||||
gsSP1Quadrangle(14, 15, 16, 17, 0),
|
||||
gsSP1Quadrangle(18, 19, 20, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSPVertex(0x04002F40, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(4, 5, 6, 0, 7, 4, 8, 0),
|
||||
gsSP2Triangles(7, 8, 9, 0, 4, 6, 8, 0),
|
||||
gsSP2Triangles(10, 11, 12, 0, 11, 13, 12, 0),
|
||||
gsSP1Quadrangle(14, 10, 12, 15, 0),
|
||||
gsSP2Triangles(16, 17, 18, 0, 17, 19, 18, 0),
|
||||
gsSP1Quadrangle(20, 16, 18, 21, 0),
|
||||
gsSP1Quadrangle(22, 23, 24, 25, 0),
|
||||
gsSP1Quadrangle(26, 27, 28, 29, 0),
|
||||
gsSP2Triangles(27, 30, 28, 0, 27, 31, 30, 0),
|
||||
gsSPVertex(0x04003140, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP2Triangles(1, 4, 2, 0, 3, 2, 5, 0),
|
||||
gsSP2Triangles(3, 5, 6, 0, 4, 7, 2, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x04003340, 30, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP2Triangles(17, 20, 18, 0, 17, 21, 20, 0),
|
||||
gsSP2Triangles(22, 23, 24, 0, 23, 25, 24, 0),
|
||||
gsSP1Quadrangle(26, 24, 27, 28, 0),
|
||||
gsSP1Quadrangle(29, 22, 24, 26, 0),
|
||||
gsSPVertex(0x04003520, 22, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP2Triangles(9, 12, 10, 0, 12, 13, 10, 0),
|
||||
gsSP2Triangles(14, 15, 16, 0, 17, 14, 18, 0),
|
||||
gsSP2Triangles(17, 18, 19, 0, 14, 16, 18, 0),
|
||||
gsSP1Quadrangle(11, 10, 20, 21, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_B70[] =
|
||||
{
|
||||
gsSPDisplayList(0x070008D8),
|
||||
gsSPDisplayList(0x070006C8),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_B88[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05010000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x04003680, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(2, 1, 8, 9, 0),
|
||||
gsSP1Quadrangle(10, 11, 12, 13, 0),
|
||||
gsSP1Quadrangle(14, 10, 13, 15, 0),
|
||||
gsSP1Quadrangle(16, 12, 11, 17, 0),
|
||||
gsSP1Quadrangle(18, 9, 8, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 21, 0),
|
||||
gsSP1Quadrangle(27, 25, 24, 28, 0),
|
||||
gsSP1Triangle(29, 30, 31, 0),
|
||||
gsSPVertex(0x04003880, 6, 0),
|
||||
gsSP2Triangles(0, 1, 2, 0, 3, 4, 1, 0),
|
||||
gsSP1Triangle(3, 1, 5, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_C60[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000B88),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_C70[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, 6, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x00FC, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05001000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x040038E0, 12, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05002000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x040039A0, 8, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05003000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003A20, 8, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05004000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003AA0, 8, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05005000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003B20, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05006000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003C20, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05007000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003D20, 12, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05008000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003DE0, 20, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05009000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003F20, 12, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500A000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04003FE0, 8, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500B000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x04004060, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x0500C000),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128),
|
||||
gsSPVertex(0x040040A0, 4, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_FE8[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000C70),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_FF8[] =
|
||||
{
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x05000800),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
|
||||
gsSPVertex(0x040040E0, 32, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSP1Quadrangle(16, 17, 18, 19, 0),
|
||||
gsSP1Quadrangle(20, 21, 22, 23, 0),
|
||||
gsSP1Quadrangle(24, 25, 26, 27, 0),
|
||||
gsSP1Quadrangle(28, 29, 30, 31, 0),
|
||||
gsSPVertex(0x040042E0, 16, 0),
|
||||
gsSP1Quadrangle(0, 1, 2, 3, 0),
|
||||
gsSP1Quadrangle(4, 5, 6, 7, 0),
|
||||
gsSP1Quadrangle(8, 9, 10, 11, 0),
|
||||
gsSP1Quadrangle(12, 13, 14, 15, 0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_10C8[] =
|
||||
{
|
||||
gsSPDisplayList(0x07000FF8),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_10D8[] =
|
||||
{
|
||||
gsSPDisplayList(0x070010C8),
|
||||
gsSPDisplayList(0x07000FE8),
|
||||
gsSPDisplayList(0x07000C60),
|
||||
gsSPDisplayList(0x07000B70),
|
||||
gsSPDisplayList(0x070006B8),
|
||||
gsSPDisplayList(0x07000570),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx d_course_skyscraper_packed_dl_1110[] =
|
||||
{
|
||||
gsSPDisplayList(0x070010D8),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
u8 d_course_skyscraper_packed_tail[] = { 0xFF, 7, 0, 0, 0, 0, 0, 0 };
|
||||
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
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
@@ -9,15 +9,15 @@
|
||||
*/
|
||||
|
||||
StaffGhost d_mario_raceway_staff_ghost[] = {
|
||||
#include "courses/flower_cup/mario_raceway/staff_ghost.inc.c"
|
||||
#include "courses/flower_cup/mario_raceway/staff_ghost.incl.c"
|
||||
};
|
||||
|
||||
StaffGhost d_luigi_raceway_staff_ghost[1046] = {
|
||||
#include "courses/mushroom_cup/luigi_raceway/staff_ghost.inc.c"
|
||||
#include "courses/mushroom_cup/luigi_raceway/staff_ghost.incl.c"
|
||||
};
|
||||
|
||||
StaffGhost d_royal_raceway_staff_ghost[] = {
|
||||
#include "courses/star_cup/royal_raceway/staff_ghost.inc.c"
|
||||
#include "courses/star_cup/royal_raceway/staff_ghost.incl.c"
|
||||
};
|
||||
|
||||
// Unknown data. Perhaps colour or lights
|
||||
|
||||
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
@@ -0,0 +1,138 @@
|
||||
#!/bin/node
|
||||
const fs = require('fs');
|
||||
const { exit } = require('process');
|
||||
|
||||
/**
|
||||
* Call this script like
|
||||
*
|
||||
* node app.js input_file_here output_file_here
|
||||
*/
|
||||
if (process.argv.length !== 4 && process.argv.length !== 5 ) {
|
||||
console.error(`Error! Usage: ./${process.argv[1].split('/').slice(-1)[0]} input_file output_file`)
|
||||
exit(1);
|
||||
}
|
||||
// get the name of the file to read
|
||||
const f = fs.readFileSync(process.argv[2]);
|
||||
|
||||
let type;
|
||||
if (Number(process.argv[4]) > -1 && Number(process.argv[4]) < 3) {
|
||||
type = Number(process.argv[4]);
|
||||
} else {
|
||||
type = 2;
|
||||
}
|
||||
|
||||
// offset, type
|
||||
arr = [
|
||||
{o: "0x0", t: 3},
|
||||
{o: "0x19D0", t: 0}, // path
|
||||
{o: "0x1CF8", t: 0}, // more path? or spawn?
|
||||
// 0x5400
|
||||
];
|
||||
|
||||
let iter = 8;
|
||||
// spawn, vtx, ptr, gfx
|
||||
switch(type) {
|
||||
case 0: // Actor Spawn
|
||||
iter = 8;
|
||||
break;
|
||||
case 1: // Vtx
|
||||
iter = 16;
|
||||
break;
|
||||
case 2: // Ptr Addr
|
||||
iter = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
// parse data to s16
|
||||
function p(offset) {
|
||||
const byteA = f[offset];
|
||||
const byteB = f[offset + 1];
|
||||
let sign = byteA & (1 << 7);
|
||||
let x = (((byteA & 0xFF) << 8) | (byteB & 0xFF));
|
||||
if (sign) {
|
||||
return 0xFFFF0000 | x; // fill in most significant bits with 1's
|
||||
} else {
|
||||
return x;
|
||||
}
|
||||
}
|
||||
|
||||
// parse s8 to hex
|
||||
function s8(b) {
|
||||
if (typeof b === "undefined") {
|
||||
return "";
|
||||
}
|
||||
let res = b.toString(16).toUpperCase();
|
||||
if (res.length == 1) {
|
||||
return "0x0"+String(res);
|
||||
}
|
||||
return "0x"+res;
|
||||
}
|
||||
|
||||
function s32_h(b, offset) { // helper
|
||||
let str = f[b + offset].toString(16).toUpperCase()
|
||||
if (str.length == 1) {
|
||||
return "0"+str;
|
||||
} else {
|
||||
return str;
|
||||
}
|
||||
}
|
||||
|
||||
// parse s32 to hex
|
||||
function s32(b) {
|
||||
return res = "0x"+s32_h(b, 0) +
|
||||
s32_h(b, 1) +
|
||||
s32_h(b, 2) +
|
||||
s32_h(b, 3);
|
||||
}
|
||||
|
||||
// lines to output
|
||||
let k = [];
|
||||
switch(type) {
|
||||
case 0:
|
||||
k.push("struct ActorSpawnData d_course__dl[] = {");
|
||||
break;
|
||||
case 1:
|
||||
k.push("Vtx_t d_course__dl[] = {");
|
||||
break;
|
||||
case 2:
|
||||
k.push("struct CourseAddrUnkStruct d_course__dl[] = {");
|
||||
break;
|
||||
}
|
||||
for (i = 0; i < f.length; i += iter) {
|
||||
// X Y Z
|
||||
|
||||
switch(type) {
|
||||
case 0: // Spawn location { x, y, z}, { flag }
|
||||
k.push(" {{ "+p(i + 0)+", "+p(i + 2)+", "+p(i + 4)+" }, { "+p(i + 6)+" }},");
|
||||
break;
|
||||
case 1: // Vtx {x, y, z}, { flag }, { t1, t2 }, { r, g, b, a }
|
||||
k.push(" {{ "+p(i + 0)+", "+p(i + 2)+", "+p(i + 4)+" }, { "+p(i + 6)+" }, { "+p(i + 8)+", "+p(i + 10)+" }, {"+s8(f[i + 12], 16)+", "+s8(f[i + 13], 16)+", "+s8(f[i + 14])+", "+s8(f[i + 15])+" }},");
|
||||
break;
|
||||
case 2: // Ptr addr
|
||||
k.push(" {{ "+s32(i + 0)+" }, { "+s32(i + 4)+" }},");
|
||||
break;
|
||||
}
|
||||
|
||||
// check if this is a glabel line
|
||||
//let n = i.match(/glabel D_([0-9A-F]*)$/);
|
||||
// if it is
|
||||
//if (n) {
|
||||
// the number will be in the second? item in the array - convert it to a numbers
|
||||
// let newLast = Number(`0x${n[1]}`)
|
||||
//if (last != 0) { // not the first line? add the skip info
|
||||
// k.push(`.skip ${newLast-last}`) // .skip ##
|
||||
// k.push('') // blank line
|
||||
//}
|
||||
//last = newLast; // save what the last glbael line was
|
||||
//k.push(i) // glabel D_###
|
||||
//}
|
||||
//if (i > 100) {break;}
|
||||
}
|
||||
// might need additional logical here to output the last lines after the last glabel?
|
||||
// for now, just copy the last line from the original file
|
||||
//k.push(b.slice(-1)[0])
|
||||
k.push("};");
|
||||
// write this to the file name in the second arg
|
||||
//fs.writeFileSync(process.argv[3], k.join("\n")+"\n");
|
||||
console.log(k.join("\n")+"\n");
|
||||
exit(0);
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef COURSE_H
|
||||
#define COURSE_H
|
||||
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
|
||||
/**
|
||||
* @file Include for course gfx.inc.c.
|
||||
*/
|
||||
|
||||
// This could be *func(arg) instead.
|
||||
struct CourseAddrUnkStruct {
|
||||
uintptr_t addr;
|
||||
s32 value;
|
||||
};
|
||||
|
||||
#endif // COURSE_H
|
||||
@@ -23,6 +23,14 @@ OUTPUT_ARCH (mips)
|
||||
} \
|
||||
END_SEG(name##_mio0)
|
||||
|
||||
#define COURSE_DATA_SEG(dir, name) \
|
||||
BEGIN_SEG(name##_mio0, 0x0) \
|
||||
{ \
|
||||
BUILD_DIR/courses/dir/course_data.inc.mio0.o(.data); \
|
||||
. = ALIGN(0x10); \
|
||||
} \
|
||||
END_SEG(name##_mio0)
|
||||
|
||||
#define COURSE_OFFSETS_SEG(name, addr) \
|
||||
BEGIN_SEG(name, addr) \
|
||||
{ \
|
||||
@@ -31,10 +39,10 @@ OUTPUT_ARCH (mips)
|
||||
} \
|
||||
END_SEG(name)
|
||||
|
||||
#define VERT_SEG(name, addr) \
|
||||
BEGIN_SEG(name, addr) \
|
||||
#define COURSE_VERT_SEG(dir, name) \
|
||||
BEGIN_SEG(name, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/data/courses/name.o(.data); \
|
||||
BUILD_DIR/courses/dir/model.inc.mio0.o(.data); \
|
||||
. = ALIGN(0x10); \
|
||||
} \
|
||||
END_SEG(name)
|
||||
@@ -478,26 +486,29 @@ SECTIONS
|
||||
}
|
||||
END_SEG(data_825800)
|
||||
|
||||
MIO0_SEG(course_mario_raceway_dl)
|
||||
MIO0_SEG(course_choco_mountain_dl)
|
||||
MIO0_SEG(course_bowsers_castle_dl)
|
||||
MIO0_SEG(course_banshee_boardwalk_dl)
|
||||
MIO0_SEG(course_yoshi_valley_dl)
|
||||
MIO0_SEG(course_frappe_snowland_dl)
|
||||
MIO0_SEG(course_koopa_troopa_beach_dl)
|
||||
MIO0_SEG(course_royal_raceway_dl)
|
||||
MIO0_SEG(course_luigi_raceway_dl)
|
||||
MIO0_SEG(course_moo_moo_farm_dl)
|
||||
MIO0_SEG(course_toads_turnpike_dl)
|
||||
MIO0_SEG(course_kalimari_desert_dl)
|
||||
MIO0_SEG(course_sherbet_land_dl)
|
||||
MIO0_SEG(course_rainbow_road_dl)
|
||||
MIO0_SEG(course_wario_stadium_dl)
|
||||
MIO0_SEG(course_block_fort_dl)
|
||||
MIO0_SEG(course_skyscraper_dl)
|
||||
MIO0_SEG(course_double_deck_dl)
|
||||
MIO0_SEG(course_dks_jungle_parkway_dl)
|
||||
MIO0_SEG(course_big_donut_dl)
|
||||
|
||||
/* Segment Six Course Data (Displaylists, models, textures, course paths, etc.) */
|
||||
|
||||
COURSE_DATA_SEG(flower_cup/mario_raceway,course_mario_raceway_dl)
|
||||
COURSE_DATA_SEG(flower_cup/choco_mountain,course_choco_mountain_dl)
|
||||
COURSE_DATA_SEG(star_cup/bowsers_castle,course_bowsers_castle_dl)
|
||||
COURSE_DATA_SEG(special_cup/banshee_boardwalk,course_banshee_boardwalk_dl)
|
||||
COURSE_DATA_SEG(special_cup/yoshi_valley,course_yoshi_valley_dl)
|
||||
COURSE_DATA_SEG(flower_cup/frappe_snowland,course_frappe_snowland_dl)
|
||||
COURSE_DATA_SEG(mushroom_cup/koopa_troopa_beach,course_koopa_troopa_beach_dl)
|
||||
COURSE_DATA_SEG(star_cup/royal_raceway,course_royal_raceway_dl)
|
||||
COURSE_DATA_SEG(mushroom_cup/luigi_raceway,course_luigi_raceway_dl)
|
||||
COURSE_DATA_SEG(mushroom_cup/moo_moo_farm,course_moo_moo_farm_dl)
|
||||
COURSE_DATA_SEG(flower_cup/toads_turnpike,course_toads_turnpike_dl)
|
||||
COURSE_DATA_SEG(mushroom_cup/kalimari_desert,course_kalimari_desert_dl)
|
||||
COURSE_DATA_SEG(star_cup/sherbet_land,course_sherbet_land_dl)
|
||||
COURSE_DATA_SEG(special_cup/rainbow_road,course_rainbow_road_dl)
|
||||
COURSE_DATA_SEG(star_cup/wario_stadium,course_wario_stadium_dl)
|
||||
COURSE_DATA_SEG(battle/block_fort,course_block_fort_dl)
|
||||
COURSE_DATA_SEG(battle/skyscraper,course_skyscraper_dl)
|
||||
COURSE_DATA_SEG(battle/double_deck,course_double_deck_dl)
|
||||
COURSE_DATA_SEG(special_cup/dks_jungle_parkway,course_dks_jungle_parkway_dl)
|
||||
COURSE_DATA_SEG(battle/big_donut,course_big_donut_dl)
|
||||
|
||||
COURSE_OFFSETS_SEG(course_mario_raceway_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_choco_mountain_offsets, 0x09000000)
|
||||
@@ -520,125 +531,28 @@ SECTIONS
|
||||
COURSE_OFFSETS_SEG(course_dks_jungle_parkway_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_big_donut_offsets, 0x09000000)
|
||||
|
||||
BEGIN_SEG(mario_raceway_vertex, 0x0F000000) \
|
||||
{ \
|
||||
BUILD_DIR/courses/flower_cup/mario_raceway/model.inc.mio0.o(.data); \
|
||||
} \
|
||||
END_SEG(mario_raceway_vertex)
|
||||
/* Segment 0xF Course Geography */
|
||||
|
||||
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_troopa_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)
|
||||
COURSE_VERT_SEG(flower_cup/mario_raceway,mario_raceway_vertex)
|
||||
COURSE_VERT_SEG(flower_cup/choco_mountain,choco_mountain_vertex)
|
||||
COURSE_VERT_SEG(star_cup/bowsers_castle,bowsers_castle_vertex)
|
||||
COURSE_VERT_SEG(special_cup/banshee_boardwalk,banshee_boardwalk_vertex)
|
||||
COURSE_VERT_SEG(special_cup/yoshi_valley,yoshi_valley_vertex)
|
||||
COURSE_VERT_SEG(flower_cup/frappe_snowland,frappe_snowland_vertex)
|
||||
COURSE_VERT_SEG(mushroom_cup/koopa_troopa_beach,koopa_troopa_beach_vertex)
|
||||
COURSE_VERT_SEG(star_cup/royal_raceway,royal_raceway_vertex)
|
||||
COURSE_VERT_SEG(mushroom_cup/luigi_raceway,luigi_raceway_vertex)
|
||||
COURSE_VERT_SEG(mushroom_cup/moo_moo_farm,moo_moo_farm_vertex)
|
||||
COURSE_VERT_SEG(flower_cup/toads_turnpike,toads_turnpike_vertex)
|
||||
COURSE_VERT_SEG(mushroom_cup/kalimari_desert,kalimari_desert_vertex)
|
||||
COURSE_VERT_SEG(star_cup/sherbet_land,sherbet_land_vertex)
|
||||
COURSE_VERT_SEG(special_cup/rainbow_road,rainbow_road_vertex)
|
||||
COURSE_VERT_SEG(star_cup/wario_stadium,wario_stadium_vertex)
|
||||
COURSE_VERT_SEG(battle/block_fort,block_fort_vertex)
|
||||
COURSE_VERT_SEG(battle/skyscraper,skyscraper_vertex)
|
||||
COURSE_VERT_SEG(battle/double_deck,double_deck_vertex)
|
||||
COURSE_VERT_SEG(special_cup/dks_jungle_parkway,dks_jungle_parkway_vertex)
|
||||
COURSE_VERT_SEG(battle/big_donut,big_donut_vertex)
|
||||
|
||||
BEGIN_SEG(audio_banks, 0x0)
|
||||
{
|
||||
|
||||
+78
-72
@@ -99,7 +99,8 @@ void func_80296A50(struct ShellActor *shell) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_80296D10(struct Actor *actor, Vec3f startingPos, Vec3s startingRot, Vec3f startingVelocity, s16 actorType) {
|
||||
// Sets introductory values for a new actor (ex. Banana).
|
||||
void actor_init(struct Actor *actor, Vec3f startingPos, Vec3s startingRot, Vec3f startingVelocity, s16 actorType) {
|
||||
vec3f_copy(actor->pos, startingPos);
|
||||
vec3s_copy(actor->rot, startingRot);
|
||||
vec3f_copy(actor->velocity, startingVelocity);
|
||||
@@ -1393,6 +1394,7 @@ UNUSED void func_8029AE14() {
|
||||
|
||||
}
|
||||
|
||||
// This likely attaches the paddle wheel to the boat
|
||||
void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, Mat4 arg2, u16 arg3) {
|
||||
s32 pad[3];
|
||||
Vec3f sp120;
|
||||
@@ -1566,6 +1568,7 @@ void func_8029B6EC(Camera *camera, struct Actor* arg1) {
|
||||
}
|
||||
}
|
||||
|
||||
// Spins train wheels?
|
||||
void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
|
||||
s32 pad[3];
|
||||
Vec3f sp160;
|
||||
@@ -1880,26 +1883,28 @@ void func_8029CA90(Camera *camera, struct FallingRock *rock) {
|
||||
|
||||
if (temp_f0 < 0.0f) { return; }
|
||||
|
||||
if ((temp_f0 < 250000.0f) && (rock->unk30.unk34 == 1)) {
|
||||
sp8C[0] = rock->pos[0];
|
||||
sp8C[2] = rock->pos[2];
|
||||
temp_f0 = func_802ABE30(sp8C[0], rock->pos[1], sp8C[2], rock->unk30.unk3A);
|
||||
sp98[0] = 0;
|
||||
sp98[1] = 0;
|
||||
sp98[2] = 0;
|
||||
sp8C[1] = temp_f0 + 2.0f;
|
||||
func_802B5F74(sp4C, sp8C, sp98);
|
||||
if (func_802B4FF8(sp4C, 0) != 0) {
|
||||
if (temp_f0 < 250000.0f) {
|
||||
|
||||
if (rock->unk30.unk34 == 1) {
|
||||
sp8C[0] = rock->pos[0];
|
||||
sp8C[2] = rock->pos[2];
|
||||
temp_f0 = func_802ABE30(sp8C[0], rock->pos[1], sp8C[2], rock->unk30.unk3A);
|
||||
sp98[0] = 0;
|
||||
sp98[1] = 0;
|
||||
sp98[2] = 0;
|
||||
sp8C[1] = temp_f0 + 2.0f;
|
||||
func_802B5F74(sp4C, sp8C, sp98);
|
||||
if (func_802B4FF8(sp4C, 0) == 0) {
|
||||
return;
|
||||
}
|
||||
gSPDisplayList(gDisplayListHead++, D_06006F88);
|
||||
goto block_6;
|
||||
}
|
||||
} else {
|
||||
block_6:
|
||||
func_802B5F74(sp4C, rock->pos, rock->rot);
|
||||
if (func_802B4FF8(sp4C, 0) != 0) {
|
||||
gSPDisplayList(gDisplayListHead++, D_06006FE0);
|
||||
}
|
||||
}
|
||||
func_802B5F74(sp4C, rock->pos, rock->rot);
|
||||
if (func_802B4FF8(sp4C, 0) == 0) {
|
||||
return;
|
||||
}
|
||||
gSPDisplayList(gDisplayListHead++, D_06006FE0);
|
||||
}
|
||||
|
||||
void place_piranha_plants(struct ActorSpawnData *spawnData) {
|
||||
@@ -1920,7 +1925,7 @@ void place_piranha_plants(struct ActorSpawnData *spawnData) {
|
||||
startingPos[0] = temp_s0->pos[0] * gCourseDirection;
|
||||
startingPos[1] = temp_s0->pos[1];
|
||||
startingPos[2] = temp_s0->pos[2];
|
||||
temp = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_PIRANHA_PLANT);
|
||||
temp = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_PIRANHA_PLANT);
|
||||
temp_v1 = (struct PiranhaPlant *) &gActorList[temp];
|
||||
temp_v1->visibilityStates[0] = 0;
|
||||
temp_v1->visibilityStates[1] = 0;
|
||||
@@ -1951,7 +1956,7 @@ void place_palm_trees(struct ActorSpawnData *spawnData) {
|
||||
startingPos[0] = temp_s0->pos[0] * gCourseDirection;
|
||||
startingPos[1] = temp_s0->pos[1];
|
||||
startingPos[2] = temp_s0->pos[2];
|
||||
temp = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_PALM_TREE);
|
||||
temp = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_PALM_TREE);
|
||||
temp_v1 = (struct PalmTree *) &gActorList[temp];
|
||||
|
||||
temp_v1->visibilityStates[0] = temp_s0->someId;
|
||||
@@ -1991,7 +1996,7 @@ void place_falling_rocks(struct ActorSpawnData *spawnData) {
|
||||
startingPos[2] = temp_s0->pos[2];
|
||||
vec3f_set(startingVelocity, 0, 0, 0);
|
||||
vec3s_set(startingRot, 0, 0, 0);
|
||||
temp = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_FALLING_ROCK);
|
||||
temp = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_FALLING_ROCK);
|
||||
temp_v1 = (struct FallingRock *) &gActorList[temp];
|
||||
|
||||
temp_v1->unk_06 = temp_s0->someId;
|
||||
@@ -2144,7 +2149,7 @@ void place_segment_06(struct ActorSpawnData *arg0) {
|
||||
break;
|
||||
}
|
||||
|
||||
temp_s0 = &gActorList[func_8029EC88(position, rotation, velocity, actorType)];
|
||||
temp_s0 = &gActorList[addActorToEmptySlot(position, rotation, velocity, actorType)];
|
||||
if (gGamestate == CREDITS_SEQUENCE) {
|
||||
func_802976D8(temp_s0->rot);
|
||||
} else {
|
||||
@@ -2167,24 +2172,25 @@ void place_all_item_boxes(struct ActorSpawnData *spawnData) {
|
||||
Vec3f startingVelocity;
|
||||
Vec3s startingRot;
|
||||
|
||||
if ((gModeSelection != TIME_TRIALS) && (gPlaceItemBoxes != 0)) {
|
||||
vec3f_set(startingVelocity, 0, 0, 0);
|
||||
while(temp_s0->pos[0] != -0x8000) {
|
||||
startingPos[0] = temp_s0->pos[0] * gCourseDirection;
|
||||
startingPos[1] = temp_s0->pos[1];
|
||||
startingPos[2] = temp_s0->pos[2];
|
||||
startingRot[0] = random_u16();
|
||||
startingRot[1] = random_u16();
|
||||
startingRot[2] = random_u16();
|
||||
temp_s1 = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_ITEM_BOX);
|
||||
temp_f0 = func_802AE1C0(startingPos[0], startingPos[1] + 10.0f, startingPos[2]);
|
||||
temp_v0 = (struct ItemBox *) &gActorList[temp_s1];
|
||||
temp_v0->resetDistance = temp_f0;
|
||||
temp_v0->origY = startingPos[1];
|
||||
temp_v0->pos[1] = temp_f0 - 20.0f;
|
||||
temp_s0++;
|
||||
}
|
||||
if ((gModeSelection == TIME_TRIALS) || (gPlaceItemBoxes == 0)) { return; }
|
||||
|
||||
vec3f_set(startingVelocity, 0, 0, 0);
|
||||
while(temp_s0->pos[0] != -0x8000) {
|
||||
startingPos[0] = temp_s0->pos[0] * gCourseDirection;
|
||||
startingPos[1] = temp_s0->pos[1];
|
||||
startingPos[2] = temp_s0->pos[2];
|
||||
startingRot[0] = random_u16();
|
||||
startingRot[1] = random_u16();
|
||||
startingRot[2] = random_u16();
|
||||
temp_s1 = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_ITEM_BOX);
|
||||
temp_f0 = func_802AE1C0(startingPos[0], startingPos[1] + 10.0f, startingPos[2]);
|
||||
temp_v0 = (struct ItemBox *) &gActorList[temp_s1];
|
||||
temp_v0->resetDistance = temp_f0;
|
||||
temp_v0->origY = startingPos[1];
|
||||
temp_v0->pos[1] = temp_f0 - 20.0f;
|
||||
temp_s0++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void init_kiwano_fruit(void) {
|
||||
@@ -2203,7 +2209,7 @@ void init_kiwano_fruit(void) {
|
||||
if ((phi_s1->unk_000 & 0x4000) == 0) { continue; }
|
||||
if ((phi_s1->unk_000 & 0x100) != 0) { continue; }
|
||||
|
||||
phi_s0 = func_8029EC88(sp64, sp50, sp58, ACTOR_KIWANO_FRUIT);
|
||||
phi_s0 = addActorToEmptySlot(sp64, sp50, sp58, ACTOR_KIWANO_FRUIT);
|
||||
actor = &gActorList[phi_s0];
|
||||
actor->unk_04 = i;
|
||||
}
|
||||
@@ -2227,7 +2233,7 @@ void destroy_all_actors(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_8029DB44(void) {
|
||||
void place_course_actors(void) {
|
||||
s32 stackPadding0;
|
||||
Vec3f position;
|
||||
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||
@@ -2243,10 +2249,10 @@ void func_8029DB44(void) {
|
||||
place_all_item_boxes(D_06009498);
|
||||
vec3f_set(position, 150.0f, 40.0f, -1300.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_MARIO_RACEWAY_SIGN);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_MARIO_RACEWAY_SIGN);
|
||||
vec3f_set(position, 2520.0f, 0.0f, 1240.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
actor = &gActorList[func_8029EC88(position, rotation, velocity, ACTOR_MARIO_RACEWAY_SIGN)];
|
||||
actor = &gActorList[addActorToEmptySlot(position, rotation, velocity, ACTOR_MARIO_RACEWAY_SIGN)];
|
||||
actor->flags |= 0x4000;
|
||||
break;
|
||||
case COURSE_CHOCO_MOUNTAIN:
|
||||
@@ -2265,7 +2271,7 @@ void func_8029DB44(void) {
|
||||
place_all_item_boxes(D_06018110);
|
||||
vec3f_set(position, -2300.0f, 0.0f, 634.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_YOSHI_VALLEY_EGG);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_YOSHI_VALLEY_EGG);
|
||||
break;
|
||||
case COURSE_FRAPPE_SNOWLAND:
|
||||
place_segment_06(D_06007718);
|
||||
@@ -2299,20 +2305,20 @@ void func_8029DB44(void) {
|
||||
place_all_item_boxes(D_06022E88);
|
||||
vec3f_set(position, -1680.0f, 2.0f, 35.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[func_8029EC88(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[addActorToEmptySlot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing->crossingId = 1;
|
||||
vec3f_set(position, -1600.0f, 2.0f, 35.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[func_8029EC88(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[addActorToEmptySlot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing->crossingId = 1;
|
||||
vec3s_set(rotation, 0, -0x2000, 0);
|
||||
vec3f_set(position, -2459.0f, 2.0f, 2263.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[func_8029EC88(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[addActorToEmptySlot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing->crossingId = 0;
|
||||
vec3f_set(position, -2467.0f, 2.0f, 2375.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[func_8029EC88(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing = (struct RailroadCrossing *)&gActorList[addActorToEmptySlot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING)];
|
||||
rrxing->crossingId = 0;
|
||||
break;
|
||||
case COURSE_SHERBET_LAND:
|
||||
@@ -2325,13 +2331,13 @@ void func_8029DB44(void) {
|
||||
place_all_item_boxes(D_0600CB40);
|
||||
vec3f_set(position, -131.0f, 83.0f, 286.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
vec3f_set(position, -2353.0f, 72.0f, -1608.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
vec3f_set(position, -2622.0f, 79.0f, 739.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
break;
|
||||
case COURSE_BLOCK_FORT:
|
||||
place_all_item_boxes(D_06000038);
|
||||
@@ -2451,7 +2457,7 @@ void func_8029E158(void) {
|
||||
}
|
||||
func_80297818();
|
||||
destroy_all_actors();
|
||||
func_8029DB44();
|
||||
place_course_actors();
|
||||
func_800122D8();
|
||||
}
|
||||
|
||||
@@ -2509,7 +2515,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
default:
|
||||
break;
|
||||
@@ -2521,7 +2527,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
@@ -2531,7 +2537,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
case 4:
|
||||
case 5:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
@@ -2540,7 +2546,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
case 1:
|
||||
case 2:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
@@ -2564,7 +2570,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
default:
|
||||
break;
|
||||
@@ -2576,7 +2582,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
func_8000EE58(actorIndex);
|
||||
case 7:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
@@ -2586,7 +2592,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
case 4:
|
||||
case 5:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
@@ -2595,7 +2601,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
case 1:
|
||||
case 2:
|
||||
func_8029E7DC(compare);
|
||||
func_80296D10(compare, pos, rot, velocity, actorType);
|
||||
actor_init(compare, pos, rot, velocity, actorType);
|
||||
return actorIndex;
|
||||
}
|
||||
break;
|
||||
@@ -2607,7 +2613,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
s16 func_8029EC88(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
s16 addActorToEmptySlot(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
s32 index;
|
||||
|
||||
if (gNumActors >= ACTOR_LIST_SIZE) {
|
||||
@@ -2616,7 +2622,7 @@ s16 func_8029EC88(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
|
||||
for(index = 0; index < ACTOR_LIST_SIZE; index++){
|
||||
if (gActorList[index].flags == 0) {
|
||||
gNumActors++;
|
||||
func_80296D10(&gActorList[index], pos, rot, velocity, actorType);
|
||||
actor_init(&gActorList[index], pos, rot, velocity, actorType);
|
||||
return index;
|
||||
}
|
||||
}
|
||||
@@ -2629,7 +2635,7 @@ s16 func_8029ED38(Vec3f pos, s16 actorType) {
|
||||
|
||||
vec3f_set(vel, 0.0f, 0.0f, 0.0f);
|
||||
vec3s_set(rot, 0, 0, 0);
|
||||
return func_8029EC88(pos, rot, vel, actorType);
|
||||
return addActorToEmptySlot(pos, rot, vel, actorType);
|
||||
}
|
||||
|
||||
// I swear we have a struct that looks like this already but I cannot find it anywhere
|
||||
@@ -3577,15 +3583,15 @@ void func_802A14BC(f32 arg0, f32 arg1, f32 arg2) {
|
||||
Vec3s sp20;
|
||||
s16 temp_a0;
|
||||
|
||||
if (gModeSelection != TIME_TRIALS) {
|
||||
vec3s_set(sp20, 0, 0, 0);
|
||||
vec3f_set(sp28, 0, 0, 0);
|
||||
sp34[0] = arg0;
|
||||
sp34[1] = arg1;
|
||||
sp34[2] = arg2;
|
||||
temp_a0 = func_8029EC88(sp34, sp20, sp28, 43);
|
||||
D_802BA05C = &gActorList[temp_a0];
|
||||
}
|
||||
if (gModeSelection == TIME_TRIALS) { return; }
|
||||
|
||||
vec3s_set(sp20, 0, 0, 0);
|
||||
vec3f_set(sp28, 0, 0, 0);
|
||||
sp34[0] = arg0;
|
||||
sp34[1] = arg1;
|
||||
sp34[2] = arg2;
|
||||
temp_a0 = addActorToEmptySlot(sp34, sp20, sp28, 43);
|
||||
D_802BA05C = &gActorList[temp_a0];
|
||||
}
|
||||
|
||||
void update_obj_item_box_hot_air_balloon(struct ItemBox *itemBox) {
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@
|
||||
#include "actor_types.h"
|
||||
|
||||
void func_80296A50(struct ShellActor*);
|
||||
void func_80296D10(struct Actor*, f32*, s16*, f32*, s16);
|
||||
void actor_init(struct Actor*, f32*, s16*, f32*, s16);
|
||||
void func_80297230(Camera*, struct Actor*);
|
||||
void func_802972B8(Camera*, struct Actor*);
|
||||
void func_80297340(Camera*);
|
||||
@@ -75,11 +75,11 @@ void place_segment_06(struct ActorSpawnData*);
|
||||
void place_all_item_boxes(struct ActorSpawnData*);
|
||||
void init_kiwano_fruit();
|
||||
void destroy_all_actors();
|
||||
void func_8029DB44();
|
||||
void place_course_actors();
|
||||
void func_8029E7DC(struct Actor*);
|
||||
void destroy_actor(struct Actor*);
|
||||
s16 func_8029E890(f32*, s16*, f32*, s16);
|
||||
s16 func_8029EC88(Vec3f, Vec3s, Vec3f, s16);
|
||||
s16 addActorToEmptySlot(Vec3f, Vec3s, Vec3f, s16);
|
||||
s16 func_8029ED38(Vec3f, s16);
|
||||
s32 func_8029EEB8(Player*, Vec3f, f32, f32, f32);
|
||||
s32 func_8029F1F8(Player*, struct Actor*);
|
||||
|
||||
@@ -511,7 +511,7 @@ s32 func_802B17F4(Player *player) {
|
||||
s16 actorIndex;
|
||||
struct BananaBunchParent *bananaBunch;
|
||||
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_BANANA_BUNCH);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_BANANA_BUNCH);
|
||||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
@@ -530,7 +530,7 @@ s32 func_802B18E4(Player *player, s16 tripleShellType) {
|
||||
s16 actorIndex;
|
||||
struct TripleShellParent *parent;
|
||||
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, tripleShellType);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, tripleShellType);
|
||||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
@@ -560,7 +560,7 @@ s32 func_802B19EC(struct TripleShellParent *parent, Player *player, s16 shellTyp
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, shellType);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, shellType);
|
||||
if (actorIndex < 0) {
|
||||
parent->shellIndices[shellId] = -1.0f;
|
||||
return -1;
|
||||
@@ -605,7 +605,7 @@ s32 func_802B1C9C(Player *player) {
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_GREEN_SHELL);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_GREEN_SHELL);
|
||||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
@@ -638,7 +638,7 @@ s32 func_802B1E48(Player *player) {
|
||||
startingPos[0] += player->pos[0];
|
||||
startingPos[1] += player->pos[1];
|
||||
startingPos[2] += player->pos[2];
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_RED_SHELL);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_RED_SHELL);
|
||||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
@@ -865,7 +865,7 @@ void func_802B2914(struct BananaBunchParent *banana_bunch, Player *player, s16 b
|
||||
startingRot[0] = 0;
|
||||
startingRot[1] = 0;
|
||||
startingRot[2] = 0;
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_BANANA);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_BANANA);
|
||||
if (actorIndex >= 0) {
|
||||
newBanana = (struct BananaActor*)&gActorList[actorIndex];
|
||||
startingPos[0] = player->pos[0];
|
||||
@@ -942,7 +942,7 @@ s32 func_802B2C40(Player *player) {
|
||||
startingRot[0] = 0;
|
||||
startingRot[1] = 0;
|
||||
startingRot[2] = 0;
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_FAKE_ITEM_BOX);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_FAKE_ITEM_BOX);
|
||||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
@@ -981,7 +981,7 @@ s32 func_802B2D70(Player *player) {
|
||||
startingRot[0] = 0;
|
||||
startingRot[1] = 0;
|
||||
startingRot[2] = 0;
|
||||
actorIndex = func_8029EC88(startingPos, startingRot, startingVelocity, ACTOR_BANANA);
|
||||
actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_BANANA);
|
||||
if (actorIndex < 0) {
|
||||
return actorIndex;
|
||||
}
|
||||
|
||||
+4
-4
@@ -248,7 +248,7 @@ void func_80003040(void) {
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
vec3f_set(position, -2300.0f, 0.0f, 634.0f);
|
||||
position[0] *= gCourseDirection;
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_YOSHI_VALLEY_EGG);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_YOSHI_VALLEY_EGG);
|
||||
break;
|
||||
case COURSE_MOO_MOO_FARM:
|
||||
func_802A84F4(D_0F04FE28, 0x3E8, 0x800);
|
||||
@@ -276,11 +276,11 @@ void func_80003040(void) {
|
||||
break;
|
||||
case COURSE_WARIO_STADIUM:
|
||||
vec3f_set(position, -131.0f, 83.0f, 286.0f);
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
vec3f_set(position, -2353.0f, 72.0f, -1608.0f);
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
vec3f_set(position, -2622.0f, 79.0f, 739.0f);
|
||||
func_8029EC88(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
func_802AF8BC(0x7000C50, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000BD8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000B60, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
|
||||
+8
-8
@@ -6356,7 +6356,7 @@ void func_800122D8(void) {
|
||||
tempLocomotive->velocity[0] = tempLocomotive->position[0] - origXPos;
|
||||
tempLocomotive->velocity[2] = tempLocomotive->position[2] - origZPos;
|
||||
vec3s_set(trainCarRot, 0, trainCarYRot, 0);
|
||||
tempLocomotive->actorIndex = func_8029EC88(tempLocomotive->position, trainCarRot, tempLocomotive->velocity, ACTOR_TRAIN_ENGINE);
|
||||
tempLocomotive->actorIndex = addActorToEmptySlot(tempLocomotive->position, trainCarRot, tempLocomotive->velocity, ACTOR_TRAIN_ENGINE);
|
||||
|
||||
tempTender = &D_801635A0[loopIndex].tender;
|
||||
if (tempTender->isActive == 1) {
|
||||
@@ -6366,7 +6366,7 @@ void func_800122D8(void) {
|
||||
tempTender->velocity[0] = tempTender->position[0] - origXPos;
|
||||
tempTender->velocity[2] = tempTender->position[2] - origZPos;
|
||||
vec3s_set(trainCarRot, 0, trainCarYRot, 0);
|
||||
tempTender->actorIndex = func_8029EC88(tempTender->position, trainCarRot, tempTender->velocity, ACTOR_TRAIN_TENDER);
|
||||
tempTender->actorIndex = addActorToEmptySlot(tempTender->position, trainCarRot, tempTender->velocity, ACTOR_TRAIN_TENDER);
|
||||
}
|
||||
|
||||
for(loopIndex2 = 0; loopIndex2 < NUM_PASSENGER_CAR_ENTRIES; loopIndex2++) {
|
||||
@@ -6378,7 +6378,7 @@ void func_800122D8(void) {
|
||||
tempPassengerCar->velocity[0] = tempPassengerCar->position[0] - origXPos;
|
||||
tempPassengerCar->velocity[2] = tempPassengerCar->position[2] - origZPos;
|
||||
vec3s_set(trainCarRot, 0, trainCarYRot, 0);
|
||||
tempPassengerCar->actorIndex = func_8029EC88(tempPassengerCar->position, trainCarRot, tempPassengerCar->velocity, ACTOR_TRAIN_PASSENGER_CAR);
|
||||
tempPassengerCar->actorIndex = addActorToEmptySlot(tempPassengerCar->position, trainCarRot, tempPassengerCar->velocity, ACTOR_TRAIN_PASSENGER_CAR);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6393,7 +6393,7 @@ void func_800122D8(void) {
|
||||
tempPaddleWheelBoat->velocity[0] = tempPaddleWheelBoat->position[0] - origXPos;
|
||||
tempPaddleWheelBoat->velocity[2] = tempPaddleWheelBoat->position[2] - origZPos;
|
||||
vec3s_set(paddleWheelBoatRot, 0, tempPaddleWheelBoat->yRotation, 0);
|
||||
tempPaddleWheelBoat->actorIndex = func_8029EC88(tempPaddleWheelBoat->position, paddleWheelBoatRot, tempPaddleWheelBoat->velocity, ACTOR_PADDLE_WHEEL_BOAT);
|
||||
tempPaddleWheelBoat->actorIndex = addActorToEmptySlot(tempPaddleWheelBoat->position, paddleWheelBoatRot, tempPaddleWheelBoat->velocity, ACTOR_PADDLE_WHEEL_BOAT);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -6401,22 +6401,22 @@ void func_800122D8(void) {
|
||||
for(loopIndex = 0; loopIndex < NUM_RACE_BOX_TRUCKS; loopIndex++) {
|
||||
tempBoxTruck = &gBoxTruckList[loopIndex];
|
||||
func_80012220(tempBoxTruck);
|
||||
tempBoxTruck->actorIndex = func_8029EC88(tempBoxTruck->position, tempBoxTruck->rotation, tempBoxTruck->velocity, ACTOR_BOX_TRUCK);
|
||||
tempBoxTruck->actorIndex = addActorToEmptySlot(tempBoxTruck->position, tempBoxTruck->rotation, tempBoxTruck->velocity, ACTOR_BOX_TRUCK);
|
||||
}
|
||||
for(loopIndex = 0; loopIndex < NUM_RACE_SCHOOL_BUSES; loopIndex++) {
|
||||
tempSchoolBus = &gSchoolBusList[loopIndex];
|
||||
func_80012220(tempSchoolBus);
|
||||
tempSchoolBus->actorIndex = func_8029EC88(tempSchoolBus->position, tempSchoolBus->rotation, tempSchoolBus->velocity, ACTOR_SCHOOL_BUS);
|
||||
tempSchoolBus->actorIndex = addActorToEmptySlot(tempSchoolBus->position, tempSchoolBus->rotation, tempSchoolBus->velocity, ACTOR_SCHOOL_BUS);
|
||||
}
|
||||
for(loopIndex = 0; loopIndex < NUM_RACE_TANKER_TRUCKS; loopIndex++) {
|
||||
tempTankerTruck = &gTankerTruckList[loopIndex];
|
||||
func_80012220(tempTankerTruck);
|
||||
tempTankerTruck->actorIndex = func_8029EC88(tempTankerTruck->position, tempTankerTruck->rotation, tempTankerTruck->velocity, ACTOR_TANKER_TRUCK);
|
||||
tempTankerTruck->actorIndex = addActorToEmptySlot(tempTankerTruck->position, tempTankerTruck->rotation, tempTankerTruck->velocity, ACTOR_TANKER_TRUCK);
|
||||
}
|
||||
for(loopIndex = 0; loopIndex < NUM_RACE_CARS; loopIndex++) {
|
||||
tempCar = &gCarList[loopIndex];
|
||||
func_80012220(tempCar);
|
||||
tempCar->actorIndex = func_8029EC88(tempCar->position, tempCar->rotation, tempCar->velocity, ACTOR_CAR);
|
||||
tempCar->actorIndex = addActorToEmptySlot(tempCar->position, tempCar->rotation, tempCar->velocity, ACTOR_CAR);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
#include <PR/gbi.h>
|
||||
|
||||
/**
|
||||
* @file Contains common course resources
|
||||
* @file Contains common course data
|
||||
* @segment 0x0D
|
||||
* textures, vertices, displaylists, etc.
|
||||
* A good example would be lakitu or shells as they exist in every course.
|
||||
*/
|
||||
@@ -2114,6 +2115,7 @@ f32 D_0D009808[] = {
|
||||
0.0f, 0.0f, 0.0f
|
||||
};
|
||||
|
||||
// todo: file split?
|
||||
s32 unkPad = 0;
|
||||
|
||||
// Odometer speedometer
|
||||
|
||||
+33
-34
@@ -1126,7 +1126,7 @@ void render_bowsers_castle(struct UnkStruct_800DC5EC *arg0) {
|
||||
if (D_802B87BC > 255) {
|
||||
D_802B87BC = 0;
|
||||
}
|
||||
load_surface_map(&bowsers_castle_dls, arg0);
|
||||
load_surface_map(bowsers_castle_dls, arg0);
|
||||
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
@@ -1160,7 +1160,7 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPDisplayList(gDisplayListHead++, 0x07004E60);
|
||||
gSPDisplayList(gDisplayListHead++, 0x070069B0);
|
||||
|
||||
load_surface_map(&banshee_boardwalk_dls, arg0);
|
||||
load_surface_map(banshee_boardwalk_dls, arg0);
|
||||
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
@@ -1190,7 +1190,7 @@ void render_yoshi_valley(struct UnkStruct_800DC5EC *arg0) {
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
load_surface_map(&yoshi_valley_dls, arg0);
|
||||
load_surface_map(yoshi_valley_dls, arg0);
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
}
|
||||
|
||||
@@ -1208,7 +1208,7 @@ void render_frappe_snowland(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
load_surface_map(&frappe_snowland_dls, arg0);
|
||||
load_surface_map(frappe_snowland_dls, arg0);
|
||||
}
|
||||
|
||||
void render_koopa_troopa_beach(struct UnkStruct_800DC5EC *arg0) {
|
||||
@@ -1226,7 +1226,7 @@ void render_koopa_troopa_beach(struct UnkStruct_800DC5EC *arg0) {
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gSPDisplayList(gDisplayListHead++, 0x07009688);
|
||||
load_surface_map(&koopa_troopa_beach_dls, arg0);
|
||||
load_surface_map(koopa_troopa_beach_dls, arg0);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
@@ -1251,7 +1251,7 @@ void render_royal_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gSPDisplayList(gDisplayListHead++, 0x0700A648);
|
||||
|
||||
load_surface_map(&royal_raceway_dls, arg0);
|
||||
load_surface_map(royal_raceway_dls, arg0);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, 0x070011A8);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
@@ -1341,7 +1341,7 @@ void render_moo_moo_farm(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPDisplayList(gDisplayListHead++, 0x07005640);
|
||||
gSPFogPosition(gDisplayListHead++, D_802B87B0, D_802B87B4);
|
||||
|
||||
load_surface_map(&moo_moo_farm_dls, arg0);
|
||||
load_surface_map(moo_moo_farm_dls, arg0);
|
||||
|
||||
if ((temp_s0 < 14) && (temp_s0 > 10)) {
|
||||
if ((temp_s1 == 2) || (temp_s1 == 3) || (temp_s1 == 1))
|
||||
@@ -1404,7 +1404,7 @@ void render_toads_turnpike(struct UnkStruct_800DC5EC *arg0) {
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_PASS2);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2);
|
||||
|
||||
load_surface_map(&toads_turnpike_dls, arg0);
|
||||
load_surface_map(toads_turnpike_dls, arg0);
|
||||
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2);
|
||||
@@ -1431,7 +1431,7 @@ void render_kalimari_desert(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
load_surface_map(&kalimari_desert_dls, arg0);
|
||||
load_surface_map(kalimari_desert_dls, arg0);
|
||||
gSPDisplayList(gDisplayListHead++, 0x07001ED8);
|
||||
gSPDisplayList(gDisplayListHead++, 0x07001B18);
|
||||
gSPDisplayList(gDisplayListHead++, 0x07008330);
|
||||
@@ -1450,7 +1450,7 @@ void render_sherbet_land(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
load_surface_map(&sherbet_land_dls, arg0);
|
||||
load_surface_map(sherbet_land_dls, arg0);
|
||||
}
|
||||
|
||||
void render_rainbow_road(struct UnkStruct_800DC5EC *arg0) {
|
||||
@@ -1580,10 +1580,9 @@ void render_dks_jungle_parkway(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
load_surface_map(&dks_jungle_parkway_dls, arg0);
|
||||
load_surface_map(dks_jungle_parkway_dls, arg0);
|
||||
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
|
||||
}
|
||||
|
||||
void render_big_donut(struct UnkStruct_800DC5EC *arg0) {
|
||||
@@ -1758,14 +1757,14 @@ void func_80295BF8(s32 playerIndex) {
|
||||
}
|
||||
|
||||
void func_80295C6C(void) {
|
||||
gPrevLoadedAddress += ALIGNF(D_8015F588 * sizeof(mk64_surface_map_ram));
|
||||
gPrevLoadedAddress += ALIGN16(D_8015F588 * sizeof(mk64_surface_map_ram));
|
||||
D_8015F6E8 += 20;
|
||||
D_8015F6F0 += 20;
|
||||
D_8015F6EA += -20;
|
||||
D_8015F6F2 += -20;
|
||||
D_8015F6EE += -20;
|
||||
func_802AF314();
|
||||
gPrevLoadedAddress += ALIGNF(D_8015F58A * 2);
|
||||
gPrevLoadedAddress += ALIGN16(D_8015F58A * 2);
|
||||
}
|
||||
|
||||
UNUSED void func_80295D50(s16 arg0, s16 arg1) {
|
||||
@@ -1797,7 +1796,7 @@ void func_80295D88(void) {
|
||||
D_800DC5BC = 0;
|
||||
D_800DC5C8 = 0;
|
||||
switch (gCurrentCourseId) {
|
||||
case 0:
|
||||
case COURSE_MARIO_RACEWAY:
|
||||
func_802AF588(0x07001140);
|
||||
if (gScreenModeSelection == SCREEN_MODE_1P) {
|
||||
func_802AF588(0x070008E8);
|
||||
@@ -1808,7 +1807,7 @@ void func_80295D88(void) {
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 1:
|
||||
case COURSE_CHOCO_MOUNTAIN:
|
||||
D_800DC5BC = 1;
|
||||
D_801625EC = 255;
|
||||
D_801625F4 = 255;
|
||||
@@ -1830,13 +1829,13 @@ void func_80295D88(void) {
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -80.0f;
|
||||
break;
|
||||
case 2:
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
func_80290CAC(&D_060093D8);
|
||||
func_80295C6C();
|
||||
func_802AF8BC(0x07001350, 0x32, 0, 0, 0);
|
||||
D_8015F8E4 = -50.0f;
|
||||
break;
|
||||
case 3:
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
D_800DC5BC = 1;
|
||||
D_801625EC = 0;
|
||||
D_801625F4 = 0;
|
||||
@@ -1846,18 +1845,18 @@ void func_80295D88(void) {
|
||||
func_802AF8BC(0x07000878, 128, 0, 0, 0);
|
||||
D_8015F8E4 = -80.0f;
|
||||
break;
|
||||
case 4:
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
func_802B5D64(D_06016558, -0x38F0, 0x1C70, 1);
|
||||
func_80290CAC(D_06018240);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 5:
|
||||
case COURSE_FRAPPE_SNOWLAND:
|
||||
func_80290CAC(D_060079A0);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -50.0f;
|
||||
break;
|
||||
case 6:
|
||||
case COURSE_KOOPA_BEACH:
|
||||
func_80290CAC(D_06018FD8);
|
||||
func_80295C6C();
|
||||
func_802AF8BC(0x0700ADE0, -0x6A, 255, 255, 255);
|
||||
@@ -1865,22 +1864,22 @@ void func_80295D88(void) {
|
||||
func_802AF8BC(0x07009E70, -0x6A, 255, 255, 255);
|
||||
func_802AF8BC(0x07000358, -0x6A, 255, 255, 255);
|
||||
break;
|
||||
case 7:
|
||||
case COURSE_ROYAL_RACEWAY:
|
||||
func_80290CAC(D_0600DC28);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -60.0f;
|
||||
break;
|
||||
case 8:
|
||||
case COURSE_LUIGI_RACEWAY:
|
||||
func_80290CAC(D_0600FF28);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 9:
|
||||
case COURSE_MOO_MOO_FARM:
|
||||
func_80290CAC(D_060144B8);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 10:
|
||||
case COURSE_TOADS_TURNPIKE:
|
||||
D_801625EC = 43;
|
||||
D_801625F4 = 13;
|
||||
D_801625F0 = 4;
|
||||
@@ -1890,19 +1889,19 @@ void func_80295D88(void) {
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 11:
|
||||
case COURSE_KALAMARI_DESERT:
|
||||
func_80290CAC(D_06023070);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 12:
|
||||
case COURSE_SHERBET_LAND:
|
||||
func_80290CAC(D_06009C20);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -18.0f;
|
||||
func_802AF8BC(0x07001EB8, -0x4C, 255, 255, 255);
|
||||
func_802AF8BC(0x07002308, -0x6A, 255, 255, 255);
|
||||
break;
|
||||
case 13:
|
||||
case COURSE_RAINBOW_ROAD:
|
||||
D_800DC5C8 = 1;
|
||||
func_80290CAC(D_06016440);
|
||||
func_80295C6C();
|
||||
@@ -1914,7 +1913,7 @@ void func_80295D88(void) {
|
||||
func_802AF8BC(0x07001FB8, -0x6A, 255, 255, 255);
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
case COURSE_WARIO_STADIUM:
|
||||
func_80290CAC(D_0600CC38);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
@@ -1927,30 +1926,30 @@ void func_80295D88(void) {
|
||||
func_802AF8BC(0x07000DD0, 100, 255, 255, 255);
|
||||
func_802AF8BC(0x07000E48, 100, 255, 255, 255);
|
||||
break;
|
||||
case 15:
|
||||
case COURSE_BLOCK_FORT:
|
||||
func_802AF5AC(0x070015C0, 1);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 16:
|
||||
case COURSE_SKYSCRAPER:
|
||||
func_802AF5AC(0x07001110, 1);
|
||||
func_802AF5AC(0x07000258, 1);
|
||||
func_80295C6C();
|
||||
|
||||
D_8015F8E4 = -480.0f;
|
||||
break;
|
||||
case 17:
|
||||
case COURSE_DOUBLE_DECK:
|
||||
func_802AF5AC(0x07000738, 1);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case 18:
|
||||
case COURSE_DK_JUNGLE:
|
||||
func_80290CAC(D_06014338);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -475.0f;
|
||||
func_802AF8BC(0x07003FA8, 120, 255, 255, 255);
|
||||
break;
|
||||
case 19:
|
||||
case COURSE_BIG_DONUT:
|
||||
func_802AF5AC(0x07001018, 6);
|
||||
func_802AF5AC(0x07000450, 6);
|
||||
func_802AF5AC(0x07000AC0, 6);
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#ifndef RENDER_COURSES_H
|
||||
#define RENDER_COURSES_H
|
||||
|
||||
#define ALIGNF(x) (((x) + 0xF) & ~0xF)
|
||||
|
||||
struct Unk0CAC {
|
||||
s32 unk0;
|
||||
u8 unk4;
|
||||
@@ -74,7 +72,7 @@ extern s32 D_802B87BC;
|
||||
extern Gfx bowsers_castle_dls[];
|
||||
extern Gfx banshee_boardwalk_dls[];
|
||||
extern Gfx D_0600B278[];
|
||||
extern Gfx yoshi_valley_dls;
|
||||
extern Gfx yoshi_valley_dls[];
|
||||
extern u8 frappe_snowland_dls[];
|
||||
extern Gfx koopa_troopa_beach_dls[];
|
||||
extern Gfx royal_raceway_dls[];
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
/mio0
|
||||
/n64cksum
|
||||
/n64graphics
|
||||
/displaylist_packer
|
||||
/tkmk00
|
||||
/extract_data_for_mio
|
||||
|
||||
|
||||
+4
-1
@@ -1,10 +1,13 @@
|
||||
CC := gcc
|
||||
CFLAGS := -I . -Wall -Wextra -Wno-unused-parameter -pedantic -std=c99 -O2 -s
|
||||
PROGRAMS := mio0 n64graphics n64cksum tkmk00 extract_data_for_mio
|
||||
PROGRAMS := mio0 n64graphics displaylist_packer n64cksum tkmk00 extract_data_for_mio
|
||||
|
||||
n64graphics_SOURCES := n64graphics.c utils.c
|
||||
n64graphics_CFLAGS := -DN64GRAPHICS_STANDALONE
|
||||
|
||||
displaylist_packer_SOURCES := displaylist_packer.c
|
||||
displaylist_packer_CFLAGS := -Wno-unused-result
|
||||
|
||||
mio0_SOURCES := libmio0.c
|
||||
mio0_CFLAGS := -DMIO0_STANDALONE
|
||||
|
||||
|
||||
@@ -0,0 +1,270 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#define MAX_STRING_LENGTH 256
|
||||
#define MAX_STRING_OUTPUT 10000
|
||||
|
||||
// Compile using gcc -o tools/displaylist_packer tools/displaylist_packer.c
|
||||
// Run using ./displaylist_packer input.bin output.bin
|
||||
|
||||
void pack(FILE *input_file, FILE *output_file);
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
// Check if we have the correct number of arguments
|
||||
if (argc != 3) {
|
||||
printf("Usage: ./dl_unpack input.bin output.bin\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Open the input file
|
||||
FILE *input_file = fopen(argv[1], "rb");
|
||||
if (input_file == NULL) {
|
||||
printf("Failed to open input file: %s\n", argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Create the output file
|
||||
FILE *output_file = fopen(argv[2], "wb");
|
||||
if (output_file == NULL) {
|
||||
printf("Failed to create output file: %s\n", argv[2]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
pack(input_file, output_file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64_t swap_endian(uint64_t value) {
|
||||
uint64_t result = 0;
|
||||
int i;
|
||||
for (i = 0; i < 8; i++) {
|
||||
result = (result << 8) | ((value >> (i * 8)) & 0xFF);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
uint32_t compressB1(uint8_t a, uint8_t b, uint8_t c) {
|
||||
return (a / 2) | ((b / 2) << 5) | ((c / 2) << 10);
|
||||
}
|
||||
|
||||
#define ARG1(val) ((val) >> 48)
|
||||
#define ARG1WORD(val) ((val) >> 32)
|
||||
#define ARG2(val) ((val) >> 40)
|
||||
#define ARG2WORD(val) ((val) >> 32)
|
||||
#define OPCODE(val) (uint8_t)((val) >> 56)
|
||||
|
||||
void pack(FILE *input_file, FILE *output_file) {
|
||||
|
||||
// Initialize the string to an empty string
|
||||
|
||||
uint8_t p1;
|
||||
uint8_t p2;
|
||||
uint8_t p3;
|
||||
uint8_t p4;
|
||||
uint32_t p5;
|
||||
uint32_t p6;
|
||||
uint16_t p7;
|
||||
uint32_t i;
|
||||
uint64_t compare;
|
||||
|
||||
|
||||
// Read every u32 in the input file and concatenate a string based on the value
|
||||
uint64_t cmd;
|
||||
uint8_t opCode;
|
||||
uint32_t offset = 0;
|
||||
uint32_t count = 0;
|
||||
// Warning: Static variable size may result in overflow if input file is too large.
|
||||
// Solution: Increase array size.
|
||||
uint8_t data[50000];
|
||||
while (fread(&cmd, sizeof(uint64_t), 1, input_file) == 1) {
|
||||
cmd = swap_endian(cmd);
|
||||
opCode = OPCODE(cmd);
|
||||
//printf("%X \n", opCode);
|
||||
switch (opCode) {
|
||||
case 0xB9:
|
||||
p7 = (uint16_t) cmd;
|
||||
if (p7 == 0x2078) {
|
||||
data[count++] = 0x18;
|
||||
} else if (p7 == 0x3078) {
|
||||
data[count++] = 0x19;
|
||||
}
|
||||
break;
|
||||
case 0xBF:
|
||||
data[count++] = 0x29;
|
||||
p1 = (uint8_t) (cmd >> 16) / 2;
|
||||
p2 = (uint8_t) (cmd >> 8) / 2;
|
||||
p3 = (uint8_t) (cmd) / 2;
|
||||
|
||||
*(uint16_t*) (data + count) = (uint16_t) (p1 | (p2 << 5) | (p3 << 10));
|
||||
count++; count++;
|
||||
break;
|
||||
case 0x06:
|
||||
data[count++] = 0x2B;
|
||||
*(uint16_t*) (data + count) = (uint16_t)(((uint32_t)cmd) / 8);
|
||||
count++; count++;
|
||||
break;
|
||||
case 0xB1:
|
||||
data[count++] = 0x58;
|
||||
*(uint16_t*) (data + count) = compressB1(ARG1(cmd), ARG2(cmd), cmd >> 32);
|
||||
count++; count++;
|
||||
*(uint16_t*) (data + count) = compressB1(cmd >> 16, cmd >> 8, cmd);
|
||||
count++; count++;
|
||||
break;
|
||||
case 0x04:
|
||||
// Skip the opcode and read bytes 2/3 from the u64 (Byte 1 is the opcode 0x04).
|
||||
data[count++] = (uint8_t)(((((uint16_t)ARG1WORD(cmd)) + 1) / 0x410) + 0x32);
|
||||
// Read the right side of the u64 (as a u32).
|
||||
*(uint16_t*) (data + count) = (uint16_t)(((uint32_t)cmd - 0x04000000) / 16);
|
||||
count++; count++;
|
||||
break;
|
||||
case 0xFD:
|
||||
p1 = (uint32_t)(cmd - 0x05000000) >> 11;
|
||||
p2 = 0x00;
|
||||
p3 = 0x70;
|
||||
|
||||
p4 = (uint8_t)ARG1(cmd);
|
||||
|
||||
|
||||
fseek(input_file, 24, SEEK_CUR);
|
||||
fread(&cmd, sizeof(uint64_t), 1, input_file);
|
||||
cmd = swap_endian(cmd);
|
||||
|
||||
if (p4 == 0x70) {
|
||||
cmd |= 0x300000000;
|
||||
|
||||
}
|
||||
|
||||
if (cmd == 0xF3000000073FF100) {
|
||||
data[count++] = 0x20;
|
||||
} else if (cmd == 0xF3000000077FF080) {
|
||||
data[count++] = 0x21;
|
||||
} else if (cmd == 0xF3000000077FF100) {
|
||||
data[count++] = 0x22;
|
||||
} else if (cmd == 0xF3000003073FF100) {
|
||||
data[count++] = 0x23;
|
||||
} else if (cmd == 0xF3000003077FF080) {
|
||||
data[count++] = 0x24;
|
||||
} else if (cmd == 0xF3000003077FF100) {
|
||||
data[count++] = 0x25;
|
||||
} else {
|
||||
printf("Error: %s\n", "Unknown FD");
|
||||
}
|
||||
data[count++] = p1;
|
||||
data[count++] = p2;
|
||||
data[count++] = p3;
|
||||
break;
|
||||
case 0xE8:
|
||||
|
||||
// Read 0xF5
|
||||
fread(&cmd, sizeof(uint64_t), 1, input_file);
|
||||
cmd = swap_endian(cmd);
|
||||
p5 = ARG1WORD(cmd);
|
||||
|
||||
p1 = (((cmd >> 14) & 0xF) << 4) | ((cmd >> 18) & 0xF);
|
||||
p2 = (((cmd >> 4) & 0xF) << 4) | ((cmd >> 8) & 0xF);
|
||||
|
||||
// Read 0xF2
|
||||
fread(&cmd, sizeof(uint64_t), 1, input_file);
|
||||
cmd = swap_endian(cmd);
|
||||
p6 = (uint32_t)cmd;
|
||||
|
||||
compare = ((uint64_t) p5 << 32 ) | p6;
|
||||
|
||||
switch (compare) {
|
||||
case 0xF51011000007C07C:
|
||||
data[count++] = 0x2C;
|
||||
break;
|
||||
case 0xF51010000007C07C:
|
||||
data[count++] = 0x1A;
|
||||
break;
|
||||
case 0xF5102000000FC07C:
|
||||
data[count++] = 0x1B;
|
||||
break;
|
||||
case 0xF51010000007C0FC:
|
||||
data[count++] = 0x1C;
|
||||
break;
|
||||
case 0xF57010000007C07C:
|
||||
data[count++] = 0x1D;
|
||||
break;
|
||||
case 0xF5702000000FC07C:
|
||||
data[count++] = 0x1E;
|
||||
break;
|
||||
case 0xF57010000007C0FC:
|
||||
data[count++] = 0x1F;
|
||||
break;
|
||||
}
|
||||
|
||||
data[count++] = p2;
|
||||
|
||||
data[count++] = p1;
|
||||
break;
|
||||
case 0xBB:
|
||||
if ((uint16_t)cmd == 0x0001) {
|
||||
data[count++] = 0x27;
|
||||
} else if ((uint16_t)cmd == 0xFFFF) {
|
||||
data[count++] = 0x26;
|
||||
} else {
|
||||
printf("Error: %s\n", "Unknown BB");
|
||||
}
|
||||
break;
|
||||
case 0xB8:
|
||||
data[count++] = 0x2A;
|
||||
break;
|
||||
case 0xBE:
|
||||
data[count++] = 0x2D;
|
||||
break;
|
||||
case 0xD0:
|
||||
data[count++] = 0xDD;
|
||||
break;
|
||||
case 0xFC:
|
||||
p7 = (uint16_t)cmd;
|
||||
if (p7 == 0xF3F9) {
|
||||
data[count++] = 0x16;
|
||||
} else if (p7 == 0xFFFF) {
|
||||
data[count++] = 0x15;
|
||||
} else if (p7 == 0x793C) {
|
||||
data[count++] = 0x17;
|
||||
}
|
||||
//data[count++] = 0x53;
|
||||
break;
|
||||
case 0xB7:
|
||||
data[count++] = 0x56;
|
||||
break;
|
||||
case 0xB6:
|
||||
data[count++] = 0x57;
|
||||
break;
|
||||
case 0xFF:
|
||||
data[count++] = 0xFF;
|
||||
if (cmd) {
|
||||
p1 = ARG1(cmd);
|
||||
if (p1 <= 32) {
|
||||
for (i = 0; i < p1; i++) {
|
||||
data[count++] = 0x00;
|
||||
}
|
||||
}
|
||||
}
|
||||
goto eos; // end of switch
|
||||
break;
|
||||
default:
|
||||
printf("Error: Unknown Opcode: 0x%X\n", opCode);
|
||||
printf("Opcode written to file as 0xEE\n");
|
||||
data[count++] = 0xEE;
|
||||
break;
|
||||
}
|
||||
|
||||
offset += 4;
|
||||
}
|
||||
eos: ;
|
||||
|
||||
size_t num_elements_written = fwrite(data, sizeof(uint8_t), count, output_file);
|
||||
if (num_elements_written != count) {
|
||||
printf("Failed to write data to file.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Close the files and free the memory
|
||||
fclose(input_file);
|
||||
fclose(output_file);
|
||||
}
|
||||
+6
-10
@@ -590,6 +590,10 @@ int raw2ci(uint8_t *rawci, palette_t *pal, const uint8_t *raw, int raw_len, int
|
||||
pal->used = 0;
|
||||
memset16safe(pal->data, magicFiller, sizeof(pal->data) / sizeof(uint16_t));
|
||||
int ci_idx = 0;
|
||||
|
||||
pal->data[0] = 0;
|
||||
pal_add_color(pal, 0);
|
||||
|
||||
for (int i = 0; i < raw_len; i += sizeof(uint16_t)) {
|
||||
uint16_t val = read_u16_be(&raw[i]);
|
||||
int pal_idx = pal_add_color(pal, val);
|
||||
@@ -599,16 +603,7 @@ int raw2ci(uint8_t *rawci, palette_t *pal, const uint8_t *raw, int raw_len, int
|
||||
} else {
|
||||
switch (ci_depth) {
|
||||
case 8:
|
||||
// It appears some palettes have a default index of transparent/0.
|
||||
// This requires iterating the pal_idx unless the CI really does begin with 0.
|
||||
if (i == 0) {
|
||||
pal->data[0] = 0;
|
||||
if (val != 0) {
|
||||
rawci[ci_idx] = (uint8_t) ++pal_idx;
|
||||
break;
|
||||
}
|
||||
}
|
||||
rawci[ci_idx] = (uint8_t)pal_idx;
|
||||
rawci[ci_idx] = (uint8_t)pal_idx;
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
@@ -998,6 +993,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
raw16_size = w * h * config.pal_format.depth / 8;
|
||||
printf("%#x ", raw16_size);
|
||||
raw16 = malloc(raw16_size);
|
||||
if (!raw16) {
|
||||
ERROR("Error allocating %d bytes\n", raw16_size);
|
||||
|
||||
Reference in New Issue
Block a user