Initial commit

This commit is contained in:
n64 2020-10-14 21:13:33 -07:00
commit 1c84a90d5e
226 changed files with 411521 additions and 0 deletions

66
.gitignore vendored Normal file
View File

@ -0,0 +1,66 @@
# Object files
*.o
*.obj
*.elf
# Linker output
*.ilk
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
# Text editor remnants
*.swp
.vscode/*
# General project-specific ignores
__pycache__/*
doxygen/doxygen/*
/build/*
*.dump
*.mio0
*.z64
*.map
.assets-local.txt
# Assets. Generally ignored, but ones with "custom" in the name are fine.
/bin/*
/textures/**/*.png
/assets/**/*.bin
/music/**/*.m64
/sound/**/*.m64
/sound/**/*.aiff
!/textures/**/*custom*.png
!/textures/**/*custom*/**/*.png
!/sound/**/*custom*.m64
!/sound/**/*custom*/**/*.m64
!/sound/**/*custom*.aiff
!/sound/**/*custom*/**/*.aiff
!/assets/**/*custom*.bin
!/assets/**/*custom*/**/*.bin

28
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,28 @@
pipeline {
agent any
stages {
stage('Build Tools') {
steps {
sh 'make -j4 -C tools/'
}
}
stage('Extract Assets') {
steps {
sh 'ln -s "$ROMS_DIR/Mario Kart 64 (U) [!].z64" baserom.us.z64'
// verify no assets were committed to repo
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
sh '[ -z "$(find bin/ -name \'*.m64\' -or \'*.bin\')" ]'
sh './extract_assets.py us'
}
}
stage('Build U Source') {
steps {
sh 'make -j4 VERSION=us'
}
}
}
environment {
QEMU_IRIX = credentials('qemu-irix')
ROMS_DIR = credentials('roms')
}
}

237
Makefile Normal file
View File

@ -0,0 +1,237 @@
# Makefile to rebuild MK64 split image
### Default target ###
default: all
### Build Options ###
# These options can either be changed by modifying the makefile, or
# by building with 'make SETTING=value'. 'make clean' may be required.
# Version of the game to build
VERSION ?= us
# If COMPARE is 1, check the output sha1sum when building 'all'
COMPARE ?= 1
ifeq ($(VERSION),us)
VERSION_CFLAGS := -DVERSION_US
VERSION_ASFLAGS := --defsym VERSION_US=1
TARGET := mk64.us
endif
################ Target Executable and Sources ###############
# BUILD_DIR is location where all build artifacts are placed
BUILD_DIR_BASE := build
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)
# Directories containing source files
INCLUDE_DIRS := include
SRC_DIRS := src src/audio
ASM_DIRS := asm asm/audio data data/courses
TEXTURES_DIR = textures
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone)
################### Universal Dependencies ###################
# (This is a bit hacky, but a lot of rules implicitly depend
# on tools and assets, and we use directory globs further down
# in the makefile that we want should cover assets.)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(MAKECMDGOALS),distclean)
# Make sure assets exist
NOEXTRACT ?= 0
ifeq ($(NOEXTRACT),0)
DUMMY != ./extract_assets.py $(VERSION) >&2 || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to extract assets)
endif
endif
# Make tools if out of date
DUMMY != make -s -C tools >&2 || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to build tools)
endif
endif
endif
LD_SCRIPT = mk64.ld
MIO0_DIR = bin
# Files with GLOBAL_ASM blocks
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/*.c)
GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
# GLOBAL_ASM_DEP = $(BUILD_DIR)/src/audio/non_matching_dep
# Source code files
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
# Object files
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
$(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o))
# Automatic dependency files
DEP_FILES := $(O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
##################### Compiler Options #######################
IRIX_ROOT := tools/ido5.3_compiler
ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0)
CROSS := mips-linux-gnu-
else ifeq ($(shell type mips64-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0)
CROSS := mips64-linux-gnu-
else
CROSS := mips64-elf-
endif
# check that either QEMU_IRIX is set or qemu-irix package installed
ifndef QEMU_IRIX
QEMU_IRIX := $(shell which qemu-irix)
ifeq (, $(QEMU_IRIX))
$(error Please install qemu-irix package or set QEMU_IRIX env var to the full qemu-irix binary path)
endif
endif
AS := $(CROSS)as
CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc
CPP := cpp -P -Wno-trigraphs
LD := $(CROSS)ld
AR := $(CROSS)ar
OBJDUMP := $(CROSS)objdump
OBJCOPY := $(CROSS)objcopy
PYTHON := python3
MIPSISET := -mips2 -32
OPT_FLAGS := -O2
TARGET_CFLAGS := -nostdinc -I include/libc -DTARGET_N64
CC_CFLAGS := -fno-builtin
INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I src -I .
# TODO: Seperate F3D declares into version flags if needed.
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)
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) $(MIPSISET) $(GRUCODE_CFLAGS)
OBJCOPYFLAGS = --pad-to=0xC00000 --gap-fill=0xFF
LDFLAGS = -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/$(TARGET).map --no-check-sections
ifeq ($(shell getconf LONG_BIT), 32)
# Work around memory allocation bug in QEMU
export QEMU_GUEST_BASE := 1
else
# Ensure that gcc treats the code as 32-bit
CC_CHECK += -m32
endif
####################### Other Tools #########################
# N64 tools
TOOLS_DIR = tools
MIO0TOOL = $(TOOLS_DIR)/mio0
N64CKSUM = $(TOOLS_DIR)/n64cksum
N64GRAPHICS = $(TOOLS_DIR)/n64graphics
EMULATOR = mupen64plus
EMU_FLAGS = --noosd
LOADER = loader64
LOADER_FLAGS = -vwf
SHA1SUM = sha1sum
######################## Targets #############################
default: all
# file dependencies generated by splitter
MAKEFILE_SPLIT = Makefile.split
include $(MAKEFILE_SPLIT)
all: $(BUILD_DIR)/$(TARGET).z64
ifeq ($(COMPARE),1)
@$(SHA1SUM) -c $(TARGET).sha1
endif
clean:
$(RM) -r $(BUILD_DIR)
distclean:
$(RM) -r $(BUILD_DIR_BASE)
./extract_assets.py --clean
make -C tools clean
# Make sure build directory exists before compiling anything
DUMMY != mkdir -p $(ALL_DIRS)
##################### Texture Generation #####################
# RGBA32, RGBA16, IA16, IA8, IA4, IA1, I8, I4
$(BUILD_DIR)/%: %.png
$(N64GRAPHICS) -i $@ -g $< -f $(lastword $(subst ., ,$@))
$(BUILD_DIR)/textures/%.mio0: $(BUILD_DIR)/textures/%
$(MIO0TOOL) -c $< $@
#################### Compressed Segments #####################
$(BUILD_DIR)/%.mio0: %.bin
$(MIO0TOOL) -c $< $@
$(BUILD_DIR)/%.mio0.o: $(BUILD_DIR)/%.mio0.s
$(AS) $(ASFLAGS) -o $@ $<
$(BUILD_DIR)/%.mio0.s: $(BUILD_DIR)/%.mio0
printf ".section .data\n\n.incbin \"$<\"\n" > $@
$(BUILD_DIR)/%.o: %.c
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(CC) -c $(CFLAGS) -o $@ $<
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(CC) -c $(CFLAGS) -o $@ $<
$(BUILD_DIR)/%.o: %.s $(MIO0_FILES) $(RAW_TEXTURE_FILES)
$(AS) $(ASFLAGS) -o $@ $<
$(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
$(CPP) $(VERSION_CFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
$(BUILD_DIR)/$(TARGET).elf: $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) undefined_syms.txt
$(LD) $(LDFLAGS) -o $@ $(O_FILES)
$(BUILD_DIR)/$(TARGET).z64: $(BUILD_DIR)/$(TARGET).elf
$(OBJCOPY) $(OBJCOPYFLAGS) $< $(@:.z64=.bin) -O binary
$(N64CKSUM) $(@:.z64=.bin) $@
$(BUILD_DIR)/$(TARGET).hex: $(TARGET).z64
xxd $< > $@
$(BUILD_DIR)/$(TARGET).objdump: $(BUILD_DIR)/$(TARGET).elf
$(OBJDUMP) -D $< > $@
test: $(TARGET).z64
$(EMULATOR) $(EMU_FLAGS) $<
load: $(TARGET).z64
$(LOADER) $(LOADER_FLAGS) $<
.PHONY: all clean distclean default diff test load
.SECONDARY:
-include $(DEP_FILES)
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true

160
Makefile.split Normal file
View File

@ -0,0 +1,160 @@
MUSIC_DIR = music
COURSE_NAMES := \
mario_raceway \
choco_mountain \
bowsers_castle \
banshee_boardwalk \
yoshi_valley \
frappe_snowland \
koopa_troopa_beach \
royal_raceway \
luigi_raceway \
moo_moo_farm \
toads_turnpike \
kalimari_desert \
sherbet_land \
rainbow_road \
wario_stadium \
block_fort \
skyscraper \
double_deck \
dks_jungle_parkway \
big_donut
COURSE_DL_NAMES := $(addprefix course_,$(addsuffix _dl,$(COURSE_NAMES)))
COURSE_DL_MIO0_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .mio0,$(COURSE_DL_NAMES)))
COURSE_DL_MIO0_OBJ_FILES := $(COURSE_DL_MIO0_FILES:.mio0=.mio0.o)
COURSE_VERTEX_NAMES := $(addprefix course_,$(addsuffix _vertex,$(COURSE_NAMES)))
COURSE_VERTEX_MIO0_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .mio0,$(COURSE_VERTEX_NAMES)))
COURSE_MIO0_OBJ_FILES := $(COURSE_DL_MIO0_OBJ_FILES)
OTHER_DATA_MIO0_NAMES := \
data_821D10 \
data_825800
OTHER_DATA_MIO0_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .mio0,$(OTHER_DATA_MIO0_NAMES)))
TEXTURE_DATA_MIO0_NAMES := \
common_textures \
texture_68EB50 \
texture_68EDA0 \
texture_68EFF0 \
texture_68F248 \
texture_68F4A8 \
texture_68F700 \
texture_68F96C \
texture_68FBCC \
texture_68FE20 \
texture_69004C \
texture_690284 \
texture_6904C4 \
texture_690708 \
texture_690960 \
texture_690BBC \
texture_690DF8 \
texture_6913CC \
texture_691714 \
texture_691AAC \
texture_691D98 \
texture_692088 \
texture_6923D8 \
texture_6925E8 \
texture_692888 \
texture_692CC0 \
texture_69333C \
texture_693790 \
texture_693BC4 \
texture_693F48 \
texture_69429C \
texture_694628 \
texture_694990 \
texture_694CAC \
texture_694F7C \
texture_695268 \
texture_6955AC \
texture_6958C0 \
texture_695BA4 \
texture_695EE4 \
texture_6961E0 \
texture_696488 \
texture_6967FC \
texture_696BAC \
texture_696E3C \
texture_697138 \
texture_69743C \
texture_6977F0 \
texture_697B10 \
texture_697E80 \
texture_69811C \
texture_698378 \
texture_69859C \
texture_6987FC \
texture_698A40 \
texture_698C60 \
texture_698E38 \
texture_698FF4 \
texture_6991F8 \
texture_699500 \
texture_699E24 \
texture_69A154 \
texture_69A4C0 \
texture_69F158 \
texture_69F390 \
texture_69F5E4 \
texture_69F9C0 \
texture_69FD6C \
texture_69FF30 \
texture_6A010C \
texture_6A0350 \
texture_ghosts
TEXTURE_DATA_MIO0_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .mio0,$(TEXTURE_DATA_MIO0_NAMES)))
STANDALONE_TEXTURE_MIO0_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.mio0,$(wildcard $(TEXTURES_DIR)/standalone/*.png)))
RAW_TEXTURE_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(wildcard $(TEXTURES_DIR)/raw/*.png)))
KARTS_DIR := bin/karts
ALL_KARTS_DIRS := $(wildcard $(KARTS_DIR)/*)
KART_TEXTURE_MIO0_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.bin,%.mio0,$(wildcard $(KARTS_DIR)/*/*.bin)))
MIO0_FILES := $(COURSE_VERTEX_MIO0_FILES) $(OTHER_DATA_MIO0_FILES) $(TEXTURE_DATA_MIO0_FILES) $(STANDALONE_TEXTURE_MIO0_FILES) $(KART_TEXTURE_MIO0_FILES)
MUSIC_FILES = \
$(MUSIC_DIR)/seq_00.m64 \
$(MUSIC_DIR)/seq_01.m64 \
$(MUSIC_DIR)/seq_02.m64 \
$(MUSIC_DIR)/seq_03.m64 \
$(MUSIC_DIR)/seq_04.m64 \
$(MUSIC_DIR)/seq_05.m64 \
$(MUSIC_DIR)/seq_06.m64 \
$(MUSIC_DIR)/seq_07.m64 \
$(MUSIC_DIR)/seq_08.m64 \
$(MUSIC_DIR)/seq_09.m64 \
$(MUSIC_DIR)/seq_0A.m64 \
$(MUSIC_DIR)/seq_0B.m64 \
$(MUSIC_DIR)/seq_0C.m64 \
$(MUSIC_DIR)/seq_0D.m64 \
$(MUSIC_DIR)/seq_0E.m64 \
$(MUSIC_DIR)/seq_0F.m64 \
$(MUSIC_DIR)/seq_10.m64 \
$(MUSIC_DIR)/seq_11.m64 \
$(MUSIC_DIR)/seq_12.m64 \
$(MUSIC_DIR)/seq_13.m64 \
$(MUSIC_DIR)/seq_14.m64 \
$(MUSIC_DIR)/seq_15.m64 \
$(MUSIC_DIR)/seq_16.m64 \
$(MUSIC_DIR)/seq_17.m64 \
$(MUSIC_DIR)/seq_18.m64 \
$(MUSIC_DIR)/seq_19.m64 \
$(MUSIC_DIR)/seq_1A.m64 \
$(MUSIC_DIR)/seq_1B.m64 \
$(MUSIC_DIR)/seq_1C.m64 \
$(MUSIC_DIR)/seq_1D.m64 \
$(MUSIC_DIR)/seq_1E.m64 \
$(MUSIC_DIR)/seq_1F.m64 \
$(MUSIC_DIR)/seq_20.m64 \
$(MUSIC_DIR)/seq_21.m64

39
README.md Normal file
View File

@ -0,0 +1,39 @@
# Mario Kart 64
This repo contains a work in progress decompilation of Mario Kart 64 (U).
It builds the following ROMs:
* mk64.us.z64 `sha1: 579c48e211ae952530ffc8738709f078d5dd215e`
Integration of asset extraction is an ongoing process.
## Dependencies
The build system has the following package requirements:
binutils-mips >= 2.27
python3 >= 3.6
libaudiofile
qemu-irix
Debian / Ubuntu
sudo apt install build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev
Download latest package from qemu-irix Releases
sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb
(Optional) Clone https://github.com/n64decomp/qemu-irix and follow the install instructions in the README.
## Building
Run the following commands after pulling:
* make -C tools
* make
## Contributing
Pull requests are welcome.

781
asm/audio/effects.s Normal file
View File

@ -0,0 +1,781 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_800BDE50
/* 0BEA50 800BDE50 8C820000 */ lw $v0, ($a0)
/* 0BEA54 800BDE54 00003025 */ move $a2, $zero
/* 0BEA58 800BDE58 00803825 */ move $a3, $a0
/* 0BEA5C 800BDE5C 00027A40 */ sll $t7, $v0, 9
/* 0BEA60 800BDE60 05E00003 */ bltz $t7, .L800BDE70
/* 0BEA64 800BDE64 24090010 */ li $t1, 16
/* 0BEA68 800BDE68 50A00016 */ beql $a1, $zero, .L800BDEC4
/* 0BEA6C 800BDE6C 00027280 */ sll $t6, $v0, 0xa
.L800BDE70:
/* 0BEA70 800BDE70 C4840024 */ lwc1 $f4, 0x24($a0)
/* 0BEA74 800BDE74 C4860020 */ lwc1 $f6, 0x20($a0)
/* 0BEA78 800BDE78 8C820044 */ lw $v0, 0x44($a0)
/* 0BEA7C 800BDE7C 46062202 */ mul.s $f8, $f4, $f6
/* 0BEA80 800BDE80 C44A002C */ lwc1 $f10, 0x2c($v0)
/* 0BEA84 800BDE84 8C580000 */ lw $t8, ($v0)
/* 0BEA88 800BDE88 00185080 */ sll $t2, $t8, 2
/* 0BEA8C 800BDE8C 460A4002 */ mul.s $f0, $f8, $f10
/* 0BEA90 800BDE90 05410008 */ bgez $t2, .L800BDEB4
/* 0BEA94 800BDE94 00000000 */ nop
/* 0BEA98 800BDE98 908B0003 */ lbu $t3, 3($a0)
/* 0BEA9C 800BDE9C 316C0020 */ andi $t4, $t3, 0x20
/* 0BEAA0 800BDEA0 11800004 */ beqz $t4, .L800BDEB4
/* 0BEAA4 800BDEA4 00000000 */ nop
/* 0BEAA8 800BDEA8 C4500024 */ lwc1 $f16, 0x24($v0)
/* 0BEAAC 800BDEAC 46008002 */ mul.s $f0, $f16, $f0
/* 0BEAB0 800BDEB0 00000000 */ nop
.L800BDEB4:
/* 0BEAB4 800BDEB4 46000482 */ mul.s $f18, $f0, $f0
/* 0BEAB8 800BDEB8 8C820000 */ lw $v0, ($a0)
/* 0BEABC 800BDEBC E492002C */ swc1 $f18, 0x2c($a0)
/* 0BEAC0 800BDEC0 00027280 */ sll $t6, $v0, 0xa
.L800BDEC4:
/* 0BEAC4 800BDEC4 05C10007 */ bgez $t6, .L800BDEE4
/* 0BEAC8 800BDEC8 24080080 */ li $t0, 128
/* 0BEACC 800BDECC 908F0009 */ lbu $t7, 9($a0)
/* 0BEAD0 800BDED0 9098000A */ lbu $t8, 0xa($a0)
/* 0BEAD4 800BDED4 01F80019 */ multu $t7, $t8
/* 0BEAD8 800BDED8 0000C812 */ mflo $t9
/* 0BEADC 800BDEDC AC990028 */ sw $t9, 0x28($a0)
/* 0BEAE0 800BDEE0 00000000 */ nop
.L800BDEE4:
/* 0BEAE4 800BDEE4 8CE30048 */ lw $v1, 0x48($a3)
/* 0BEAE8 800BDEE8 24C60004 */ addiu $a2, $a2, 4
/* 0BEAEC 800BDEEC 1060003E */ beqz $v1, .L800BDFE8
/* 0BEAF0 800BDEF0 00000000 */ nop
/* 0BEAF4 800BDEF4 8C620000 */ lw $v0, ($v1)
/* 0BEAF8 800BDEF8 000257C2 */ srl $t2, $v0, 0x1f
/* 0BEAFC 800BDEFC 1140003A */ beqz $t2, .L800BDFE8
/* 0BEB00 800BDF00 00000000 */ nop
/* 0BEB04 800BDF04 8C6B0040 */ lw $t3, 0x40($v1)
/* 0BEB08 800BDF08 00026940 */ sll $t5, $v0, 5
/* 0BEB0C 800BDF0C 11600036 */ beqz $t3, .L800BDFE8
/* 0BEB10 800BDF10 00000000 */ nop
/* 0BEB14 800BDF14 05A30017 */ bgezl $t5, .L800BDF74
/* 0BEB18 800BDF18 80980001 */ lb $t8, 1($a0)
/* 0BEB1C 800BDF1C C4640024 */ lwc1 $f4, 0x24($v1)
/* 0BEB20 800BDF20 C4860030 */ lwc1 $f6, 0x30($a0)
/* 0BEB24 800BDF24 C46A0028 */ lwc1 $f10, 0x28($v1)
/* 0BEB28 800BDF28 906E0005 */ lbu $t6, 5($v1)
/* 0BEB2C 800BDF2C 46062202 */ mul.s $f8, $f4, $f6
/* 0BEB30 800BDF30 906D0000 */ lbu $t5, ($v1)
/* 0BEB34 800BDF34 E4680030 */ swc1 $f8, 0x30($v1)
/* 0BEB38 800BDF38 C490002C */ lwc1 $f16, 0x2c($a0)
/* 0BEB3C 800BDF3C 46105482 */ mul.s $f18, $f10, $f16
/* 0BEB40 800BDF40 E472002C */ swc1 $f18, 0x2c($v1)
/* 0BEB44 800BDF44 908F000A */ lbu $t7, 0xa($a0)
/* 0BEB48 800BDF48 8C8A0028 */ lw $t2, 0x28($a0)
/* 0BEB4C 800BDF4C 010FC023 */ subu $t8, $t0, $t7
/* 0BEB50 800BDF50 01D80019 */ multu $t6, $t8
/* 0BEB54 800BDF54 31AFFFFB */ andi $t7, $t5, 0xfffb
/* 0BEB58 800BDF58 A06F0000 */ sb $t7, ($v1)
/* 0BEB5C 800BDF5C 0000C812 */ mflo $t9
/* 0BEB60 800BDF60 01595821 */ addu $t3, $t2, $t9
/* 0BEB64 800BDF64 000B61C3 */ sra $t4, $t3, 7
/* 0BEB68 800BDF68 1000001F */ b .L800BDFE8
/* 0BEB6C 800BDF6C A06C0006 */ sb $t4, 6($v1)
/* 0BEB70 800BDF70 80980001 */ lb $t8, 1($a0)
.L800BDF74:
/* 0BEB74 800BDF74 07030006 */ bgezl $t8, .L800BDF90
/* 0BEB78 800BDF78 8C820000 */ lw $v0, ($a0)
/* 0BEB7C 800BDF7C C4640024 */ lwc1 $f4, 0x24($v1)
/* 0BEB80 800BDF80 C4860030 */ lwc1 $f6, 0x30($a0)
/* 0BEB84 800BDF84 46062202 */ mul.s $f8, $f4, $f6
/* 0BEB88 800BDF88 E4680030 */ swc1 $f8, 0x30($v1)
/* 0BEB8C 800BDF8C 8C820000 */ lw $v0, ($a0)
.L800BDF90:
/* 0BEB90 800BDF90 0002CA40 */ sll $t9, $v0, 9
/* 0BEB94 800BDF94 07220004 */ bltzl $t9, .L800BDFA8
/* 0BEB98 800BDF98 C46A0028 */ lwc1 $f10, 0x28($v1)
/* 0BEB9C 800BDF9C 50A00007 */ beql $a1, $zero, .L800BDFBC
/* 0BEBA0 800BDFA0 00026280 */ sll $t4, $v0, 0xa
/* 0BEBA4 800BDFA4 C46A0028 */ lwc1 $f10, 0x28($v1)
.L800BDFA8:
/* 0BEBA8 800BDFA8 C490002C */ lwc1 $f16, 0x2c($a0)
/* 0BEBAC 800BDFAC 46105482 */ mul.s $f18, $f10, $f16
/* 0BEBB0 800BDFB0 E472002C */ swc1 $f18, 0x2c($v1)
/* 0BEBB4 800BDFB4 8C820000 */ lw $v0, ($a0)
/* 0BEBB8 800BDFB8 00026280 */ sll $t4, $v0, 0xa
.L800BDFBC:
/* 0BEBBC 800BDFBC 0581000A */ bgez $t4, .L800BDFE8
/* 0BEBC0 800BDFC0 00000000 */ nop
/* 0BEBC4 800BDFC4 908F000A */ lbu $t7, 0xa($a0)
/* 0BEBC8 800BDFC8 906D0005 */ lbu $t5, 5($v1)
/* 0BEBCC 800BDFCC 8C8A0028 */ lw $t2, 0x28($a0)
/* 0BEBD0 800BDFD0 010F7023 */ subu $t6, $t0, $t7
/* 0BEBD4 800BDFD4 01AE0019 */ multu $t5, $t6
/* 0BEBD8 800BDFD8 0000C012 */ mflo $t8
/* 0BEBDC 800BDFDC 0158C821 */ addu $t9, $t2, $t8
/* 0BEBE0 800BDFE0 001959C3 */ sra $t3, $t9, 7
/* 0BEBE4 800BDFE4 A06B0006 */ sb $t3, 6($v1)
.L800BDFE8:
/* 0BEBE8 800BDFE8 14C9FFBE */ bne $a2, $t1, .L800BDEE4
/* 0BEBEC 800BDFEC 24E70004 */ addiu $a3, $a3, 4
/* 0BEBF0 800BDFF0 03E00008 */ jr $ra
/* 0BEBF4 800BDFF4 A0800001 */ sb $zero, 1($a0)
glabel func_800BDFF8
/* 0BEBF8 800BDFF8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0BEBFC 800BDFFC AFBF002C */ sw $ra, 0x2c($sp)
/* 0BEC00 800BE000 AFB50028 */ sw $s5, 0x28($sp)
/* 0BEC04 800BE004 AFB40024 */ sw $s4, 0x24($sp)
/* 0BEC08 800BE008 AFB30020 */ sw $s3, 0x20($sp)
/* 0BEC0C 800BE00C AFB2001C */ sw $s2, 0x1c($sp)
/* 0BEC10 800BE010 AFB10018 */ sw $s1, 0x18($sp)
/* 0BEC14 800BE014 AFB00014 */ sw $s0, 0x14($sp)
/* 0BEC18 800BE018 948E0010 */ lhu $t6, 0x10($a0)
/* 0BEC1C 800BE01C 3C15803B */ lui $s5, %hi(D_803B5EF0) # $s5, 0x803b
/* 0BEC20 800BE020 00809825 */ move $s3, $a0
/* 0BEC24 800BE024 11C00025 */ beqz $t6, .L800BE0BC
/* 0BEC28 800BE028 26B55EF0 */ addiu $s5, %lo(D_803B5EF0) # addiu $s5, $s5, 0x5ef0
/* 0BEC2C 800BE02C C4840018 */ lwc1 $f4, 0x18($a0)
/* 0BEC30 800BE030 C486001C */ lwc1 $f6, 0x1c($a0)
/* 0BEC34 800BE034 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0BEC38 800BE038 44811000 */ mtc1 $at, $f2
/* 0BEC3C 800BE03C 46062200 */ add.s $f8, $f4, $f6
/* 0BEC40 800BE040 90980000 */ lbu $t8, ($a0)
/* 0BEC44 800BE044 E4880018 */ swc1 $f8, 0x18($a0)
/* 0BEC48 800BE048 C4800018 */ lwc1 $f0, 0x18($a0)
/* 0BEC4C 800BE04C 37190004 */ ori $t9, $t8, 4
/* 0BEC50 800BE050 A0990000 */ sb $t9, ($a0)
/* 0BEC54 800BE054 4600103C */ c.lt.s $f2, $f0
/* 0BEC58 800BE058 00000000 */ nop
/* 0BEC5C 800BE05C 45020004 */ bc1fl .L800BE070
/* 0BEC60 800BE060 44801000 */ mtc1 $zero, $f2
/* 0BEC64 800BE064 E4820018 */ swc1 $f2, 0x18($a0)
/* 0BEC68 800BE068 C4800018 */ lwc1 $f0, 0x18($a0)
/* 0BEC6C 800BE06C 44801000 */ mtc1 $zero, $f2
.L800BE070:
/* 0BEC70 800BE070 00000000 */ nop
/* 0BEC74 800BE074 4602003C */ c.lt.s $f0, $f2
/* 0BEC78 800BE078 00000000 */ nop
/* 0BEC7C 800BE07C 45020003 */ bc1fl .L800BE08C
/* 0BEC80 800BE080 96680010 */ lhu $t0, 0x10($s3)
/* 0BEC84 800BE084 E6620018 */ swc1 $f2, 0x18($s3)
/* 0BEC88 800BE088 96680010 */ lhu $t0, 0x10($s3)
.L800BE08C:
/* 0BEC8C 800BE08C 2509FFFF */ addiu $t1, $t0, -1
/* 0BEC90 800BE090 312AFFFF */ andi $t2, $t1, 0xffff
/* 0BEC94 800BE094 15400009 */ bnez $t2, .L800BE0BC
/* 0BEC98 800BE098 A6690010 */ sh $t1, 0x10($s3)
/* 0BEC9C 800BE09C 926B0001 */ lbu $t3, 1($s3)
/* 0BECA0 800BE0A0 24010002 */ li $at, 2
/* 0BECA4 800BE0A4 55610006 */ bnel $t3, $at, .L800BE0C0
/* 0BECA8 800BE0A8 8E6C0000 */ lw $t4, ($s3)
/* 0BECAC 800BE0AC 0C02FBCB */ jal func_800BEF2C
/* 0BECB0 800BE0B0 02602025 */ move $a0, $s3
/* 0BECB4 800BE0B4 10000020 */ b .L800BE138
/* 0BECB8 800BE0B8 8FBF002C */ lw $ra, 0x2c($sp)
.L800BE0BC:
/* 0BECBC 800BE0BC 8E6C0000 */ lw $t4, ($s3)
.L800BE0C0:
/* 0BECC0 800BE0C0 00008025 */ move $s0, $zero
/* 0BECC4 800BE0C4 02608825 */ move $s1, $s3
/* 0BECC8 800BE0C8 000C7140 */ sll $t6, $t4, 5
/* 0BECCC 800BE0CC 05C10005 */ bgez $t6, .L800BE0E4
/* 0BECD0 800BE0D0 24140040 */ li $s4, 64
/* 0BECD4 800BE0D4 C66A0018 */ lwc1 $f10, 0x18($s3)
/* 0BECD8 800BE0D8 C6700028 */ lwc1 $f16, 0x28($s3)
/* 0BECDC 800BE0DC 46105482 */ mul.s $f18, $f10, $f16
/* 0BECE0 800BE0E0 E672002C */ swc1 $f18, 0x2c($s3)
.L800BE0E4:
/* 0BECE4 800BE0E4 24120001 */ li $s2, 1
.L800BE0E8:
/* 0BECE8 800BE0E8 8E240030 */ lw $a0, 0x30($s1)
/* 0BECEC 800BE0EC 02A47826 */ xor $t7, $s5, $a0
/* 0BECF0 800BE0F0 000F782B */ sltu $t7, $zero, $t7
/* 0BECF4 800BE0F4 564F000A */ bnel $s2, $t7, .L800BE120
/* 0BECF8 800BE0F8 26100004 */ addiu $s0, $s0, 4
/* 0BECFC 800BE0FC 8C980000 */ lw $t8, ($a0)
/* 0BED00 800BE100 0018CFC2 */ srl $t9, $t8, 0x1f
/* 0BED04 800BE104 56590006 */ bnel $s2, $t9, .L800BE120
/* 0BED08 800BE108 26100004 */ addiu $s0, $s0, 4
/* 0BED0C 800BE10C 8E650000 */ lw $a1, ($s3)
/* 0BED10 800BE110 00054140 */ sll $t0, $a1, 5
/* 0BED14 800BE114 0C02F794 */ jal func_800BDE50
/* 0BED18 800BE118 00082FC2 */ srl $a1, $t0, 0x1f
/* 0BED1C 800BE11C 26100004 */ addiu $s0, $s0, 4
.L800BE120:
/* 0BED20 800BE120 1614FFF1 */ bne $s0, $s4, .L800BE0E8
/* 0BED24 800BE124 26310004 */ addiu $s1, $s1, 4
/* 0BED28 800BE128 926A0000 */ lbu $t2, ($s3)
/* 0BED2C 800BE12C 314BFFFB */ andi $t3, $t2, 0xfffb
/* 0BED30 800BE130 A26B0000 */ sb $t3, ($s3)
/* 0BED34 800BE134 8FBF002C */ lw $ra, 0x2c($sp)
.L800BE138:
/* 0BED38 800BE138 8FB00014 */ lw $s0, 0x14($sp)
/* 0BED3C 800BE13C 8FB10018 */ lw $s1, 0x18($sp)
/* 0BED40 800BE140 8FB2001C */ lw $s2, 0x1c($sp)
/* 0BED44 800BE144 8FB30020 */ lw $s3, 0x20($sp)
/* 0BED48 800BE148 8FB40024 */ lw $s4, 0x24($sp)
/* 0BED4C 800BE14C 8FB50028 */ lw $s5, 0x28($sp)
/* 0BED50 800BE150 03E00008 */ jr $ra
/* 0BED54 800BE154 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800BE158
/* 0BED58 800BE158 C4840004 */ lwc1 $f4, 4($a0)
/* 0BED5C 800BE15C C4860008 */ lwc1 $f6, 8($a0)
/* 0BED60 800BE160 24020001 */ li $v0, 1
/* 0BED64 800BE164 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
/* 0BED68 800BE168 46062200 */ add.s $f8, $f4, $f6
/* 0BED6C 800BE16C E4880004 */ swc1 $f8, 4($a0)
/* 0BED70 800BE170 444EF800 */ cfc1 $t6, $31
/* 0BED74 800BE174 44C2F800 */ ctc1 $v0, $31
/* 0BED78 800BE178 C48A0004 */ lwc1 $f10, 4($a0)
/* 0BED7C 800BE17C 46005424 */ cvt.w.s $f16, $f10
/* 0BED80 800BE180 4442F800 */ cfc1 $v0, $31
/* 0BED84 800BE184 00000000 */ nop
/* 0BED88 800BE188 30420078 */ andi $v0, $v0, 0x78
/* 0BED8C 800BE18C 50400013 */ beql $v0, $zero, .L800BE1DC
/* 0BED90 800BE190 44028000 */ mfc1 $v0, $f16
/* 0BED94 800BE194 44818000 */ mtc1 $at, $f16
/* 0BED98 800BE198 24020001 */ li $v0, 1
/* 0BED9C 800BE19C 46105401 */ sub.s $f16, $f10, $f16
/* 0BEDA0 800BE1A0 44C2F800 */ ctc1 $v0, $31
/* 0BEDA4 800BE1A4 00000000 */ nop
/* 0BEDA8 800BE1A8 46008424 */ cvt.w.s $f16, $f16
/* 0BEDAC 800BE1AC 4442F800 */ cfc1 $v0, $31
/* 0BEDB0 800BE1B0 00000000 */ nop
/* 0BEDB4 800BE1B4 30420078 */ andi $v0, $v0, 0x78
/* 0BEDB8 800BE1B8 14400005 */ bnez $v0, .L800BE1D0
/* 0BEDBC 800BE1BC 00000000 */ nop
/* 0BEDC0 800BE1C0 44028000 */ mfc1 $v0, $f16
/* 0BEDC4 800BE1C4 3C018000 */ lui $at, 0x8000
/* 0BEDC8 800BE1C8 10000007 */ b .L800BE1E8
/* 0BEDCC 800BE1CC 00411025 */ or $v0, $v0, $at
.L800BE1D0:
/* 0BEDD0 800BE1D0 10000005 */ b .L800BE1E8
/* 0BEDD4 800BE1D4 2402FFFF */ li $v0, -1
/* 0BEDD8 800BE1D8 44028000 */ mfc1 $v0, $f16
.L800BE1DC:
/* 0BEDDC 800BE1DC 00000000 */ nop
/* 0BEDE0 800BE1E0 0440FFFB */ bltz $v0, .L800BE1D0
/* 0BEDE4 800BE1E4 00000000 */ nop
.L800BE1E8:
/* 0BEDE8 800BE1E8 44CEF800 */ ctc1 $t6, $31
/* 0BEDEC 800BE1EC 2C410080 */ sltiu $at, $v0, 0x80
/* 0BEDF0 800BE1F0 54200003 */ bnel $at, $zero, .L800BE200
/* 0BEDF4 800BE1F4 3C013F80 */ lui $at, 0x3f80
/* 0BEDF8 800BE1F8 2402007F */ li $v0, 127
/* 0BEDFC 800BE1FC 3C013F80 */ li $at, 0x3F800000 # 1.000000
.L800BE200:
/* 0BEE00 800BE200 44816000 */ mtc1 $at, $f12
/* 0BEE04 800BE204 3C01800F */ lui $at, %hi(gPitchBendFrequencyScale + 0x200)
/* 0BEE08 800BE208 00027880 */ sll $t7, $v0, 2
/* 0BEE0C 800BE20C 002F0821 */ addu $at, $at, $t7
/* 0BEE10 800BE210 C4325E20 */ lwc1 $f18, %lo(gPitchBendFrequencyScale + 0x200)($at)
/* 0BEE14 800BE214 C486000C */ lwc1 $f6, 0xc($a0)
/* 0BEE18 800BE218 460C9101 */ sub.s $f4, $f18, $f12
/* 0BEE1C 800BE21C 46062202 */ mul.s $f8, $f4, $f6
/* 0BEE20 800BE220 460C4080 */ add.s $f2, $f8, $f12
/* 0BEE24 800BE224 03E00008 */ jr $ra
/* 0BEE28 800BE228 46001006 */ mov.s $f0, $f2
glabel func_800BE22C
/* 0BEE2C 800BE22C C4840010 */ lwc1 $f4, 0x10($a0)
/* 0BEE30 800BE230 8C8E0004 */ lw $t6, 4($a0)
/* 0BEE34 800BE234 8C8A0008 */ lw $t2, 8($a0)
/* 0BEE38 800BE238 4600218D */ trunc.w.s $f6, $f4
/* 0BEE3C 800BE23C 44183000 */ mfc1 $t8, $f6
/* 0BEE40 800BE240 00000000 */ nop
/* 0BEE44 800BE244 01D8C821 */ addu $t9, $t6, $t8
/* 0BEE48 800BE248 00194282 */ srl $t0, $t9, 0xa
/* 0BEE4C 800BE24C 3109003F */ andi $t1, $t0, 0x3f
/* 0BEE50 800BE250 00095840 */ sll $t3, $t1, 1
/* 0BEE54 800BE254 AC990004 */ sw $t9, 4($a0)
/* 0BEE58 800BE258 014B6021 */ addu $t4, $t2, $t3
/* 0BEE5C 800BE25C 85820000 */ lh $v0, ($t4)
/* 0BEE60 800BE260 00026A03 */ sra $t5, $v0, 8
/* 0BEE64 800BE264 000D7C00 */ sll $t7, $t5, 0x10
/* 0BEE68 800BE268 03E00008 */ jr $ra
/* 0BEE6C 800BE26C 000F1403 */ sra $v0, $t7, 0x10
glabel func_800BE270
/* 0BEE70 800BE270 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0BEE74 800BE274 AFBF0014 */ sw $ra, 0x14($sp)
/* 0BEE78 800BE278 9482001A */ lhu $v0, 0x1a($a0)
/* 0BEE7C 800BE27C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0BEE80 800BE280 10400004 */ beqz $v0, .L800BE294
/* 0BEE84 800BE284 244EFFFF */ addiu $t6, $v0, -1
/* 0BEE88 800BE288 44810000 */ mtc1 $at, $f0
/* 0BEE8C 800BE28C 10000072 */ b .L800BE458
/* 0BEE90 800BE290 A48E001A */ sh $t6, 0x1a($a0)
.L800BE294:
/* 0BEE94 800BE294 94820018 */ lhu $v0, 0x18($a0)
/* 0BEE98 800BE298 24010001 */ li $at, 1
/* 0BEE9C 800BE29C 5040001C */ beql $v0, $zero, .L800BE310
/* 0BEEA0 800BE2A0 C48A000C */ lwc1 $f10, 0xc($a0)
/* 0BEEA4 800BE2A4 14410009 */ bne $v0, $at, .L800BE2CC
/* 0BEEA8 800BE2A8 00401825 */ move $v1, $v0
/* 0BEEAC 800BE2AC 8C8F0000 */ lw $t7, ($a0)
/* 0BEEB0 800BE2B0 94820018 */ lhu $v0, 0x18($a0)
/* 0BEEB4 800BE2B4 95F80012 */ lhu $t8, 0x12($t7)
/* 0BEEB8 800BE2B8 44982000 */ mtc1 $t8, $f4
/* 0BEEBC 800BE2BC 00000000 */ nop
/* 0BEEC0 800BE2C0 468021A0 */ cvt.s.w $f6, $f4
/* 0BEEC4 800BE2C4 1000000D */ b .L800BE2FC
/* 0BEEC8 800BE2C8 E486000C */ swc1 $f6, 0xc($a0)
.L800BE2CC:
/* 0BEECC 800BE2CC 8C990000 */ lw $t9, ($a0)
/* 0BEED0 800BE2D0 44839000 */ mtc1 $v1, $f18
/* 0BEED4 800BE2D4 C480000C */ lwc1 $f0, 0xc($a0)
/* 0BEED8 800BE2D8 97280012 */ lhu $t0, 0x12($t9)
/* 0BEEDC 800BE2DC 46809120 */ cvt.s.w $f4, $f18
/* 0BEEE0 800BE2E0 44884000 */ mtc1 $t0, $f8
/* 0BEEE4 800BE2E4 00000000 */ nop
/* 0BEEE8 800BE2E8 468042A0 */ cvt.s.w $f10, $f8
/* 0BEEEC 800BE2EC 46005401 */ sub.s $f16, $f10, $f0
/* 0BEEF0 800BE2F0 46048183 */ div.s $f6, $f16, $f4
/* 0BEEF4 800BE2F4 46060200 */ add.s $f8, $f0, $f6
/* 0BEEF8 800BE2F8 E488000C */ swc1 $f8, 0xc($a0)
.L800BE2FC:
/* 0BEEFC 800BE2FC 2449FFFF */ addiu $t1, $v0, -1
/* 0BEF00 800BE300 A4890018 */ sh $t1, 0x18($a0)
/* 0BEF04 800BE304 10000011 */ b .L800BE34C
/* 0BEF08 800BE308 8C830000 */ lw $v1, ($a0)
/* 0BEF0C 800BE30C C48A000C */ lwc1 $f10, 0xc($a0)
.L800BE310:
/* 0BEF10 800BE310 8C830000 */ lw $v1, ($a0)
/* 0BEF14 800BE314 4600548D */ trunc.w.s $f18, $f10
/* 0BEF18 800BE318 946C0012 */ lhu $t4, 0x12($v1)
/* 0BEF1C 800BE31C 440B9000 */ mfc1 $t3, $f18
/* 0BEF20 800BE320 00000000 */ nop
/* 0BEF24 800BE324 516C000A */ beql $t3, $t4, .L800BE350
/* 0BEF28 800BE328 94820016 */ lhu $v0, 0x16($a0)
/* 0BEF2C 800BE32C 94620016 */ lhu $v0, 0x16($v1)
/* 0BEF30 800BE330 14400006 */ bnez $v0, .L800BE34C
/* 0BEF34 800BE334 A4820018 */ sh $v0, 0x18($a0)
/* 0BEF38 800BE338 946D0012 */ lhu $t5, 0x12($v1)
/* 0BEF3C 800BE33C 448D8000 */ mtc1 $t5, $f16
/* 0BEF40 800BE340 00000000 */ nop
/* 0BEF44 800BE344 46808120 */ cvt.s.w $f4, $f16
/* 0BEF48 800BE348 E484000C */ swc1 $f4, 0xc($a0)
.L800BE34C:
/* 0BEF4C 800BE34C 94820016 */ lhu $v0, 0x16($a0)
.L800BE350:
/* 0BEF50 800BE350 24010001 */ li $at, 1
/* 0BEF54 800BE354 50400018 */ beql $v0, $zero, .L800BE3B8
/* 0BEF58 800BE358 C4920010 */ lwc1 $f18, 0x10($a0)
/* 0BEF5C 800BE35C 14410008 */ bne $v0, $at, .L800BE380
/* 0BEF60 800BE360 00402825 */ move $a1, $v0
/* 0BEF64 800BE364 946E0010 */ lhu $t6, 0x10($v1)
/* 0BEF68 800BE368 94820016 */ lhu $v0, 0x16($a0)
/* 0BEF6C 800BE36C 448E3000 */ mtc1 $t6, $f6
/* 0BEF70 800BE370 00000000 */ nop
/* 0BEF74 800BE374 46803220 */ cvt.s.w $f8, $f6
/* 0BEF78 800BE378 1000000B */ b .L800BE3A8
/* 0BEF7C 800BE37C E4880010 */ swc1 $f8, 0x10($a0)
.L800BE380:
/* 0BEF80 800BE380 946F0010 */ lhu $t7, 0x10($v1)
/* 0BEF84 800BE384 44852000 */ mtc1 $a1, $f4
/* 0BEF88 800BE388 C4800010 */ lwc1 $f0, 0x10($a0)
/* 0BEF8C 800BE38C 448F5000 */ mtc1 $t7, $f10
/* 0BEF90 800BE390 468021A0 */ cvt.s.w $f6, $f4
/* 0BEF94 800BE394 468054A0 */ cvt.s.w $f18, $f10
/* 0BEF98 800BE398 46009401 */ sub.s $f16, $f18, $f0
/* 0BEF9C 800BE39C 46068203 */ div.s $f8, $f16, $f6
/* 0BEFA0 800BE3A0 46080280 */ add.s $f10, $f0, $f8
/* 0BEFA4 800BE3A4 E48A0010 */ swc1 $f10, 0x10($a0)
.L800BE3A8:
/* 0BEFA8 800BE3A8 2458FFFF */ addiu $t8, $v0, -1
/* 0BEFAC 800BE3AC 10000010 */ b .L800BE3F0
/* 0BEFB0 800BE3B0 A4980016 */ sh $t8, 0x16($a0)
/* 0BEFB4 800BE3B4 C4920010 */ lwc1 $f18, 0x10($a0)
.L800BE3B8:
/* 0BEFB8 800BE3B8 94690010 */ lhu $t1, 0x10($v1)
/* 0BEFBC 800BE3BC 4600910D */ trunc.w.s $f4, $f18
/* 0BEFC0 800BE3C0 44082000 */ mfc1 $t0, $f4
/* 0BEFC4 800BE3C4 00000000 */ nop
/* 0BEFC8 800BE3C8 5109000A */ beql $t0, $t1, .L800BE3F4
/* 0BEFCC 800BE3CC 44804000 */ mtc1 $zero, $f8
/* 0BEFD0 800BE3D0 94620014 */ lhu $v0, 0x14($v1)
/* 0BEFD4 800BE3D4 14400006 */ bnez $v0, .L800BE3F0
/* 0BEFD8 800BE3D8 A4820016 */ sh $v0, 0x16($a0)
/* 0BEFDC 800BE3DC 946A0010 */ lhu $t2, 0x10($v1)
/* 0BEFE0 800BE3E0 448A8000 */ mtc1 $t2, $f16
/* 0BEFE4 800BE3E4 00000000 */ nop
/* 0BEFE8 800BE3E8 468081A0 */ cvt.s.w $f6, $f16
/* 0BEFEC 800BE3EC E4860010 */ swc1 $f6, 0x10($a0)
.L800BE3F0:
/* 0BEFF0 800BE3F0 44804000 */ mtc1 $zero, $f8
.L800BE3F4:
/* 0BEFF4 800BE3F4 C48A000C */ lwc1 $f10, 0xc($a0)
/* 0BEFF8 800BE3F8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0BEFFC 800BE3FC 460A4032 */ c.eq.s $f8, $f10
/* 0BF000 800BE400 00000000 */ nop
/* 0BF004 800BE404 45000004 */ bc1f .L800BE418
/* 0BF008 800BE408 00000000 */ nop
/* 0BF00C 800BE40C 44810000 */ mtc1 $at, $f0
/* 0BF010 800BE410 10000012 */ b .L800BE45C
/* 0BF014 800BE414 8FBF0014 */ lw $ra, 0x14($sp)
.L800BE418:
/* 0BF018 800BE418 0C02F88B */ jal func_800BE22C
/* 0BF01C 800BE41C AFA40018 */ sw $a0, 0x18($sp)
/* 0BF020 800BE420 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0BF024 800BE424 44817000 */ mtc1 $at, $f14
/* 0BF028 800BE428 8FA40018 */ lw $a0, 0x18($sp)
/* 0BF02C 800BE42C 3C013980 */ li $at, 0x39800000 # 0.000244
/* 0BF030 800BE430 44812000 */ mtc1 $at, $f4
/* 0BF034 800BE434 C492000C */ lwc1 $f18, 0xc($a0)
/* 0BF038 800BE438 3C01800F */ lui $at, %hi(gPitchBendFrequencyScale + 0x200)
/* 0BF03C 800BE43C 00025880 */ sll $t3, $v0, 2
/* 0BF040 800BE440 002B0821 */ addu $at, $at, $t3
/* 0BF044 800BE444 46049082 */ mul.s $f2, $f18, $f4
/* 0BF048 800BE448 C4305E20 */ lwc1 $f16, %lo(gPitchBendFrequencyScale + 0x200)($at)
/* 0BF04C 800BE44C 460E8181 */ sub.s $f6, $f16, $f14
/* 0BF050 800BE450 46023202 */ mul.s $f8, $f6, $f2
/* 0BF054 800BE454 460E4000 */ add.s $f0, $f8, $f14
.L800BE458:
/* 0BF058 800BE458 8FBF0014 */ lw $ra, 0x14($sp)
.L800BE45C:
/* 0BF05C 800BE45C 27BD0018 */ addiu $sp, $sp, 0x18
/* 0BF060 800BE460 03E00008 */ jr $ra
/* 0BF064 800BE464 00000000 */ nop
glabel func_800BE468
/* 0BF068 800BE468 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0BF06C 800BE46C AFBF0014 */ sw $ra, 0x14($sp)
/* 0BF070 800BE470 908E007C */ lbu $t6, 0x7c($a0)
/* 0BF074 800BE474 00802825 */ move $a1, $a0
/* 0BF078 800BE478 2484007C */ addiu $a0, $a0, 0x7c
/* 0BF07C 800BE47C 51C00006 */ beql $t6, $zero, .L800BE498
/* 0BF080 800BE480 90AF00A0 */ lbu $t7, 0xa0($a1)
/* 0BF084 800BE484 0C02F856 */ jal func_800BE158
/* 0BF088 800BE488 AFA50018 */ sw $a1, 0x18($sp)
/* 0BF08C 800BE48C 8FA50018 */ lw $a1, 0x18($sp)
/* 0BF090 800BE490 E4A00038 */ swc1 $f0, 0x38($a1)
/* 0BF094 800BE494 90AF00A0 */ lbu $t7, 0xa0($a1)
.L800BE498:
/* 0BF098 800BE498 51E0000B */ beql $t7, $zero, .L800BE4C8
/* 0BF09C 800BE49C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0BF0A0 800BE4A0 8CB80044 */ lw $t8, 0x44($a1)
/* 0BF0A4 800BE4A4 2401FFFF */ li $at, -1
/* 0BF0A8 800BE4A8 24A4008C */ addiu $a0, $a1, 0x8c
/* 0BF0AC 800BE4AC 53010006 */ beql $t8, $at, .L800BE4C8
/* 0BF0B0 800BE4B0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0BF0B4 800BE4B4 0C02F89C */ jal func_800BE270
/* 0BF0B8 800BE4B8 AFA50018 */ sw $a1, 0x18($sp)
/* 0BF0BC 800BE4BC 8FA50018 */ lw $a1, 0x18($sp)
/* 0BF0C0 800BE4C0 E4A0003C */ swc1 $f0, 0x3c($a1)
/* 0BF0C4 800BE4C4 8FBF0014 */ lw $ra, 0x14($sp)
.L800BE4C8:
/* 0BF0C8 800BE4C8 27BD0018 */ addiu $sp, $sp, 0x18
/* 0BF0CC 800BE4CC 03E00008 */ jr $ra
/* 0BF0D0 800BE4D0 00000000 */ nop
glabel func_800BE4D4
/* 0BF0D4 800BE4D4 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0BF0D8 800BE4D8 44810000 */ mtc1 $at, $f0
/* 0BF0DC 800BE4DC 240E0001 */ li $t6, 1
/* 0BF0E0 800BE4E0 A08E00A0 */ sb $t6, 0xa0($a0)
/* 0BF0E4 800BE4E4 AC800090 */ sw $zero, 0x90($a0)
/* 0BF0E8 800BE4E8 3C0F800F */ lui $t7, %hi(gWaveSamples + 8) # $t7, 0x800f
/* 0BF0EC 800BE4EC E480003C */ swc1 $f0, 0x3c($a0)
/* 0BF0F0 800BE4F0 E4800038 */ swc1 $f0, 0x38($a0)
/* 0BF0F4 800BE4F4 8DEF5C08 */ lw $t7, %lo(gWaveSamples + 8)($t7)
/* 0BF0F8 800BE4F8 8C980044 */ lw $t8, 0x44($a0)
/* 0BF0FC 800BE4FC 2483008C */ addiu $v1, $a0, 0x8c
/* 0BF100 800BE500 AC8F0094 */ sw $t7, 0x94($a0)
/* 0BF104 800BE504 8F19004C */ lw $t9, 0x4c($t8)
/* 0BF108 800BE508 AC99008C */ sw $t9, 0x8c($a0)
/* 0BF10C 800BE50C 97220016 */ lhu $v0, 0x16($t9)
/* 0BF110 800BE510 14400009 */ bnez $v0, .L800BE538
/* 0BF114 800BE514 A48200A4 */ sh $v0, 0xa4($a0)
/* 0BF118 800BE518 2483008C */ addiu $v1, $a0, 0x8c
/* 0BF11C 800BE51C 8C650000 */ lw $a1, ($v1)
/* 0BF120 800BE520 94A90012 */ lhu $t1, 0x12($a1)
/* 0BF124 800BE524 44892000 */ mtc1 $t1, $f4
/* 0BF128 800BE528 00000000 */ nop
/* 0BF12C 800BE52C 468021A0 */ cvt.s.w $f6, $f4
/* 0BF130 800BE530 10000007 */ b .L800BE550
/* 0BF134 800BE534 E466000C */ swc1 $f6, 0xc($v1)
.L800BE538:
/* 0BF138 800BE538 8C650000 */ lw $a1, ($v1)
/* 0BF13C 800BE53C 94AA000E */ lhu $t2, 0xe($a1)
/* 0BF140 800BE540 448A4000 */ mtc1 $t2, $f8
/* 0BF144 800BE544 00000000 */ nop
/* 0BF148 800BE548 468042A0 */ cvt.s.w $f10, $f8
/* 0BF14C 800BE54C E46A000C */ swc1 $f10, 0xc($v1)
.L800BE550:
/* 0BF150 800BE550 94A20014 */ lhu $v0, 0x14($a1)
/* 0BF154 800BE554 14400007 */ bnez $v0, .L800BE574
/* 0BF158 800BE558 A4620016 */ sh $v0, 0x16($v1)
/* 0BF15C 800BE55C 94AB0010 */ lhu $t3, 0x10($a1)
/* 0BF160 800BE560 448B8000 */ mtc1 $t3, $f16
/* 0BF164 800BE564 00000000 */ nop
/* 0BF168 800BE568 468084A0 */ cvt.s.w $f18, $f16
/* 0BF16C 800BE56C 10000006 */ b .L800BE588
/* 0BF170 800BE570 E4720010 */ swc1 $f18, 0x10($v1)
.L800BE574:
/* 0BF174 800BE574 94AC000C */ lhu $t4, 0xc($a1)
/* 0BF178 800BE578 448C2000 */ mtc1 $t4, $f4
/* 0BF17C 800BE57C 00000000 */ nop
/* 0BF180 800BE580 468021A0 */ cvt.s.w $f6, $f4
/* 0BF184 800BE584 E4660010 */ swc1 $f6, 0x10($v1)
.L800BE588:
/* 0BF188 800BE588 94AD0018 */ lhu $t5, 0x18($a1)
/* 0BF18C 800BE58C 24820030 */ addiu $v0, $a0, 0x30
/* 0BF190 800BE590 A46D001A */ sh $t5, 0x1a($v1)
/* 0BF194 800BE594 8C4E0014 */ lw $t6, 0x14($v0)
/* 0BF198 800BE598 8DC10008 */ lw $at, 8($t6)
/* 0BF19C 800BE59C AC41004C */ sw $at, 0x4c($v0)
/* 0BF1A0 800BE5A0 8DD8000C */ lw $t8, 0xc($t6)
/* 0BF1A4 800BE5A4 AC580050 */ sw $t8, 0x50($v0)
/* 0BF1A8 800BE5A8 8DC10010 */ lw $at, 0x10($t6)
/* 0BF1AC 800BE5AC AC410054 */ sw $at, 0x54($v0)
/* 0BF1B0 800BE5B0 8DD80014 */ lw $t8, 0x14($t6)
/* 0BF1B4 800BE5B4 03E00008 */ jr $ra
/* 0BF1B8 800BE5B8 AC580058 */ sw $t8, 0x58($v0)
glabel func_800BE5BC
/* 0BF1BC 800BE5BC AFA60008 */ sw $a2, 8($sp)
/* 0BF1C0 800BE5C0 44800000 */ mtc1 $zero, $f0
/* 0BF1C4 800BE5C4 A0800000 */ sb $zero, ($a0)
/* 0BF1C8 800BE5C8 A0800001 */ sb $zero, 1($a0)
/* 0BF1CC 800BE5CC A4800004 */ sh $zero, 4($a0)
/* 0BF1D0 800BE5D0 AC850020 */ sw $a1, 0x20($a0)
/* 0BF1D4 800BE5D4 E4800008 */ swc1 $f0, 8($a0)
/* 0BF1D8 800BE5D8 03E00008 */ jr $ra
/* 0BF1DC 800BE5DC E4800014 */ swc1 $f0, 0x14($a0)
glabel func_800BE5E0
/* 0BF1E0 800BE5E0 90830001 */ lbu $v1, 1($a0)
/* 0BF1E4 800BE5E4 90820000 */ lbu $v0, ($a0)
/* 0BF1E8 800BE5E8 2C610009 */ sltiu $at, $v1, 9
/* 0BF1EC 800BE5EC 1020009D */ beqz $at, .L800BE864
/* 0BF1F0 800BE5F0 00602825 */ move $a1, $v1
/* 0BF1F4 800BE5F4 00037080 */ sll $t6, $v1, 2
/* 0BF1F8 800BE5F8 3C01800F */ lui $at, %hi(D_800F2EE0)
/* 0BF1FC 800BE5FC 002E0821 */ addu $at, $at, $t6
/* 0BF200 800BE600 8C2E2EE0 */ lw $t6, %lo(D_800F2EE0)($at)
/* 0BF204 800BE604 01C00008 */ jr $t6
/* 0BF208 800BE608 00000000 */ nop
glabel L800BE60C
/* 0BF20C 800BE60C 44800000 */ mtc1 $zero, $f0
/* 0BF210 800BE610 03E00008 */ jr $ra
/* 0BF214 800BE614 00000000 */ nop
glabel L800BE618
/* 0BF218 800BE618 304F0040 */ andi $t7, $v0, 0x40
/* 0BF21C 800BE61C 11E00003 */ beqz $t7, .L800BE62C
/* 0BF220 800BE620 24180005 */ li $t8, 5
/* 0BF224 800BE624 1000008F */ b .L800BE864
/* 0BF228 800BE628 A0980001 */ sb $t8, 1($a0)
.L800BE62C:
glabel L800BE62C
/* 0BF22C 800BE62C 24190003 */ li $t9, 3
/* 0BF230 800BE630 A4800002 */ sh $zero, 2($a0)
/* 0BF234 800BE634 A0990001 */ sb $t9, 1($a0)
.L800BE638:
glabel L800BE638
/* 0BF238 800BE638 84890002 */ lh $t1, 2($a0)
/* 0BF23C 800BE63C 8C880020 */ lw $t0, 0x20($a0)
/* 0BF240 800BE640 2401FFFD */ li $at, -3
/* 0BF244 800BE644 00095080 */ sll $t2, $t1, 2
/* 0BF248 800BE648 010A1821 */ addu $v1, $t0, $t2
/* 0BF24C 800BE64C 846B0000 */ lh $t3, ($v1)
/* 0BF250 800BE650 A48B0004 */ sh $t3, 4($a0)
/* 0BF254 800BE654 84860004 */ lh $a2, 4($a0)
/* 0BF258 800BE658 10C10010 */ beq $a2, $at, .L800BE69C
/* 0BF25C 800BE65C 00C02825 */ move $a1, $a2
/* 0BF260 800BE660 2401FFFE */ li $at, -2
/* 0BF264 800BE664 10C1000A */ beq $a2, $at, .L800BE690
/* 0BF268 800BE668 2401FFFF */ li $at, -1
/* 0BF26C 800BE66C 50C10006 */ beql $a2, $at, .L800BE688
/* 0BF270 800BE670 240C0005 */ li $t4, 5
/* 0BF274 800BE674 14C0000C */ bnez $a2, .L800BE6A8
/* 0BF278 800BE678 28C10004 */ slti $at, $a2, 4
/* 0BF27C 800BE67C 10000041 */ b .L800BE784
/* 0BF280 800BE680 A0800001 */ sb $zero, 1($a0)
/* 0BF284 800BE684 240C0005 */ li $t4, 5
.L800BE688:
/* 0BF288 800BE688 1000003E */ b .L800BE784
/* 0BF28C 800BE68C A08C0001 */ sb $t4, 1($a0)
.L800BE690:
/* 0BF290 800BE690 846D0002 */ lh $t5, 2($v1)
/* 0BF294 800BE694 1000FFE8 */ b .L800BE638
/* 0BF298 800BE698 A48D0002 */ sh $t5, 2($a0)
.L800BE69C:
/* 0BF29C 800BE69C 240E0001 */ li $t6, 1
/* 0BF2A0 800BE6A0 10000038 */ b .L800BE784
/* 0BF2A4 800BE6A4 A08E0001 */ sb $t6, 1($a0)
.L800BE6A8:
/* 0BF2A8 800BE6A8 14200019 */ bnez $at, .L800BE710
/* 0BF2AC 800BE6AC 3C03803B */ lui $v1, %hi(D_803B7088) # $v1, 0x803b
/* 0BF2B0 800BE6B0 24637088 */ addiu $v1, %lo(D_803B7088) # addiu $v1, $v1, 0x7088
/* 0BF2B4 800BE6B4 846F000C */ lh $t7, 0xc($v1)
/* 0BF2B8 800BE6B8 84790000 */ lh $t9, ($v1)
/* 0BF2BC 800BE6BC 00CF0019 */ multu $a2, $t7
/* 0BF2C0 800BE6C0 0000C012 */ mflo $t8
/* 0BF2C4 800BE6C4 00000000 */ nop
/* 0BF2C8 800BE6C8 00000000 */ nop
/* 0BF2CC 800BE6CC 0319001A */ div $zero, $t8, $t9
/* 0BF2D0 800BE6D0 17200002 */ bnez $t9, .L800BE6DC
/* 0BF2D4 800BE6D4 00000000 */ nop
/* 0BF2D8 800BE6D8 0007000D */ break 7
.L800BE6DC:
/* 0BF2DC 800BE6DC 2401FFFF */ li $at, -1
/* 0BF2E0 800BE6E0 17210004 */ bne $t9, $at, .L800BE6F4
/* 0BF2E4 800BE6E4 3C018000 */ lui $at, 0x8000
/* 0BF2E8 800BE6E8 17010002 */ bne $t8, $at, .L800BE6F4
/* 0BF2EC 800BE6EC 00000000 */ nop
/* 0BF2F0 800BE6F0 0006000D */ break 6
.L800BE6F4:
/* 0BF2F4 800BE6F4 00004812 */ mflo $t1
/* 0BF2F8 800BE6F8 05210003 */ bgez $t1, .L800BE708
/* 0BF2FC 800BE6FC 00094083 */ sra $t0, $t1, 2
/* 0BF300 800BE700 25210003 */ addiu $at, $t1, 3
/* 0BF304 800BE704 00014083 */ sra $t0, $at, 2
.L800BE708:
/* 0BF308 800BE708 A4880004 */ sh $t0, 4($a0)
/* 0BF30C 800BE70C 84860004 */ lh $a2, 4($a0)
.L800BE710:
/* 0BF310 800BE710 14C00003 */ bnez $a2, .L800BE720
/* 0BF314 800BE714 240A0001 */ li $t2, 1
/* 0BF318 800BE718 A48A0004 */ sh $t2, 4($a0)
/* 0BF31C 800BE71C 84860004 */ lh $a2, 4($a0)
.L800BE720:
/* 0BF320 800BE720 84830002 */ lh $v1, 2($a0)
/* 0BF324 800BE724 8C8B0020 */ lw $t3, 0x20($a0)
/* 0BF328 800BE728 3C01800F */ lui $at, %hi(D_800F2F04) # $at, 0x800f
/* 0BF32C 800BE72C 00036080 */ sll $t4, $v1, 2
/* 0BF330 800BE730 016C6821 */ addu $t5, $t3, $t4
/* 0BF334 800BE734 85AE0002 */ lh $t6, 2($t5)
/* 0BF338 800BE738 C4282F04 */ lwc1 $f8, %lo(D_800F2F04)($at)
/* 0BF33C 800BE73C 240F0004 */ li $t7, 4
/* 0BF340 800BE740 448E2000 */ mtc1 $t6, $f4
/* 0BF344 800BE744 24780001 */ addiu $t8, $v1, 1
/* 0BF348 800BE748 A08F0001 */ sb $t7, 1($a0)
/* 0BF34C 800BE74C 468021A0 */ cvt.s.w $f6, $f4
/* 0BF350 800BE750 C4840014 */ lwc1 $f4, 0x14($a0)
/* 0BF354 800BE754 A4980002 */ sh $t8, 2($a0)
/* 0BF358 800BE758 46083283 */ div.s $f10, $f6, $f8
/* 0BF35C 800BE75C 44864000 */ mtc1 $a2, $f8
/* 0BF360 800BE760 E48A0018 */ swc1 $f10, 0x18($a0)
/* 0BF364 800BE764 C4800018 */ lwc1 $f0, 0x18($a0)
/* 0BF368 800BE768 468042A0 */ cvt.s.w $f10, $f8
/* 0BF36C 800BE76C 46000402 */ mul.s $f16, $f0, $f0
/* 0BF370 800BE770 E4900018 */ swc1 $f16, 0x18($a0)
/* 0BF374 800BE774 C4920018 */ lwc1 $f18, 0x18($a0)
/* 0BF378 800BE778 46049181 */ sub.s $f6, $f18, $f4
/* 0BF37C 800BE77C 460A3403 */ div.s $f16, $f6, $f10
/* 0BF380 800BE780 E490000C */ swc1 $f16, 0xc($a0)
.L800BE784:
/* 0BF384 800BE784 90990001 */ lbu $t9, 1($a0)
/* 0BF388 800BE788 24010004 */ li $at, 4
/* 0BF38C 800BE78C 57210036 */ bnel $t9, $at, .L800BE868
/* 0BF390 800BE790 44806000 */ mtc1 $zero, $f12
glabel L800BE794
/* 0BF394 800BE794 84890004 */ lh $t1, 4($a0)
/* 0BF398 800BE798 C4920014 */ lwc1 $f18, 0x14($a0)
/* 0BF39C 800BE79C C484000C */ lwc1 $f4, 0xc($a0)
/* 0BF3A0 800BE7A0 2528FFFF */ addiu $t0, $t1, -1
/* 0BF3A4 800BE7A4 A4880004 */ sh $t0, 4($a0)
/* 0BF3A8 800BE7A8 46049200 */ add.s $f8, $f18, $f4
/* 0BF3AC 800BE7AC 848A0004 */ lh $t2, 4($a0)
/* 0BF3B0 800BE7B0 240B0003 */ li $t3, 3
/* 0BF3B4 800BE7B4 1D40002B */ bgtz $t2, .L800BE864
/* 0BF3B8 800BE7B8 E4880014 */ swc1 $f8, 0x14($a0)
/* 0BF3BC 800BE7BC 10000029 */ b .L800BE864
/* 0BF3C0 800BE7C0 A08B0001 */ sb $t3, 1($a0)
glabel L800BE7C4
/* 0BF3C4 800BE7C4 44806000 */ mtc1 $zero, $f12
/* 0BF3C8 800BE7C8 C4800008 */ lwc1 $f0, 8($a0)
/* 0BF3CC 800BE7CC C4860014 */ lwc1 $f6, 0x14($a0)
/* 0BF3D0 800BE7D0 C48A0010 */ lwc1 $f10, 0x10($a0)
/* 0BF3D4 800BE7D4 46006032 */ c.eq.s $f12, $f0
/* 0BF3D8 800BE7D8 24010006 */ li $at, 6
/* 0BF3DC 800BE7DC 460A3401 */ sub.s $f16, $f6, $f10
/* 0BF3E0 800BE7E0 4501000E */ bc1t .L800BE81C
/* 0BF3E4 800BE7E4 E4900014 */ swc1 $f16, 0x14($a0)
/* 0BF3E8 800BE7E8 14A1000C */ bne $a1, $at, .L800BE81C
/* 0BF3EC 800BE7EC 00000000 */ nop
/* 0BF3F0 800BE7F0 C4920014 */ lwc1 $f18, 0x14($a0)
/* 0BF3F4 800BE7F4 240C0080 */ li $t4, 128
/* 0BF3F8 800BE7F8 240D0008 */ li $t5, 8
/* 0BF3FC 800BE7FC 4600903C */ c.lt.s $f18, $f0
/* 0BF400 800BE800 00000000 */ nop
/* 0BF404 800BE804 45020018 */ bc1fl .L800BE868
/* 0BF408 800BE808 44806000 */ mtc1 $zero, $f12
/* 0BF40C 800BE80C E4800014 */ swc1 $f0, 0x14($a0)
/* 0BF410 800BE810 A48C0004 */ sh $t4, 4($a0)
/* 0BF414 800BE814 10000013 */ b .L800BE864
/* 0BF418 800BE818 A08D0001 */ sb $t5, 1($a0)
.L800BE81C:
/* 0BF41C 800BE81C 3C01800F */ lui $at, %hi(D_800F2F08) # $at, 0x800f
/* 0BF420 800BE820 C4282F08 */ lwc1 $f8, %lo(D_800F2F08)($at)
/* 0BF424 800BE824 C4840014 */ lwc1 $f4, 0x14($a0)
/* 0BF428 800BE828 4608203C */ c.lt.s $f4, $f8
/* 0BF42C 800BE82C 00000000 */ nop
/* 0BF430 800BE830 4502000D */ bc1fl .L800BE868
/* 0BF434 800BE834 44806000 */ mtc1 $zero, $f12
/* 0BF438 800BE838 E48C0014 */ swc1 $f12, 0x14($a0)
/* 0BF43C 800BE83C 10000009 */ b .L800BE864
/* 0BF440 800BE840 A0800001 */ sb $zero, 1($a0)
glabel L800BE844
/* 0BF444 800BE844 848E0004 */ lh $t6, 4($a0)
/* 0BF448 800BE848 24190007 */ li $t9, 7
/* 0BF44C 800BE84C 25CFFFFF */ addiu $t7, $t6, -1
/* 0BF450 800BE850 A48F0004 */ sh $t7, 4($a0)
/* 0BF454 800BE854 84980004 */ lh $t8, 4($a0)
/* 0BF458 800BE858 57000003 */ bnel $t8, $zero, .L800BE868
/* 0BF45C 800BE85C 44806000 */ mtc1 $zero, $f12
/* 0BF460 800BE860 A0990001 */ sb $t9, 1($a0)
.L800BE864:
glabel L800BE864
/* 0BF464 800BE864 44806000 */ mtc1 $zero, $f12
.L800BE868:
/* 0BF468 800BE868 30490020 */ andi $t1, $v0, 0x20
/* 0BF46C 800BE86C 11200005 */ beqz $t1, .L800BE884
/* 0BF470 800BE870 00401825 */ move $v1, $v0
/* 0BF474 800BE874 24080006 */ li $t0, 6
/* 0BF478 800BE878 304AFFDF */ andi $t2, $v0, 0xffdf
/* 0BF47C 800BE87C A0880001 */ sb $t0, 1($a0)
/* 0BF480 800BE880 A08A0000 */ sb $t2, ($a0)
.L800BE884:
/* 0BF484 800BE884 306B0010 */ andi $t3, $v1, 0x10
/* 0BF488 800BE888 11600004 */ beqz $t3, .L800BE89C
/* 0BF48C 800BE88C 240C0007 */ li $t4, 7
/* 0BF490 800BE890 306DFFEF */ andi $t5, $v1, 0xffef
/* 0BF494 800BE894 A08C0001 */ sb $t4, 1($a0)
/* 0BF498 800BE898 A08D0000 */ sb $t5, ($a0)
.L800BE89C:
/* 0BF49C 800BE89C C4820014 */ lwc1 $f2, 0x14($a0)
/* 0BF4A0 800BE8A0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0BF4A4 800BE8A4 460C103C */ c.lt.s $f2, $f12
/* 0BF4A8 800BE8A8 00000000 */ nop
/* 0BF4AC 800BE8AC 45020004 */ bc1fl .L800BE8C0
/* 0BF4B0 800BE8B0 44816000 */ mtc1 $at, $f12
/* 0BF4B4 800BE8B4 03E00008 */ jr $ra
/* 0BF4B8 800BE8B8 46006006 */ mov.s $f0, $f12
/* 0BF4BC 800BE8BC 44816000 */ mtc1 $at, $f12
.L800BE8C0:
/* 0BF4C0 800BE8C0 00000000 */ nop
/* 0BF4C4 800BE8C4 4602603C */ c.lt.s $f12, $f2
/* 0BF4C8 800BE8C8 00000000 */ nop
/* 0BF4CC 800BE8CC 45020004 */ bc1fl .L800BE8E0
/* 0BF4D0 800BE8D0 46001006 */ mov.s $f0, $f2
/* 0BF4D4 800BE8D4 03E00008 */ jr $ra
/* 0BF4D8 800BE8D8 46006006 */ mov.s $f0, $f12
/* 0BF4DC 800BE8DC 46001006 */ mov.s $f0, $f2
.L800BE8E0:
/* 0BF4E0 800BE8E0 03E00008 */ jr $ra
/* 0BF4E4 800BE8E4 00000000 */ nop
/* 0BF4E8 800BE8E8 00000000 */ nop
/* 0BF4EC 800BE8EC 00000000 */ nop

11130
asm/audio/external.s Normal file

File diff suppressed because it is too large Load Diff

2048
asm/audio/heap.s Normal file

File diff suppressed because it is too large Load Diff

1915
asm/audio/load.s Normal file

File diff suppressed because it is too large Load Diff

1767
asm/audio/playback.s Normal file

File diff suppressed because it is too large Load Diff

874
asm/audio/port_eu.s Normal file
View File

@ -0,0 +1,874 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel create_next_audio_frame_task
/* 0CBF30 800CB330 3C03803B */ lui $v1, %hi(D_803B70B8) # $v1, 0x803b
/* 0CBF34 800CB334 246370B8 */ addiu $v1, %lo(D_803B70B8) # addiu $v1, $v1, 0x70b8
/* 0CBF38 800CB338 8C620000 */ lw $v0, ($v1)
/* 0CBF3C 800CB33C 3C18803B */ lui $t8, %hi(D_803B7088) # $t8, 0x803b
/* 0CBF40 800CB340 27BDFF88 */ addiu $sp, $sp, -0x78
/* 0CBF44 800CB344 244E0001 */ addiu $t6, $v0, 1
/* 0CBF48 800CB348 AC6E0000 */ sw $t6, ($v1)
/* 0CBF4C 800CB34C 8C6F0000 */ lw $t7, ($v1)
/* 0CBF50 800CB350 87187088 */ lh $t8, %lo(D_803B7088)($t8)
/* 0CBF54 800CB354 AFBE0030 */ sw $fp, 0x30($sp)
/* 0CBF58 800CB358 03A0F025 */ move $fp, $sp
/* 0CBF5C 800CB35C 01F8001A */ div $zero, $t7, $t8
/* 0CBF60 800CB360 0000C810 */ mfhi $t9
/* 0CBF64 800CB364 AFBF0034 */ sw $ra, 0x34($sp)
/* 0CBF68 800CB368 AFB2002C */ sw $s2, 0x2c($sp)
/* 0CBF6C 800CB36C AFB10028 */ sw $s1, 0x28($sp)
/* 0CBF70 800CB370 AFB00024 */ sw $s0, 0x24($sp)
/* 0CBF74 800CB374 17000002 */ bnez $t8, .L800CB380
/* 0CBF78 800CB378 00000000 */ nop
/* 0CBF7C 800CB37C 0007000D */ break 7
.L800CB380:
/* 0CBF80 800CB380 2401FFFF */ li $at, -1
/* 0CBF84 800CB384 17010004 */ bne $t8, $at, .L800CB398
/* 0CBF88 800CB388 3C018000 */ lui $at, 0x8000
/* 0CBF8C 800CB38C 15E10002 */ bne $t7, $at, .L800CB398
/* 0CBF90 800CB390 00000000 */ nop
/* 0CBF94 800CB394 0006000D */ break 6
.L800CB398:
/* 0CBF98 800CB398 3C04800F */ lui $a0, %hi(D_800EA3A8) # $a0, 0x800f
/* 0CBF9C 800CB39C 13200003 */ beqz $t9, .L800CB3AC
/* 0CBFA0 800CB3A0 00003025 */ move $a2, $zero
/* 0CBFA4 800CB3A4 10000114 */ b .L800CB7F8
/* 0CBFA8 800CB3A8 00001025 */ move $v0, $zero
.L800CB3AC:
/* 0CBFAC 800CB3AC 8C84A3A8 */ lw $a0, %lo(D_800EA3A8)($a0)
/* 0CBFB0 800CB3B0 0C033630 */ jal osSendMesg
/* 0CBFB4 800CB3B4 8C650000 */ lw $a1, ($v1)
/* 0CBFB8 800CB3B8 24030003 */ li $v1, 3
/* 0CBFBC 800CB3BC 3C04803B */ lui $a0, %hi(D_803B70C4) # $a0, 0x803b
/* 0CBFC0 800CB3C0 248470C4 */ addiu $a0, %lo(D_803B70C4) # addiu $a0, $a0, 0x70c4
/* 0CBFC4 800CB3C4 8C8A0000 */ lw $t2, ($a0)
/* 0CBFC8 800CB3C8 3C05803B */ lui $a1, %hi(D_803B70C0) # $a1, 0x803b
/* 0CBFCC 800CB3CC 24A570C0 */ addiu $a1, %lo(D_803B70C0) # addiu $a1, $a1, 0x70c0
/* 0CBFD0 800CB3D0 254B0001 */ addiu $t3, $t2, 1
/* 0CBFD4 800CB3D4 0163001A */ div $zero, $t3, $v1
/* 0CBFD8 800CB3D8 00006810 */ mfhi $t5
/* 0CBFDC 800CB3DC 25AF0001 */ addiu $t7, $t5, 1
/* 0CBFE0 800CB3E0 01606025 */ move $t4, $t3
/* 0CBFE4 800CB3E4 01E3001A */ div $zero, $t7, $v1
/* 0CBFE8 800CB3E8 8CA80000 */ lw $t0, ($a1)
/* 0CBFEC 800CB3EC AC8B0000 */ sw $t3, ($a0)
/* 0CBFF0 800CB3F0 00008010 */ mfhi $s0
/* 0CBFF4 800CB3F4 39090001 */ xori $t1, $t0, 1
/* 0CBFF8 800CB3F8 ACA90000 */ sw $t1, ($a1)
/* 0CBFFC 800CB3FC 14600002 */ bnez $v1, .L800CB408
/* 0CC000 800CB400 00000000 */ nop
/* 0CC004 800CB404 0007000D */ break 7
.L800CB408:
/* 0CC008 800CB408 2401FFFF */ li $at, -1
/* 0CC00C 800CB40C 14610004 */ bne $v1, $at, .L800CB420
/* 0CC010 800CB410 3C018000 */ lui $at, 0x8000
/* 0CC014 800CB414 15810002 */ bne $t4, $at, .L800CB420
/* 0CC018 800CB418 00000000 */ nop
/* 0CC01C 800CB41C 0006000D */ break 6
.L800CB420:
/* 0CC020 800CB420 AC8D0000 */ sw $t5, ($a0)
/* 0CC024 800CB424 01A07025 */ move $t6, $t5
/* 0CC028 800CB428 14600002 */ bnez $v1, .L800CB434
/* 0CC02C 800CB42C 00000000 */ nop
/* 0CC030 800CB430 0007000D */ break 7
.L800CB434:
/* 0CC034 800CB434 2401FFFF */ li $at, -1
/* 0CC038 800CB438 14610004 */ bne $v1, $at, .L800CB44C
/* 0CC03C 800CB43C 3C018000 */ lui $at, 0x8000
/* 0CC040 800CB440 15E10002 */ bne $t7, $at, .L800CB44C
/* 0CC044 800CB444 00000000 */ nop
/* 0CC048 800CB448 0006000D */ break 6
.L800CB44C:
/* 0CC04C 800CB44C 0C034438 */ jal osAiGetLength
/* 0CC050 800CB450 00000000 */ nop
/* 0CC054 800CB454 0002C082 */ srl $t8, $v0, 2
/* 0CC058 800CB458 0010C840 */ sll $t9, $s0, 1
/* 0CC05C 800CB45C 3C03803B */ lui $v1, 0x803b
/* 0CC060 800CB460 AFD80074 */ sw $t8, 0x74($fp)
/* 0CC064 800CB464 00791821 */ addu $v1, $v1, $t9
/* 0CC068 800CB468 8463718C */ lh $v1, 0x718c($v1)
/* 0CC06C 800CB46C 00104080 */ sll $t0, $s0, 2
/* 0CC070 800CB470 3C04803B */ lui $a0, 0x803b
/* 0CC074 800CB474 10600004 */ beqz $v1, .L800CB488
/* 0CC078 800CB478 00882021 */ addu $a0, $a0, $t0
/* 0CC07C 800CB47C 8C847180 */ lw $a0, 0x7180($a0)
/* 0CC080 800CB480 0C03443C */ jal osAiSetNextBuffer
/* 0CC084 800CB484 00032880 */ sll $a1, $v1, 2
.L800CB488:
/* 0CC088 800CB488 3C02803B */ lui $v0, %hi(D_803B70BC) # $v0, 0x803b
/* 0CC08C 800CB48C 8C5170BC */ lw $s1, %lo(D_803B70BC)($v0)
/* 0CC090 800CB490 3C12803B */ lui $s2, %hi(D_803B6008) # $s2, 0x803b
/* 0CC094 800CB494 26526008 */ addiu $s2, %lo(D_803B6008) # addiu $s2, $s2, 0x6008
/* 0CC098 800CB498 1A20000D */ blez $s1, .L800CB4D0
/* 0CC09C 800CB49C 00008025 */ move $s0, $zero
/* 0CC0A0 800CB4A0 02402025 */ move $a0, $s2
.L800CB4A4:
/* 0CC0A4 800CB4A4 00002825 */ move $a1, $zero
/* 0CC0A8 800CB4A8 0C0335D4 */ jal osRecvMesg
/* 0CC0AC 800CB4AC 00003025 */ move $a2, $zero
/* 0CC0B0 800CB4B0 14400002 */ bnez $v0, .L800CB4BC
/* 0CC0B4 800CB4B4 3C09803B */ lui $t1, %hi(D_803B70BC) # $t1, 0x803b
/* 0CC0B8 800CB4B8 2631FFFF */ addiu $s1, $s1, -1
.L800CB4BC:
/* 0CC0BC 800CB4BC 8D2970BC */ lw $t1, %lo(D_803B70BC)($t1)
/* 0CC0C0 800CB4C0 26100001 */ addiu $s0, $s0, 1
/* 0CC0C4 800CB4C4 0209082A */ slt $at, $s0, $t1
/* 0CC0C8 800CB4C8 5420FFF6 */ bnel $at, $zero, .L800CB4A4
/* 0CC0CC 800CB4CC 02402025 */ move $a0, $s2
.L800CB4D0:
/* 0CC0D0 800CB4D0 3C12803B */ lui $s2, %hi(D_803B6008) # $s2, 0x803b
/* 0CC0D4 800CB4D4 1220000A */ beqz $s1, .L800CB500
/* 0CC0D8 800CB4D8 26526008 */ addiu $s2, %lo(D_803B6008) # addiu $s2, $s2, 0x6008
/* 0CC0DC 800CB4DC 1A200008 */ blez $s1, .L800CB500
/* 0CC0E0 800CB4E0 00008025 */ move $s0, $zero
/* 0CC0E4 800CB4E4 02402025 */ move $a0, $s2
.L800CB4E8:
/* 0CC0E8 800CB4E8 00002825 */ move $a1, $zero
/* 0CC0EC 800CB4EC 0C0335D4 */ jal osRecvMesg
/* 0CC0F0 800CB4F0 24060001 */ li $a2, 1
/* 0CC0F4 800CB4F4 26100001 */ addiu $s0, $s0, 1
/* 0CC0F8 800CB4F8 5611FFFB */ bnel $s0, $s1, .L800CB4E8
/* 0CC0FC 800CB4FC 02402025 */ move $a0, $s2
.L800CB500:
/* 0CC100 800CB500 8E510008 */ lw $s1, 8($s2)
/* 0CC104 800CB504 1220000A */ beqz $s1, .L800CB530
/* 0CC108 800CB508 00000000 */ nop
/* 0CC10C 800CB50C 1A200008 */ blez $s1, .L800CB530
/* 0CC110 800CB510 00008025 */ move $s0, $zero
/* 0CC114 800CB514 02402025 */ move $a0, $s2
.L800CB518:
/* 0CC118 800CB518 00002825 */ move $a1, $zero
/* 0CC11C 800CB51C 0C0335D4 */ jal osRecvMesg
/* 0CC120 800CB520 00003025 */ move $a2, $zero
/* 0CC124 800CB524 26100001 */ addiu $s0, $s0, 1
/* 0CC128 800CB528 5611FFFB */ bnel $s0, $s1, .L800CB518
/* 0CC12C 800CB52C 02402025 */ move $a0, $s2
.L800CB530:
/* 0CC130 800CB530 3C01803B */ lui $at, %hi(D_803B70BC) # $at, 0x803b
/* 0CC134 800CB534 0C02EB01 */ jal func_800BAC04
/* 0CC138 800CB538 AC2070BC */ sw $zero, %lo(D_803B70BC)($at)
/* 0CC13C 800CB53C 3C04800F */ lui $a0, %hi(D_800EA3B0) # $a0, 0x800f
/* 0CC140 800CB540 8C84A3B0 */ lw $a0, %lo(D_800EA3B0)($a0)
/* 0CC144 800CB544 27C50058 */ addiu $a1, $fp, 0x58
/* 0CC148 800CB548 0C0335D4 */ jal osRecvMesg
/* 0CC14C 800CB54C 00003025 */ move $a2, $zero
/* 0CC150 800CB550 2401FFFF */ li $at, -1
/* 0CC154 800CB554 10410007 */ beq $v0, $at, .L800CB574
/* 0CC158 800CB558 3C10803B */ lui $s0, %hi(D_803B0500) # $s0, 0x803b
/* 0CC15C 800CB55C 8FCA0058 */ lw $t2, 0x58($fp)
/* 0CC160 800CB560 3C01803B */ lui $at, %hi(D_803B0501) # $at, 0x803b
/* 0CC164 800CB564 26100500 */ addiu $s0, %lo(D_803B0500) # addiu $s0, $s0, 0x500
/* 0CC168 800CB568 240B0005 */ li $t3, 5
/* 0CC16C 800CB56C A02A0501 */ sb $t2, %lo(D_803B0501)($at)
/* 0CC170 800CB570 A20B0000 */ sb $t3, ($s0)
.L800CB574:
/* 0CC174 800CB574 3C10803B */ lui $s0, %hi(D_803B0500) # $s0, 0x803b
/* 0CC178 800CB578 26100500 */ addiu $s0, %lo(D_803B0500) # addiu $s0, $s0, 0x500
/* 0CC17C 800CB57C 920C0000 */ lbu $t4, ($s0)
/* 0CC180 800CB580 1180000F */ beqz $t4, .L800CB5C0
/* 0CC184 800CB584 00000000 */ nop
/* 0CC188 800CB588 0C02E803 */ jal func_800BA00C
/* 0CC18C 800CB58C 00000000 */ nop
/* 0CC190 800CB590 1440000B */ bnez $v0, .L800CB5C0
/* 0CC194 800CB594 00000000 */ nop
/* 0CC198 800CB598 920D0000 */ lbu $t5, ($s0)
/* 0CC19C 800CB59C 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f
/* 0CC1A0 800CB5A0 3C05803B */ lui $a1, %hi(D_803B0501) # $a1, 0x803b
/* 0CC1A4 800CB5A4 15A00004 */ bnez $t5, .L800CB5B8
/* 0CC1A8 800CB5A8 00003025 */ move $a2, $zero
/* 0CC1AC 800CB5AC 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0)
/* 0CC1B0 800CB5B0 0C033630 */ jal osSendMesg
/* 0CC1B4 800CB5B4 90A50501 */ lbu $a1, %lo(D_803B0501)($a1)
.L800CB5B8:
/* 0CC1B8 800CB5B8 1000008F */ b .L800CB7F8
/* 0CC1BC 800CB5BC 00001025 */ move $v0, $zero
.L800CB5C0:
/* 0CC1C0 800CB5C0 3C02803B */ lui $v0, %hi(D_803B70C0) # $v0, 0x803b
/* 0CC1C4 800CB5C4 8C4270C0 */ lw $v0, %lo(D_803B70C0)($v0)
/* 0CC1C8 800CB5C8 3C0F803B */ lui $t7, %hi(D_803B70D8) # $t7, 0x803b
/* 0CC1CC 800CB5CC 3C12803B */ lui $s2, %hi(D_803B70D4) # $s2, 0x803b
/* 0CC1D0 800CB5D0 00027080 */ sll $t6, $v0, 2
/* 0CC1D4 800CB5D4 01C27021 */ addu $t6, $t6, $v0
/* 0CC1D8 800CB5D8 000E7100 */ sll $t6, $t6, 4
/* 0CC1DC 800CB5DC 25EF70D8 */ addiu $t7, %lo(D_803B70D8) # addiu $t7, $t7, 0x70d8
/* 0CC1E0 800CB5E0 265270D4 */ addiu $s2, %lo(D_803B70D4) # addiu $s2, $s2, 0x70d4
/* 0CC1E4 800CB5E4 01CFC021 */ addu $t8, $t6, $t7
/* 0CC1E8 800CB5E8 AE580000 */ sw $t8, ($s2)
/* 0CC1EC 800CB5EC 3C08803B */ lui $t0, 0x803b
/* 0CC1F0 800CB5F0 3C10803B */ lui $s0, %hi(D_803B70C4) # $s0, 0x803b
/* 0CC1F4 800CB5F4 0002C880 */ sll $t9, $v0, 2
/* 0CC1F8 800CB5F8 8E1070C4 */ lw $s0, %lo(D_803B70C4)($s0)
/* 0CC1FC 800CB5FC 01194021 */ addu $t0, $t0, $t9
/* 0CC200 800CB600 8D0870C8 */ lw $t0, 0x70c8($t0)
/* 0CC204 800CB604 3C0A803B */ lui $t2, %hi(D_803B7180) # $t2, 0x803b
/* 0CC208 800CB608 3C01803B */ lui $at, %hi(D_803B70D0) # $at, 0x803b
/* 0CC20C 800CB60C 254A7180 */ addiu $t2, %lo(D_803B7180) # addiu $t2, $t2, 0x7180
/* 0CC210 800CB610 00104880 */ sll $t1, $s0, 2
/* 0CC214 800CB614 012A3821 */ addu $a3, $t1, $t2
/* 0CC218 800CB618 AC2870D0 */ sw $t0, %lo(D_803B70D0)($at)
/* 0CC21C 800CB61C 8CEB0000 */ lw $t3, ($a3)
/* 0CC220 800CB620 3C05803B */ lui $a1, %hi(D_803B7088) # $a1, 0x803b
/* 0CC224 800CB624 24A57088 */ addiu $a1, %lo(D_803B7088) # addiu $a1, $a1, 0x7088
/* 0CC228 800CB628 AFCB0060 */ sw $t3, 0x60($fp)
/* 0CC22C 800CB62C 84AE0006 */ lh $t6, 6($a1)
/* 0CC230 800CB630 8FCF0074 */ lw $t7, 0x74($fp)
/* 0CC234 800CB634 3C0D803B */ lui $t5, %hi(D_803B718C) # $t5, 0x803b
/* 0CC238 800CB638 25AD718C */ addiu $t5, %lo(D_803B718C) # addiu $t5, $t5, 0x718c
/* 0CC23C 800CB63C 01CFC023 */ subu $t8, $t6, $t7
/* 0CC240 800CB640 27190040 */ addiu $t9, $t8, 0x40
/* 0CC244 800CB644 3328FFF0 */ andi $t0, $t9, 0xfff0
/* 0CC248 800CB648 00106040 */ sll $t4, $s0, 1
/* 0CC24C 800CB64C 018D8821 */ addu $s1, $t4, $t5
/* 0CC250 800CB650 25090010 */ addiu $t1, $t0, 0x10
/* 0CC254 800CB654 A6290000 */ sh $t1, ($s1)
/* 0CC258 800CB658 86230000 */ lh $v1, ($s1)
/* 0CC25C 800CB65C 84A4000A */ lh $a0, 0xa($a1)
/* 0CC260 800CB660 00003025 */ move $a2, $zero
/* 0CC264 800CB664 0064082A */ slt $at, $v1, $a0
/* 0CC268 800CB668 50200004 */ beql $at, $zero, .L800CB67C
/* 0CC26C 800CB66C 84A20008 */ lh $v0, 8($a1)
/* 0CC270 800CB670 A6240000 */ sh $a0, ($s1)
/* 0CC274 800CB674 86230000 */ lh $v1, ($s1)
/* 0CC278 800CB678 84A20008 */ lh $v0, 8($a1)
.L800CB67C:
/* 0CC27C 800CB67C 27C50054 */ addiu $a1, $fp, 0x54
/* 0CC280 800CB680 3C04800F */ lui $a0, %hi(D_800EA3AC) # $a0, 0x800f
/* 0CC284 800CB684 0043082A */ slt $at, $v0, $v1
/* 0CC288 800CB688 10200002 */ beqz $at, .L800CB694
/* 0CC28C 800CB68C 00000000 */ nop
/* 0CC290 800CB690 A6220000 */ sh $v0, ($s1)
.L800CB694:
/* 0CC294 800CB694 8C84A3AC */ lw $a0, %lo(D_800EA3AC)($a0)
/* 0CC298 800CB698 0C0335D4 */ jal osRecvMesg
/* 0CC29C 800CB69C AFC70040 */ sw $a3, 0x40($fp)
/* 0CC2A0 800CB6A0 3C10803B */ lui $s0, %hi(D_803B70D0) # $s0, 0x803b
/* 0CC2A4 800CB6A4 2401FFFF */ li $at, -1
/* 0CC2A8 800CB6A8 10410003 */ beq $v0, $at, .L800CB6B8
/* 0CC2AC 800CB6AC 261070D0 */ addiu $s0, %lo(D_803B70D0) # addiu $s0, $s0, 0x70d0
/* 0CC2B0 800CB6B0 0C032F2C */ jal func_800CBCB0
/* 0CC2B4 800CB6B4 8FC40054 */ lw $a0, 0x54($fp)
.L800CB6B8:
/* 0CC2B8 800CB6B8 8E040000 */ lw $a0, ($s0)
/* 0CC2BC 800CB6BC 27C50070 */ addiu $a1, $fp, 0x70
/* 0CC2C0 800CB6C0 8FC60060 */ lw $a2, 0x60($fp)
/* 0CC2C4 800CB6C4 0C02DC3B */ jal func_800B70EC
/* 0CC2C8 800CB6C8 86270000 */ lh $a3, ($s1)
/* 0CC2CC 800CB6CC 0C034468 */ jal osGetCount
/* 0CC2D0 800CB6D0 AE020000 */ sw $v0, ($s0)
/* 0CC2D4 800CB6D4 3C04803B */ lui $a0, %hi(D_803B7194) # $a0, 0x803b
/* 0CC2D8 800CB6D8 3C07803B */ lui $a3, %hi(D_803B70B8) # $a3, 0x803b
/* 0CC2DC 800CB6DC 24E770B8 */ addiu $a3, %lo(D_803B70B8) # addiu $a3, $a3, 0x70b8
/* 0CC2E0 800CB6E0 24847194 */ addiu $a0, %lo(D_803B7194) # addiu $a0, $a0, 0x7194
/* 0CC2E4 800CB6E4 8C8A0000 */ lw $t2, ($a0)
/* 0CC2E8 800CB6E8 8CEB0000 */ lw $t3, ($a3)
/* 0CC2EC 800CB6EC 8CF80000 */ lw $t8, ($a3)
/* 0CC2F0 800CB6F0 3C10803B */ lui $s0, %hi(D_803B70C0) # $s0, 0x803b
/* 0CC2F4 800CB6F4 014B6021 */ addu $t4, $t2, $t3
/* 0CC2F8 800CB6F8 004C0019 */ multu $v0, $t4
/* 0CC2FC 800CB6FC 331900FF */ andi $t9, $t8, 0xff
/* 0CC300 800CB700 00194040 */ sll $t0, $t9, 1
/* 0CC304 800CB704 3C06800F */ lui $a2, %hi(aspMainDataStart) # $a2, 0x800f
/* 0CC308 800CB708 24C64D00 */ addiu $a2, %lo(aspMainDataStart) # addiu $a2, $a2, 0x4d00
/* 0CC30C 800CB70C 3C05800E */ lui $a1, %hi(rspbootTextStart) # $a1, 0x800e
/* 0CC310 800CB710 24180002 */ li $t8, 2
/* 0CC314 800CB714 3C19800E */ lui $t9, %hi(rspbootTextEnd) # $t9, 0x800e
/* 0CC318 800CB718 24A58F70 */ addiu $a1, %lo(rspbootTextStart) # addiu $a1, $a1, -0x7090
/* 0CC31C 800CB71C 27399040 */ addiu $t9, %lo(rspbootTextEnd) # addiu $t9, $t9, -0x6fc0
/* 0CC320 800CB720 00006812 */ mflo $t5
/* 0CC324 800CB724 AC8D0000 */ sw $t5, ($a0)
/* 0CC328 800CB728 8FCE0040 */ lw $t6, 0x40($fp)
/* 0CC32C 800CB72C 8C8B0000 */ lw $t3, ($a0)
/* 0CC330 800CB730 8E4D0000 */ lw $t5, ($s2)
/* 0CC334 800CB734 8DCF0000 */ lw $t7, ($t6)
/* 0CC338 800CB738 01E84821 */ addu $t1, $t7, $t0
/* 0CC33C 800CB73C 852A0000 */ lh $t2, ($t1)
/* 0CC340 800CB740 3C08800E */ lui $t0, %hi(aspMainTextStart) # $t0, 0x800e
/* 0CC344 800CB744 03257823 */ subu $t7, $t9, $a1
/* 0CC348 800CB748 014B6021 */ addu $t4, $t2, $t3
/* 0CC34C 800CB74C AC8C0000 */ sw $t4, ($a0)
/* 0CC350 800CB750 8E1070C0 */ lw $s0, %lo(D_803B70C0)($s0)
/* 0CC354 800CB754 ADA00040 */ sw $zero, 0x40($t5)
/* 0CC358 800CB758 8E4E0000 */ lw $t6, ($s2)
/* 0CC35C 800CB75C 3C0A800F */ lui $t2, %hi(aspMainDataEnd) # $t2, 0x800f
/* 0CC360 800CB760 254A5000 */ addiu $t2, %lo(aspMainDataEnd) # addiu $t2, $t2, 0x5000
/* 0CC364 800CB764 ADC00044 */ sw $zero, 0x44($t6)
/* 0CC368 800CB768 8E430000 */ lw $v1, ($s2)
/* 0CC36C 800CB76C 01465823 */ subu $t3, $t2, $a2
/* 0CC370 800CB770 000B60C3 */ sra $t4, $t3, 3
/* 0CC374 800CB774 AC780000 */ sw $t8, ($v1)
/* 0CC378 800CB778 2508B830 */ addiu $t0, %lo(aspMainTextStart) # addiu $t0, $t0, -0x47d0
/* 0CC37C 800CB77C 24091000 */ li $t1, 4096
/* 0CC380 800CB780 000C68C0 */ sll $t5, $t4, 3
/* 0CC384 800CB784 3C18803B */ lui $t8, 0x803b
/* 0CC388 800CB788 00107080 */ sll $t6, $s0, 2
/* 0CC38C 800CB78C 030EC021 */ addu $t8, $t8, $t6
/* 0CC390 800CB790 AC600004 */ sw $zero, 4($v1)
/* 0CC394 800CB794 AC650008 */ sw $a1, 8($v1)
/* 0CC398 800CB798 AC6F000C */ sw $t7, 0xc($v1)
/* 0CC39C 800CB79C AC680010 */ sw $t0, 0x10($v1)
/* 0CC3A0 800CB7A0 AC660018 */ sw $a2, 0x18($v1)
/* 0CC3A4 800CB7A4 AC690014 */ sw $t1, 0x14($v1)
/* 0CC3A8 800CB7A8 AC6D001C */ sw $t5, 0x1c($v1)
/* 0CC3AC 800CB7AC AC600020 */ sw $zero, 0x20($v1)
/* 0CC3B0 800CB7B0 AC600024 */ sw $zero, 0x24($v1)
/* 0CC3B4 800CB7B4 AC600028 */ sw $zero, 0x28($v1)
/* 0CC3B8 800CB7B8 AC60002C */ sw $zero, 0x2c($v1)
/* 0CC3BC 800CB7BC 8F1870C8 */ lw $t8, 0x70c8($t8)
/* 0CC3C0 800CB7C0 3C08800F */ lui $t0, %hi(D_800EA484) # $t0, 0x800f
/* 0CC3C4 800CB7C4 AC780030 */ sw $t8, 0x30($v1)
/* 0CC3C8 800CB7C8 8FD90070 */ lw $t9, 0x70($fp)
/* 0CC3CC 800CB7CC AC600038 */ sw $zero, 0x38($v1)
/* 0CC3D0 800CB7D0 AC60003C */ sw $zero, 0x3c($v1)
/* 0CC3D4 800CB7D4 001978C0 */ sll $t7, $t9, 3
/* 0CC3D8 800CB7D8 AC6F0034 */ sw $t7, 0x34($v1)
/* 0CC3DC 800CB7DC 8FC90070 */ lw $t1, 0x70($fp)
/* 0CC3E0 800CB7E0 8D08A484 */ lw $t0, %lo(D_800EA484)($t0)
/* 0CC3E4 800CB7E4 0109082A */ slt $at, $t0, $t1
/* 0CC3E8 800CB7E8 10200002 */ beqz $at, .L800CB7F4
/* 0CC3EC 800CB7EC 3C01800F */ lui $at, %hi(D_800EA484) # $at, 0x800f
/* 0CC3F0 800CB7F0 AC29A484 */ sw $t1, %lo(D_800EA484)($at)
.L800CB7F4:
/* 0CC3F4 800CB7F4 8E420000 */ lw $v0, ($s2)
.L800CB7F8:
/* 0CC3F8 800CB7F8 8FDF0034 */ lw $ra, 0x34($fp)
/* 0CC3FC 800CB7FC 03C0E825 */ move $sp, $fp
/* 0CC400 800CB800 8FD00024 */ lw $s0, 0x24($fp)
/* 0CC404 800CB804 8FD10028 */ lw $s1, 0x28($fp)
/* 0CC408 800CB808 8FD2002C */ lw $s2, 0x2c($fp)
/* 0CC40C 800CB80C 8FDE0030 */ lw $fp, 0x30($fp)
/* 0CC410 800CB810 03E00008 */ jr $ra
/* 0CC414 800CB814 27BD0078 */ addiu $sp, $sp, 0x78
glabel func_800CB818
/* 0CC418 800CB818 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0CC41C 800CB81C AFBF002C */ sw $ra, 0x2c($sp)
/* 0CC420 800CB820 AFBE0028 */ sw $fp, 0x28($sp)
/* 0CC424 800CB824 90820000 */ lbu $v0, ($a0)
/* 0CC428 800CB828 24010081 */ li $at, 129
/* 0CC42C 800CB82C 03A0F025 */ move $fp, $sp
/* 0CC430 800CB830 10410014 */ beq $v0, $at, .L800CB884
/* 0CC434 800CB834 00803825 */ move $a3, $a0
/* 0CC438 800CB838 24010082 */ li $at, 130
/* 0CC43C 800CB83C 10410016 */ beq $v0, $at, .L800CB898
/* 0CC440 800CB840 24010083 */ li $at, 131
/* 0CC444 800CB844 1041001F */ beq $v0, $at, .L800CB8C4
/* 0CC448 800CB848 24010088 */ li $at, 136
/* 0CC44C 800CB84C 10410012 */ beq $v0, $at, .L800CB898
/* 0CC450 800CB850 240100F0 */ li $at, 240
/* 0CC454 800CB854 10410033 */ beq $v0, $at, .L800CB924
/* 0CC458 800CB858 240100F1 */ li $at, 241
/* 0CC45C 800CB85C 10410035 */ beq $v0, $at, .L800CB934
/* 0CC460 800CB860 3C03803B */ lui $v1, 0x803b
/* 0CC464 800CB864 240100F2 */ li $at, 242
/* 0CC468 800CB868 10410046 */ beq $v0, $at, .L800CB984
/* 0CC46C 800CB86C 3C03803B */ lui $v1, %hi(D_803B1658) # $v1, 0x803b
/* 0CC470 800CB870 240100F3 */ li $at, 243
/* 0CC474 800CB874 5041005C */ beql $v0, $at, .L800CB9E8
/* 0CC478 800CB878 90E40001 */ lbu $a0, 1($a3)
/* 0CC47C 800CB87C 1000005E */ b .L800CB9F8
/* 0CC480 800CB880 8FDF002C */ lw $ra, 0x2c($fp)
.L800CB884:
/* 0CC484 800CB884 90E40002 */ lbu $a0, 2($a3)
/* 0CC488 800CB888 0C02EF77 */ jal func_800BBDDC
/* 0CC48C 800CB88C 24050003 */ li $a1, 3
/* 0CC490 800CB890 10000059 */ b .L800CB9F8
/* 0CC494 800CB894 8FDF002C */ lw $ra, 0x2c($fp)
.L800CB898:
/* 0CC498 800CB898 90E40001 */ lbu $a0, 1($a3)
/* 0CC49C 800CB89C 90E50002 */ lbu $a1, 2($a3)
/* 0CC4A0 800CB8A0 90E60003 */ lbu $a2, 3($a3)
/* 0CC4A4 800CB8A4 0C02EFBC */ jal func_800BBEF0
/* 0CC4A8 800CB8A8 AFC70030 */ sw $a3, 0x30($fp)
/* 0CC4AC 800CB8AC 8FC70030 */ lw $a3, 0x30($fp)
/* 0CC4B0 800CB8B0 90E40001 */ lbu $a0, 1($a3)
/* 0CC4B4 800CB8B4 0C032E99 */ jal func_800CBA64
/* 0CC4B8 800CB8B8 8CE50004 */ lw $a1, 4($a3)
/* 0CC4BC 800CB8BC 1000004E */ b .L800CB9F8
/* 0CC4C0 800CB8C0 8FDF002C */ lw $ra, 0x2c($fp)
.L800CB8C4:
/* 0CC4C4 800CB8C4 90E20001 */ lbu $v0, 1($a3)
/* 0CC4C8 800CB8C8 3C0F803B */ lui $t7, %hi(D_803B1510) # $t7, 0x803b
/* 0CC4CC 800CB8CC 25EF1510 */ addiu $t7, %lo(D_803B1510) # addiu $t7, $t7, 0x1510
/* 0CC4D0 800CB8D0 00027080 */ sll $t6, $v0, 2
/* 0CC4D4 800CB8D4 01C27021 */ addu $t6, $t6, $v0
/* 0CC4D8 800CB8D8 000E70C0 */ sll $t6, $t6, 3
/* 0CC4DC 800CB8DC 01C27021 */ addu $t6, $t6, $v0
/* 0CC4E0 800CB8E0 000E70C0 */ sll $t6, $t6, 3
/* 0CC4E4 800CB8E4 01CF2021 */ addu $a0, $t6, $t7
/* 0CC4E8 800CB8E8 8C980000 */ lw $t8, ($a0)
/* 0CC4EC 800CB8EC 0018CFC2 */ srl $t9, $t8, 0x1f
/* 0CC4F0 800CB8F0 53200041 */ beql $t9, $zero, .L800CB9F8
/* 0CC4F4 800CB8F4 8FDF002C */ lw $ra, 0x2c($fp)
/* 0CC4F8 800CB8F8 8CE50004 */ lw $a1, 4($a3)
/* 0CC4FC 800CB8FC 14A00005 */ bnez $a1, .L800CB914
/* 0CC500 800CB900 00000000 */ nop
/* 0CC504 800CB904 0C02FBCB */ jal func_800BEF2C
/* 0CC508 800CB908 00000000 */ nop
/* 0CC50C 800CB90C 1000003A */ b .L800CB9F8
/* 0CC510 800CB910 8FDF002C */ lw $ra, 0x2c($fp)
.L800CB914:
/* 0CC514 800CB914 0C032E82 */ jal func_800CBA08
/* 0CC518 800CB918 00402025 */ move $a0, $v0
/* 0CC51C 800CB91C 10000036 */ b .L800CB9F8
/* 0CC520 800CB920 8FDF002C */ lw $ra, 0x2c($fp)
.L800CB924:
/* 0CC524 800CB924 8CE80004 */ lw $t0, 4($a3)
/* 0CC528 800CB928 3C01803B */ lui $at, %hi(D_803B70B6) # $at, 0x803b
/* 0CC52C 800CB92C 10000031 */ b .L800CB9F4
/* 0CC530 800CB930 A02870B6 */ sb $t0, %lo(D_803B70B6)($at)
.L800CB934:
/* 0CC534 800CB934 3C02803B */ lui $v0, %hi(D_803B1510) # $v0, 0x803b
/* 0CC538 800CB938 904B1510 */ lbu $t3, %lo(D_803B1510)($v0)
/* 0CC53C 800CB93C 90681658 */ lbu $t0, %lo(D_803B1658)($v1)
/* 0CC540 800CB940 3C04803B */ lui $a0, %hi(D_803B17A0) # $a0, 0x803b
/* 0CC544 800CB944 3C05803B */ lui $a1, %hi(D_803B18E8) # $a1, 0x803b
/* 0CC548 800CB948 90AA18E8 */ lbu $t2, %lo(D_803B18E8)($a1)
/* 0CC54C 800CB94C 908E17A0 */ lbu $t6, %lo(D_803B17A0)($a0)
/* 0CC550 800CB950 3C01803B */ lui $at, %hi(D_803B1510) # $at, 0x803b
/* 0CC554 800CB954 35620024 */ ori $v0, $t3, 0x24
/* 0CC558 800CB958 A0221510 */ sb $v0, %lo(D_803B1510)($at)
/* 0CC55C 800CB95C 3C01803B */ lui $at, %hi(D_803B1658) # $at, 0x803b
/* 0CC560 800CB960 35030024 */ ori $v1, $t0, 0x24
/* 0CC564 800CB964 A0231658 */ sb $v1, %lo(D_803B1658)($at)
/* 0CC568 800CB968 3C01803B */ lui $at, %hi(D_803B17A0) # $at, 0x803b
/* 0CC56C 800CB96C 35D80024 */ ori $t8, $t6, 0x24
/* 0CC570 800CB970 A03817A0 */ sb $t8, %lo(D_803B17A0)($at)
/* 0CC574 800CB974 3C01803B */ lui $at, %hi(D_803B18E8) # $at, 0x803b
/* 0CC578 800CB978 354C0024 */ ori $t4, $t2, 0x24
/* 0CC57C 800CB97C 1000001D */ b .L800CB9F4
/* 0CC580 800CB980 A02C18E8 */ sb $t4, %lo(D_803B18E8)($at)
.L800CB984:
/* 0CC584 800CB984 3C02803B */ lui $v0, %hi(D_803B1510) # $v0, 0x803b
/* 0CC588 800CB988 90421510 */ lbu $v0, %lo(D_803B1510)($v0)
/* 0CC58C 800CB98C 90631658 */ lbu $v1, %lo(D_803B1658)($v1)
/* 0CC590 800CB990 3C04803B */ lui $a0, %hi(D_803B17A0) # $a0, 0x803b
/* 0CC594 800CB994 908417A0 */ lbu $a0, %lo(D_803B17A0)($a0)
/* 0CC598 800CB998 3C05803B */ lui $a1, %hi(D_803B18E8) # $a1, 0x803b
/* 0CC59C 800CB99C 304FFFDF */ andi $t7, $v0, 0xffdf
/* 0CC5A0 800CB9A0 90A518E8 */ lbu $a1, %lo(D_803B18E8)($a1)
/* 0CC5A4 800CB9A4 3C01803B */ lui $at, %hi(D_803B1510) # $at, 0x803b
/* 0CC5A8 800CB9A8 35E20004 */ ori $v0, $t7, 4
/* 0CC5AC 800CB9AC A0221510 */ sb $v0, %lo(D_803B1510)($at)
/* 0CC5B0 800CB9B0 306AFFDF */ andi $t2, $v1, 0xffdf
/* 0CC5B4 800CB9B4 35430004 */ ori $v1, $t2, 4
/* 0CC5B8 800CB9B8 3C01803B */ lui $at, %hi(D_803B1658) # $at, 0x803b
/* 0CC5BC 800CB9BC A0231658 */ sb $v1, %lo(D_803B1658)($at)
/* 0CC5C0 800CB9C0 308FFFDF */ andi $t7, $a0, 0xffdf
/* 0CC5C4 800CB9C4 35F90004 */ ori $t9, $t7, 4
/* 0CC5C8 800CB9C8 3C01803B */ lui $at, %hi(D_803B17A0) # $at, 0x803b
/* 0CC5CC 800CB9CC A03917A0 */ sb $t9, %lo(D_803B17A0)($at)
/* 0CC5D0 800CB9D0 30AAFFDF */ andi $t2, $a1, 0xffdf
/* 0CC5D4 800CB9D4 354C0004 */ ori $t4, $t2, 4
/* 0CC5D8 800CB9D8 3C01803B */ lui $at, %hi(D_803B18E8) # $at, 0x803b
/* 0CC5DC 800CB9DC 10000005 */ b .L800CB9F4
/* 0CC5E0 800CB9E0 A02C18E8 */ sb $t4, %lo(D_803B18E8)($at)
/* 0CC5E4 800CB9E4 90E40001 */ lbu $a0, 1($a3)
.L800CB9E8:
/* 0CC5E8 800CB9E8 90E50002 */ lbu $a1, 2($a3)
/* 0CC5EC 800CB9EC 0C02ECE2 */ jal func_800BB388
/* 0CC5F0 800CB9F0 90E60003 */ lbu $a2, 3($a3)
.L800CB9F4:
/* 0CC5F4 800CB9F4 8FDF002C */ lw $ra, 0x2c($fp)
.L800CB9F8:
/* 0CC5F8 800CB9F8 03C0E825 */ move $sp, $fp
/* 0CC5FC 800CB9FC 8FDE0028 */ lw $fp, 0x28($fp)
/* 0CC600 800CBA00 03E00008 */ jr $ra
/* 0CC604 800CBA04 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800CBA08
/* 0CC608 800CBA08 14A00002 */ bnez $a1, .L800CBA14
/* 0CC60C 800CBA0C 27ADFFF0 */ addiu $t5, $sp, -0x10
/* 0CC610 800CBA10 24050001 */ li $a1, 1
.L800CBA14:
/* 0CC614 800CBA14 44853000 */ mtc1 $a1, $f6
/* 0CC618 800CBA18 00047080 */ sll $t6, $a0, 2
/* 0CC61C 800CBA1C 01C47021 */ addu $t6, $t6, $a0
/* 0CC620 800CBA20 000E70C0 */ sll $t6, $t6, 3
/* 0CC624 800CBA24 46803220 */ cvt.s.w $f8, $f6
/* 0CC628 800CBA28 01C47021 */ addu $t6, $t6, $a0
/* 0CC62C 800CBA2C 3C0F803B */ lui $t7, %hi(D_803B1510) # $t7, 0x803b
/* 0CC630 800CBA30 25EF1510 */ addiu $t7, %lo(D_803B1510) # addiu $t7, $t7, 0x1510
/* 0CC634 800CBA34 000E70C0 */ sll $t6, $t6, 3
/* 0CC638 800CBA38 01CF1021 */ addu $v0, $t6, $t7
/* 0CC63C 800CBA3C C4440018 */ lwc1 $f4, 0x18($v0)
/* 0CC640 800CBA40 24180002 */ li $t8, 2
/* 0CC644 800CBA44 01A0E825 */ move $sp, $t5
/* 0CC648 800CBA48 46082283 */ div.s $f10, $f4, $f8
/* 0CC64C 800CBA4C A0580001 */ sb $t8, 1($v0)
/* 0CC650 800CBA50 A4450010 */ sh $a1, 0x10($v0)
/* 0CC654 800CBA54 25BD0010 */ addiu $sp, $t5, 0x10
/* 0CC658 800CBA58 46005407 */ neg.s $f16, $f10
/* 0CC65C 800CBA5C 03E00008 */ jr $ra
/* 0CC660 800CBA60 E450001C */ swc1 $f16, 0x1c($v0)
glabel func_800CBA64
/* 0CC664 800CBA64 10A00010 */ beqz $a1, .L800CBAA8
/* 0CC668 800CBA68 27ADFFF0 */ addiu $t5, $sp, -0x10
/* 0CC66C 800CBA6C 00047080 */ sll $t6, $a0, 2
/* 0CC670 800CBA70 01C47021 */ addu $t6, $t6, $a0
/* 0CC674 800CBA74 000E70C0 */ sll $t6, $t6, 3
/* 0CC678 800CBA78 01C47021 */ addu $t6, $t6, $a0
/* 0CC67C 800CBA7C 3C0F803B */ lui $t7, %hi(D_803B1510) # $t7, 0x803b
/* 0CC680 800CBA80 25EF1510 */ addiu $t7, %lo(D_803B1510) # addiu $t7, $t7, 0x1510
/* 0CC684 800CBA84 000E70C0 */ sll $t6, $t6, 3
/* 0CC688 800CBA88 01CF1021 */ addu $v0, $t6, $t7
/* 0CC68C 800CBA8C 44800000 */ mtc1 $zero, $f0
/* 0CC690 800CBA90 24180001 */ li $t8, 1
/* 0CC694 800CBA94 A0580001 */ sb $t8, 1($v0)
/* 0CC698 800CBA98 A4450012 */ sh $a1, 0x12($v0)
/* 0CC69C 800CBA9C A4450010 */ sh $a1, 0x10($v0)
/* 0CC6A0 800CBAA0 E4400018 */ swc1 $f0, 0x18($v0)
/* 0CC6A4 800CBAA4 E440001C */ swc1 $f0, 0x1c($v0)
.L800CBAA8:
/* 0CC6A8 800CBAA8 01A0E825 */ move $sp, $t5
/* 0CC6AC 800CBAAC 03E00008 */ jr $ra
/* 0CC6B0 800CBAB0 25BD0010 */ addiu $sp, $t5, 0x10
glabel func_800CBAB4
/* 0CC6B4 800CBAB4 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0CC6B8 800CBAB8 3C01800F */ lui $at, %hi(D_800EA3A0) # $at, 0x800f
/* 0CC6BC 800CBABC A020A3A0 */ sb $zero, %lo(D_800EA3A0)($at)
/* 0CC6C0 800CBAC0 AFBF002C */ sw $ra, 0x2c($sp)
/* 0CC6C4 800CBAC4 AFBE0028 */ sw $fp, 0x28($sp)
/* 0CC6C8 800CBAC8 3C01800F */ lui $at, %hi(D_800EA3A4) # $at, 0x800f
/* 0CC6CC 800CBACC 3C04800F */ lui $a0, %hi(D_800EA3A8) # $a0, 0x800f
/* 0CC6D0 800CBAD0 3C058019 */ lui $a1, %hi(D_80194020) # $a1, 0x8019
/* 0CC6D4 800CBAD4 03A0F025 */ move $fp, $sp
/* 0CC6D8 800CBAD8 A020A3A4 */ sb $zero, %lo(D_800EA3A4)($at)
/* 0CC6DC 800CBADC 24A54020 */ addiu $a1, %lo(D_80194020) # addiu $a1, $a1, 0x4020
/* 0CC6E0 800CBAE0 8C84A3A8 */ lw $a0, %lo(D_800EA3A8)($a0)
/* 0CC6E4 800CBAE4 0C033358 */ jal osCreateMesgQueue
/* 0CC6E8 800CBAE8 24060001 */ li $a2, 1
/* 0CC6EC 800CBAEC 3C04800F */ lui $a0, %hi(D_800EA3AC) # $a0, 0x800f
/* 0CC6F0 800CBAF0 3C058019 */ lui $a1, %hi(D_80194028) # $a1, 0x8019
/* 0CC6F4 800CBAF4 24A54028 */ addiu $a1, %lo(D_80194028) # addiu $a1, $a1, 0x4028
/* 0CC6F8 800CBAF8 8C84A3AC */ lw $a0, %lo(D_800EA3AC)($a0)
/* 0CC6FC 800CBAFC 0C033358 */ jal osCreateMesgQueue
/* 0CC700 800CBB00 24060004 */ li $a2, 4
/* 0CC704 800CBB04 3C04800F */ lui $a0, %hi(D_800EA3B0) # $a0, 0x800f
/* 0CC708 800CBB08 3C058019 */ lui $a1, %hi(D_80194038) # $a1, 0x8019
/* 0CC70C 800CBB0C 24A54038 */ addiu $a1, %lo(D_80194038) # addiu $a1, $a1, 0x4038
/* 0CC710 800CBB10 8C84A3B0 */ lw $a0, %lo(D_800EA3B0)($a0)
/* 0CC714 800CBB14 0C033358 */ jal osCreateMesgQueue
/* 0CC718 800CBB18 24060001 */ li $a2, 1
/* 0CC71C 800CBB1C 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f
/* 0CC720 800CBB20 3C058019 */ lui $a1, %hi(D_8019403C) # $a1, 0x8019
/* 0CC724 800CBB24 24A5403C */ addiu $a1, %lo(D_8019403C) # addiu $a1, $a1, 0x403c
/* 0CC728 800CBB28 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0)
/* 0CC72C 800CBB2C 0C033358 */ jal osCreateMesgQueue
/* 0CC730 800CBB30 24060001 */ li $a2, 1
/* 0CC734 800CBB34 8FDF002C */ lw $ra, 0x2c($fp)
/* 0CC738 800CBB38 03C0E825 */ move $sp, $fp
/* 0CC73C 800CBB3C 8FDE0028 */ lw $fp, 0x28($fp)
/* 0CC740 800CBB40 03E00008 */ jr $ra
/* 0CC744 800CBB44 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800CBB48
/* 0CC748 800CBB48 3C03800F */ lui $v1, %hi(D_800EA3A0) # $v1, 0x800f
/* 0CC74C 800CBB4C 2463A3A0 */ addiu $v1, %lo(D_800EA3A0) # addiu $v1, $v1, -0x5c60
/* 0CC750 800CBB50 906F0000 */ lbu $t7, ($v1)
/* 0CC754 800CBB54 3C198019 */ lui $t9, %hi(D_80193820) # $t9, 0x8019
/* 0CC758 800CBB58 27393820 */ addiu $t9, %lo(D_80193820) # addiu $t9, $t9, 0x3820
/* 0CC75C 800CBB5C 000FC0C0 */ sll $t8, $t7, 3
/* 0CC760 800CBB60 03191021 */ addu $v0, $t8, $t9
/* 0CC764 800CBB64 AC440000 */ sw $a0, ($v0)
/* 0CC768 800CBB68 8CA80000 */ lw $t0, ($a1)
/* 0CC76C 800CBB6C 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 0CC770 800CBB70 AC480004 */ sw $t0, 4($v0)
/* 0CC774 800CBB74 90690000 */ lbu $t1, ($v1)
/* 0CC778 800CBB78 27BD0010 */ addiu $sp, $sp, 0x10
/* 0CC77C 800CBB7C 252A0001 */ addiu $t2, $t1, 1
/* 0CC780 800CBB80 03E00008 */ jr $ra
/* 0CC784 800CBB84 A06A0000 */ sb $t2, ($v1)
glabel func_800CBB88
/* 0CC788 800CBB88 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0CC78C 800CBB8C AFBF002C */ sw $ra, 0x2c($sp)
/* 0CC790 800CBB90 AFBE0028 */ sw $fp, 0x28($sp)
/* 0CC794 800CBB94 AFA50034 */ sw $a1, 0x34($sp)
/* 0CC798 800CBB98 03A0F025 */ move $fp, $sp
/* 0CC79C 800CBB9C 0C032ED2 */ jal func_800CBB48
/* 0CC7A0 800CBBA0 27A50034 */ addiu $a1, $sp, 0x34
/* 0CC7A4 800CBBA4 8FDF002C */ lw $ra, 0x2c($fp)
/* 0CC7A8 800CBBA8 03C0E825 */ move $sp, $fp
/* 0CC7AC 800CBBAC 8FDE0028 */ lw $fp, 0x28($fp)
/* 0CC7B0 800CBBB0 03E00008 */ jr $ra
/* 0CC7B4 800CBBB4 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800CBBB8
/* 0CC7B8 800CBBB8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0CC7BC 800CBBBC AFBF002C */ sw $ra, 0x2c($sp)
/* 0CC7C0 800CBBC0 AFBE0028 */ sw $fp, 0x28($sp)
/* 0CC7C4 800CBBC4 AFA50034 */ sw $a1, 0x34($sp)
/* 0CC7C8 800CBBC8 03A0F025 */ move $fp, $sp
/* 0CC7CC 800CBBCC 0C032ED2 */ jal func_800CBB48
/* 0CC7D0 800CBBD0 27A50034 */ addiu $a1, $sp, 0x34
/* 0CC7D4 800CBBD4 8FDF002C */ lw $ra, 0x2c($fp)
/* 0CC7D8 800CBBD8 03C0E825 */ move $sp, $fp
/* 0CC7DC 800CBBDC 8FDE0028 */ lw $fp, 0x28($fp)
/* 0CC7E0 800CBBE0 03E00008 */ jr $ra
/* 0CC7E4 800CBBE4 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800CBBE8
/* 0CC7E8 800CBBE8 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 0CC7EC 800CBBEC 00A07025 */ move $t6, $a1
/* 0CC7F0 800CBBF0 AFBF002C */ sw $ra, 0x2c($sp)
/* 0CC7F4 800CBBF4 AFBE0028 */ sw $fp, 0x28($sp)
/* 0CC7F8 800CBBF8 AFA5003C */ sw $a1, 0x3c($sp)
/* 0CC7FC 800CBBFC 000E7E00 */ sll $t7, $t6, 0x18
/* 0CC800 800CBC00 03A0F025 */ move $fp, $sp
/* 0CC804 800CBC04 AFAF0034 */ sw $t7, 0x34($sp)
/* 0CC808 800CBC08 0C032ED2 */ jal func_800CBB48
/* 0CC80C 800CBC0C 27A50034 */ addiu $a1, $sp, 0x34
/* 0CC810 800CBC10 8FDF002C */ lw $ra, 0x2c($fp)
/* 0CC814 800CBC14 03C0E825 */ move $sp, $fp
/* 0CC818 800CBC18 8FDE0028 */ lw $fp, 0x28($fp)
/* 0CC81C 800CBC1C 03E00008 */ jr $ra
/* 0CC820 800CBC20 27BD0038 */ addiu $sp, $sp, 0x38
glabel func_800CBC24
/* 0CC824 800CBC24 3C02800F */ lui $v0, %hi(D_800EA3A0) # $v0, 0x800f
/* 0CC828 800CBC28 3C03800F */ lui $v1, %hi(D_800EA3A4) # $v1, 0x800f
/* 0CC82C 800CBC2C 9063A3A4 */ lbu $v1, %lo(D_800EA3A4)($v1)
/* 0CC830 800CBC30 9042A3A0 */ lbu $v0, %lo(D_800EA3A0)($v0)
/* 0CC834 800CBC34 3C0F800F */ lui $t7, %hi(D_800EA4A4) # $t7, 0x800f
/* 0CC838 800CBC38 8DEFA4A4 */ lw $t7, %lo(D_800EA4A4)($t7)
/* 0CC83C 800CBC3C 00432023 */ subu $a0, $v0, $v1
/* 0CC840 800CBC40 24840100 */ addiu $a0, $a0, 0x100
/* 0CC844 800CBC44 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0CC848 800CBC48 308E00FF */ andi $t6, $a0, 0xff
/* 0CC84C 800CBC4C AFBE0028 */ sw $fp, 0x28($sp)
/* 0CC850 800CBC50 01EE082A */ slt $at, $t7, $t6
/* 0CC854 800CBC54 03A0F025 */ move $fp, $sp
/* 0CC858 800CBC58 10200003 */ beqz $at, .L800CBC68
/* 0CC85C 800CBC5C AFBF002C */ sw $ra, 0x2c($sp)
/* 0CC860 800CBC60 3C01800F */ lui $at, %hi(D_800EA4A4) # $at, 0x800f
/* 0CC864 800CBC64 AC2EA4A4 */ sw $t6, %lo(D_800EA4A4)($at)
.L800CBC68:
/* 0CC868 800CBC68 307800FF */ andi $t8, $v1, 0xff
/* 0CC86C 800CBC6C 0018CA00 */ sll $t9, $t8, 8
/* 0CC870 800CBC70 304800FF */ andi $t0, $v0, 0xff
/* 0CC874 800CBC74 3C04800F */ lui $a0, %hi(D_800EA3AC) # $a0, 0x800f
/* 0CC878 800CBC78 03282825 */ or $a1, $t9, $t0
/* 0CC87C 800CBC7C 8C84A3AC */ lw $a0, %lo(D_800EA3AC)($a0)
/* 0CC880 800CBC80 0C033630 */ jal osSendMesg
/* 0CC884 800CBC84 00003025 */ move $a2, $zero
/* 0CC888 800CBC88 3C09800F */ lui $t1, %hi(D_800EA3A0) # $t1, 0x800f
/* 0CC88C 800CBC8C 9129A3A0 */ lbu $t1, %lo(D_800EA3A0)($t1)
/* 0CC890 800CBC90 3C01800F */ lui $at, %hi(D_800EA3A4) # $at, 0x800f
/* 0CC894 800CBC94 03C0E825 */ move $sp, $fp
/* 0CC898 800CBC98 A029A3A4 */ sb $t1, %lo(D_800EA3A4)($at)
/* 0CC89C 800CBC9C 8FDF002C */ lw $ra, 0x2c($fp)
/* 0CC8A0 800CBCA0 8FDE0028 */ lw $fp, 0x28($fp)
/* 0CC8A4 800CBCA4 27BD0030 */ addiu $sp, $sp, 0x30
/* 0CC8A8 800CBCA8 03E00008 */ jr $ra
/* 0CC8AC 800CBCAC 00000000 */ nop
glabel func_800CBCB0
/* 0CC8B0 800CBCB0 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 0CC8B4 800CBCB4 AFB20030 */ sw $s2, 0x30($sp)
/* 0CC8B8 800CBCB8 AFB5003C */ sw $s5, 0x3c($sp)
/* 0CC8BC 800CBCBC AFB30034 */ sw $s3, 0x34($sp)
/* 0CC8C0 800CBCC0 00809025 */ move $s2, $a0
/* 0CC8C4 800CBCC4 AFBE0048 */ sw $fp, 0x48($sp)
/* 0CC8C8 800CBCC8 AFB70044 */ sw $s7, 0x44($sp)
/* 0CC8CC 800CBCCC AFB60040 */ sw $s6, 0x40($sp)
/* 0CC8D0 800CBCD0 AFB40038 */ sw $s4, 0x38($sp)
/* 0CC8D4 800CBCD4 AFB1002C */ sw $s1, 0x2c($sp)
/* 0CC8D8 800CBCD8 00047202 */ srl $t6, $a0, 8
/* 0CC8DC 800CBCDC 325800FF */ andi $t8, $s2, 0xff
/* 0CC8E0 800CBCE0 3C138019 */ lui $s3, %hi(D_80193820) # $s3, 0x8019
/* 0CC8E4 800CBCE4 3C15803B */ lui $s5, %hi(D_803B1510) # $s5, 0x803b
/* 0CC8E8 800CBCE8 03A0F025 */ move $fp, $sp
/* 0CC8EC 800CBCEC AFBF004C */ sw $ra, 0x4c($sp)
/* 0CC8F0 800CBCF0 AFB00028 */ sw $s0, 0x28($sp)
/* 0CC8F4 800CBCF4 31D100FF */ andi $s1, $t6, 0xff
/* 0CC8F8 800CBCF8 26B51510 */ addiu $s5, %lo(D_803B1510) # addiu $s5, $s5, 0x1510
/* 0CC8FC 800CBCFC 26733820 */ addiu $s3, %lo(D_80193820) # addiu $s3, $s3, 0x3820
/* 0CC900 800CBD00 03009025 */ move $s2, $t8
/* 0CC904 800CBD04 241400F0 */ li $s4, 240
/* 0CC908 800CBD08 24160148 */ li $s6, 328
/* 0CC90C 800CBD0C 24170041 */ li $s7, 65
/* 0CC910 800CBD10 12510080 */ beq $s2, $s1, .L800CBF14
/* 0CC914 800CBD14 02201025 */ move $v0, $s1
.L800CBD18:
/* 0CC918 800CBD18 305900FF */ andi $t9, $v0, 0xff
/* 0CC91C 800CBD1C 001940C0 */ sll $t0, $t9, 3
/* 0CC920 800CBD20 02688021 */ addu $s0, $s3, $t0
/* 0CC924 800CBD24 92040000 */ lbu $a0, ($s0)
/* 0CC928 800CBD28 26310001 */ addiu $s1, $s1, 1
/* 0CC92C 800CBD2C 322900FF */ andi $t1, $s1, 0xff
/* 0CC930 800CBD30 308A00F0 */ andi $t2, $a0, 0xf0
/* 0CC934 800CBD34 168A0005 */ bne $s4, $t2, .L800CBD4C
/* 0CC938 800CBD38 01208825 */ move $s1, $t1
/* 0CC93C 800CBD3C 0C032E06 */ jal func_800CB818
/* 0CC940 800CBD40 02002025 */ move $a0, $s0
/* 0CC944 800CBD44 10000071 */ b .L800CBF0C
/* 0CC948 800CBD48 02201025 */ move $v0, $s1
.L800CBD4C:
/* 0CC94C 800CBD4C 92020001 */ lbu $v0, 1($s0)
/* 0CC950 800CBD50 28410004 */ slti $at, $v0, 4
/* 0CC954 800CBD54 5020006D */ beql $at, $zero, .L800CBF0C
/* 0CC958 800CBD58 02201025 */ move $v0, $s1
/* 0CC95C 800CBD5C 00560019 */ multu $v0, $s6
/* 0CC960 800CBD60 308C0080 */ andi $t4, $a0, 0x80
/* 0CC964 800CBD64 308D0040 */ andi $t5, $a0, 0x40
/* 0CC968 800CBD68 00005812 */ mflo $t3
/* 0CC96C 800CBD6C 02AB1821 */ addu $v1, $s5, $t3
/* 0CC970 800CBD70 11800005 */ beqz $t4, .L800CBD88
/* 0CC974 800CBD74 00000000 */ nop
/* 0CC978 800CBD78 0C032E06 */ jal func_800CB818
/* 0CC97C 800CBD7C 02002025 */ move $a0, $s0
/* 0CC980 800CBD80 10000062 */ b .L800CBF0C
/* 0CC984 800CBD84 02201025 */ move $v0, $s1
.L800CBD88:
/* 0CC988 800CBD88 51A00020 */ beql $t5, $zero, .L800CBE0C
/* 0CC98C 800CBD8C 8C6D0000 */ lw $t5, ($v1)
/* 0CC990 800CBD90 10970009 */ beq $a0, $s7, .L800CBDB8
/* 0CC994 800CBD94 24010046 */ li $at, 70
/* 0CC998 800CBD98 10810016 */ beq $a0, $at, .L800CBDF4
/* 0CC99C 800CBD9C 24010047 */ li $at, 71
/* 0CC9A0 800CBDA0 1081000B */ beq $a0, $at, .L800CBDD0
/* 0CC9A4 800CBDA4 24010048 */ li $at, 72
/* 0CC9A8 800CBDA8 50810010 */ beql $a0, $at, .L800CBDEC
/* 0CC9AC 800CBDAC 82090004 */ lb $t1, 4($s0)
/* 0CC9B0 800CBDB0 10000056 */ b .L800CBF0C
/* 0CC9B4 800CBDB4 02201025 */ move $v0, $s1
.L800CBDB8:
/* 0CC9B8 800CBDB8 906F0000 */ lbu $t7, ($v1)
/* 0CC9BC 800CBDBC C6040004 */ lwc1 $f4, 4($s0)
/* 0CC9C0 800CBDC0 35F80004 */ ori $t8, $t7, 4
/* 0CC9C4 800CBDC4 A0780000 */ sb $t8, ($v1)
/* 0CC9C8 800CBDC8 1000004F */ b .L800CBF08
/* 0CC9CC 800CBDCC E4640028 */ swc1 $f4, 0x28($v1)
.L800CBDD0:
/* 0CC9D0 800CBDD0 8E190004 */ lw $t9, 4($s0)
/* 0CC9D4 800CBDD4 00194080 */ sll $t0, $t9, 2
/* 0CC9D8 800CBDD8 01194023 */ subu $t0, $t0, $t9
/* 0CC9DC 800CBDDC 00084100 */ sll $t0, $t0, 4
/* 0CC9E0 800CBDE0 10000049 */ b .L800CBF08
/* 0CC9E4 800CBDE4 A4680008 */ sh $t0, 8($v1)
/* 0CC9E8 800CBDE8 82090004 */ lb $t1, 4($s0)
.L800CBDEC:
/* 0CC9EC 800CBDEC 10000046 */ b .L800CBF08
/* 0CC9F0 800CBDF0 A469000C */ sh $t1, 0xc($v1)
.L800CBDF4:
/* 0CC9F4 800CBDF4 920B0003 */ lbu $t3, 3($s0)
/* 0CC9F8 800CBDF8 820A0004 */ lb $t2, 4($s0)
/* 0CC9FC 800CBDFC 006B6021 */ addu $t4, $v1, $t3
/* 0CCA00 800CBE00 10000041 */ b .L800CBF08
/* 0CCA04 800CBE04 A18A0007 */ sb $t2, 7($t4)
/* 0CCA08 800CBE08 8C6D0000 */ lw $t5, ($v1)
.L800CBE0C:
/* 0CCA0C 800CBE0C 000D77C2 */ srl $t6, $t5, 0x1f
/* 0CCA10 800CBE10 51C0003E */ beql $t6, $zero, .L800CBF0C
/* 0CCA14 800CBE14 02201025 */ move $v0, $s1
/* 0CCA18 800CBE18 92050002 */ lbu $a1, 2($s0)
/* 0CCA1C 800CBE1C 28A10010 */ slti $at, $a1, 0x10
/* 0CCA20 800CBE20 10200039 */ beqz $at, .L800CBF08
/* 0CCA24 800CBE24 00057880 */ sll $t7, $a1, 2
/* 0CCA28 800CBE28 006FC021 */ addu $t8, $v1, $t7
/* 0CCA2C 800CBE2C 8F020030 */ lw $v0, 0x30($t8)
/* 0CCA30 800CBE30 3C19803B */ lui $t9, %hi(D_803B5EF0) # $t9, 0x803b
/* 0CCA34 800CBE34 27395EF0 */ addiu $t9, %lo(D_803B5EF0) # addiu $t9, $t9, 0x5ef0
/* 0CCA38 800CBE38 10590033 */ beq $v0, $t9, .L800CBF08
/* 0CCA3C 800CBE3C 2488FFFF */ addiu $t0, $a0, -1
/* 0CCA40 800CBE40 2D010008 */ sltiu $at, $t0, 8
/* 0CCA44 800CBE44 10200030 */ beqz $at, .L800CBF08
/* 0CCA48 800CBE48 00084080 */ sll $t0, $t0, 2
/* 0CCA4C 800CBE4C 3C01800F */ lui $at, %hi(D_800F39C0)
/* 0CCA50 800CBE50 00280821 */ addu $at, $at, $t0
/* 0CCA54 800CBE54 8C2839C0 */ lw $t0, %lo(D_800F39C0)($at)
/* 0CCA58 800CBE58 01000008 */ jr $t0
/* 0CCA5C 800CBE5C 00000000 */ nop
glabel L800CBE60
/* 0CCA60 800CBE60 904B0001 */ lbu $t3, 1($v0)
/* 0CCA64 800CBE64 C6060004 */ lwc1 $f6, 4($s0)
/* 0CCA68 800CBE68 356A0040 */ ori $t2, $t3, 0x40
/* 0CCA6C 800CBE6C A04A0001 */ sb $t2, 1($v0)
/* 0CCA70 800CBE70 10000025 */ b .L800CBF08
/* 0CCA74 800CBE74 E4460020 */ swc1 $f6, 0x20($v0)
glabel L800CBE78
/* 0CCA78 800CBE78 904D0001 */ lbu $t5, 1($v0)
/* 0CCA7C 800CBE7C C6080004 */ lwc1 $f8, 4($s0)
/* 0CCA80 800CBE80 35AE0040 */ ori $t6, $t5, 0x40
/* 0CCA84 800CBE84 A04E0001 */ sb $t6, 1($v0)
/* 0CCA88 800CBE88 1000001F */ b .L800CBF08
/* 0CCA8C 800CBE8C E4480024 */ swc1 $f8, 0x24($v0)
glabel L800CBE90
/* 0CCA90 800CBE90 90590001 */ lbu $t9, 1($v0)
/* 0CCA94 800CBE94 820F0004 */ lb $t7, 4($s0)
/* 0CCA98 800CBE98 37280020 */ ori $t0, $t9, 0x20
/* 0CCA9C 800CBE9C A0480001 */ sb $t0, 1($v0)
/* 0CCAA0 800CBEA0 10000019 */ b .L800CBF08
/* 0CCAA4 800CBEA4 A04F0009 */ sb $t7, 9($v0)
glabel L800CBEA8
/* 0CCAA8 800CBEA8 904B0001 */ lbu $t3, 1($v0)
/* 0CCAAC 800CBEAC C60A0004 */ lwc1 $f10, 4($s0)
/* 0CCAB0 800CBEB0 356A0080 */ ori $t2, $t3, 0x80
/* 0CCAB4 800CBEB4 A04A0001 */ sb $t2, 1($v0)
/* 0CCAB8 800CBEB8 10000013 */ b .L800CBF08
/* 0CCABC 800CBEBC E44A0030 */ swc1 $f10, 0x30($v0)
glabel L800CBEC0
/* 0CCAC0 800CBEC0 820C0004 */ lb $t4, 4($s0)
/* 0CCAC4 800CBEC4 10000010 */ b .L800CBF08
/* 0CCAC8 800CBEC8 A04C0004 */ sb $t4, 4($v0)
glabel L800CBECC
/* 0CCACC 800CBECC 92030003 */ lbu $v1, 3($s0)
/* 0CCAD0 800CBED0 28610008 */ slti $at, $v1, 8
/* 0CCAD4 800CBED4 5020000D */ beql $at, $zero, .L800CBF0C
/* 0CCAD8 800CBED8 02201025 */ move $v0, $s1
/* 0CCADC 800CBEDC 820D0004 */ lb $t5, 4($s0)
/* 0CCAE0 800CBEE0 00437021 */ addu $t6, $v0, $v1
/* 0CCAE4 800CBEE4 10000008 */ b .L800CBF08
/* 0CCAE8 800CBEE8 A1CD0058 */ sb $t5, 0x58($t6)
glabel L800CBEEC
/* 0CCAEC 800CBEEC 82180004 */ lb $t8, 4($s0)
/* 0CCAF0 800CBEF0 90490000 */ lbu $t1, ($v0)
/* 0CCAF4 800CBEF4 0018C900 */ sll $t9, $t8, 4
/* 0CCAF8 800CBEF8 33280010 */ andi $t0, $t9, 0x10
/* 0CCAFC 800CBEFC 312BFFEF */ andi $t3, $t1, 0xffef
/* 0CCB00 800CBF00 010B5025 */ or $t2, $t0, $t3
/* 0CCB04 800CBF04 A04A0000 */ sb $t2, ($v0)
.L800CBF08:
glabel L800CBF08
/* 0CCB08 800CBF08 02201025 */ move $v0, $s1
.L800CBF0C:
/* 0CCB0C 800CBF0C 1651FF82 */ bne $s2, $s1, .L800CBD18
/* 0CCB10 800CBF10 A2000000 */ sb $zero, ($s0)
.L800CBF14:
/* 0CCB14 800CBF14 8FDF004C */ lw $ra, 0x4c($fp)
/* 0CCB18 800CBF18 03C0E825 */ move $sp, $fp
/* 0CCB1C 800CBF1C 8FD00028 */ lw $s0, 0x28($fp)
/* 0CCB20 800CBF20 8FD1002C */ lw $s1, 0x2c($fp)
/* 0CCB24 800CBF24 8FD20030 */ lw $s2, 0x30($fp)
/* 0CCB28 800CBF28 8FD30034 */ lw $s3, 0x34($fp)
/* 0CCB2C 800CBF2C 8FD40038 */ lw $s4, 0x38($fp)
/* 0CCB30 800CBF30 8FD5003C */ lw $s5, 0x3c($fp)
/* 0CCB34 800CBF34 8FD60040 */ lw $s6, 0x40($fp)
/* 0CCB38 800CBF38 8FD70044 */ lw $s7, 0x44($fp)
/* 0CCB3C 800CBF3C 8FDE0048 */ lw $fp, 0x48($fp)
/* 0CCB40 800CBF40 03E00008 */ jr $ra
/* 0CCB44 800CBF44 27BD0050 */ addiu $sp, $sp, 0x50
glabel func_800CBF48
/* 0CCB48 800CBF48 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0CCB4C 800CBF4C AFBF0024 */ sw $ra, 0x24($sp)
/* 0CCB50 800CBF50 AFBE0020 */ sw $fp, 0x20($sp)
/* 0CCB54 800CBF54 0C032EAD */ jal func_800CBAB4
/* 0CCB58 800CBF58 03A0F025 */ move $fp, $sp
/* 0CCB5C 800CBF5C 8FDF0024 */ lw $ra, 0x24($fp)
/* 0CCB60 800CBF60 03C0E825 */ move $sp, $fp
/* 0CCB64 800CBF64 8FDE0020 */ lw $fp, 0x20($fp)
/* 0CCB68 800CBF68 03E00008 */ jr $ra
/* 0CCB6C 800CBF6C 27BD0028 */ addiu $sp, $sp, 0x28

3101
asm/audio/seqplayer.s Normal file

File diff suppressed because it is too large Load Diff

2353
asm/audio/synthesis.s Normal file

File diff suppressed because it is too large Load Diff

852
asm/boot.s Normal file
View File

@ -0,0 +1,852 @@
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
# 0xA0000000-0xBFFFFFFF: KSEG1 direct map non-cache mirror of 0x00000000
# 0xA4000000-0xA4000FFF: RSP DMEM
# 0xA4000000-0xA400003F: ROM header
.section .text, "ax"
# 0xA4000040-0xA4000B6F: IPL3
# IPL3 entry point jumped to from IPL2
glabel ipl3_entry # 0xA4000040
mtc0 $zero, $13
mtc0 $zero, $9
mtc0 $zero, $11
lui $t0, %hi(RI_MODE_REG)
addiu $t0, %lo(RI_MODE_REG)
lw $t1, 0xc($t0)
bnez $t1, .LA4000410
nop
addiu $sp, $sp, -0x18
sw $s3, ($sp)
sw $s4, 4($sp)
sw $s5, 8($sp)
sw $s6, 0xc($sp)
sw $s7, 0x10($sp)
lui $t0, %hi(RI_MODE_REG)
addiu $t0, %lo(RI_MODE_REG)
lui $t2, (0xa3f80000 >> 16)
lui $t3, (0xa3f00000 >> 16)
lui $t4, %hi(MI_MODE_REG)
addiu $t4, %lo(MI_MODE_REG)
ori $t1, $zero, 64
sw $t1, 4($t0)
li $s1, 8000
.LA400009C:
nop
addi $s1, $s1, -1
bnez $s1, .LA400009C
nop
sw $zero, 8($t0)
ori $t1, $zero, 20
sw $t1, 0xc($t0)
sw $zero, ($t0)
li $s1, 4
.LA40000C0:
nop
addi $s1, $s1, -1
bnez $s1, .LA40000C0
nop
ori $t1, $zero, 14
sw $t1, ($t0)
li $s1, 32
.LA40000DC:
addi $s1, $s1, -1
bnez $s1, .LA40000DC
ori $t1, $zero, 271
sw $t1, ($t4)
lui $t1, (0x18082838 >> 16)
ori $t1, (0x18082838 & 0xFFFF)
sw $t1, 0x8($t2)
sw $zero, 0x14($t2)
lui $t1, 0x8000
sw $t1, 0x4($t2)
move $t5, $zero
move $t6, $zero
lui $t7, (0xA3F00000 >> 16)
move $t8, $zero
lui $t9, (0xA3F00000 >> 16)
lui $s6, (0xA0000000 >> 16)
move $s7, $zero
lui $a2, (0xA3F00000 >> 16)
lui $a3, (0xA0000000 >> 16)
move $s2, $zero
lui $s4, (0xA0000000 >> 16)
addiu $sp, $sp, -0x48
move $fp, $sp
lui $s0, %hi(MI_VERSION_REG)
lw $s0, %lo(MI_VERSION_REG)($s0)
lui $s1, (0x01010101 >> 16)
addiu $s1, (0x01010101 & 0xFFFF)
bne $s0, $s1, .LA4000160
nop
li $s0, 512
ori $s1, $t3, 0x4000
b .LA4000168
nop
.LA4000160:
li $s0, 1024
ori $s1, $t3, 0x8000
.LA4000168:
sw $t6, 4($s1)
addiu $s5, $t7, 0xc
jal func_A4000778
nop
beqz $v0, .LA400025C
nop
sw $v0, ($sp)
li $t1, 8192
sw $t1, ($t4)
lw $t3, ($t7)
lui $t0, 0xf0ff
and $t3, $t3, $t0
sw $t3, 4($sp)
addi $sp, $sp, 8
li $t1, 4096
sw $t1, ($t4)
lui $t0, 0xb019
bne $t3, $t0, .LA40001E0
nop
lui $t0, 0x800
add $t8, $t8, $t0
add $t9, $t9, $s0
add $t9, $t9, $s0
lui $t0, 0x20
add $s6, $s6, $t0
add $s4, $s4, $t0
sll $s2, $s2, 1
addi $s2, $s2, 1
b .LA40001E8
nop
.LA40001E0:
lui $t0, 0x10
add $s4, $s4, $t0
.LA40001E8:
li $t0, 8192
sw $t0, ($t4)
lw $t1, 0x24($t7)
lw $k0, ($t7)
li $t0, 4096
sw $t0, ($t4)
andi $t1, $t1, 0xffff
li $t0, 1280
bne $t1, $t0, .LA4000230
nop
lui $k1, 0x100
and $k0, $k0, $k1
bnez $k0, .LA4000230
nop
lui $t0, (0x101C0A04 >> 16)
ori $t0, (0x101C0A04 & 0xFFFF)
sw $t0, 0x18($t7)
b .LA400023C
.LA4000230:
lui $t0, (0x080C1204 >> 16)
ori $t0, (0x080C1204 & 0xFFFF)
sw $t0, 0x18($t7)
.LA400023C:
lui $t0, 0x800
add $t6, $t6, $t0
add $t7, $t7, $s0
add $t7, $t7, $s0
addiu $t5, $t5, 1
sltiu $t0, $t5, 8
bnez $t0, .LA4000168
nop
.LA400025C:
li $t0, 0xc4000000
sw $t0, 0xc($t2)
li $t0, 0x80000000
sw $t0, 0x4($t2)
move $sp, $fp
move $v1, $zero
.LA4000274:
lw $t1, 4($sp)
lui $t0, 0xb009
bne $t1, $t0, .LA40002D8
nop
sw $t8, 4($s1)
addiu $s5, $t9, 0xc
lw $a0, ($sp)
addi $sp, $sp, 8
li $a1, 1
jal func_A4000A40
nop
lw $t0, ($s6)
lui $t0, 8
add $t0, $t0, $s6
lw $t1, ($t0)
lw $t0, ($s6)
lui $t0, 8
add $t0, $t0, $s6
lw $t1, ($t0)
lui $t0, 0x400
add $t6, $t6, $t0
add $t9, $t9, $s0
lui $t0, 0x10
add $s6, $s6, $t0
b .LA400035C
.LA40002D8:
sw $s7, 4($s1)
addiu $s5, $a2, 0xc
lw $a0, ($sp)
addi $sp, $sp, 8
li $a1, 1
jal func_A4000A40
nop
lw $t0, ($a3)
lui $t0, 8
add $t0, $t0, $a3
lw $t1, ($t0)
lui $t0, 0x10
add $t0, $t0, $a3
lw $t1, ($t0)
lui $t0, 0x18
add $t0, $t0, $a3
lw $t1, ($t0)
lw $t0, ($a3)
lui $t0, 8
add $t0, $t0, $a3
lw $t1, ($t0)
lui $t0, 0x10
add $t0, $t0, $a3
lw $t1, ($t0)
lui $t0, 0x18
add $t0, $t0, $a3
lw $t1, ($t0)
lui $t0, 0x800
add $s7, $s7, $t0
add $a2, $a2, $s0
add $a2, $a2, $s0
lui $t0, 0x20
add $a3, $a3, $t0
.LA400035C:
addiu $v1, $v1, 1
slt $t0, $v1, $t5
bnez $t0, .LA4000274
nop
lui $t2, %hi(RI_REFRESH_REG)
sll $s2, $s2, 0x13
lui $t1, (0x00063634 >> 16)
ori $t1, (0x00063634 & 0xFFFF)
or $t1, $t1, $s2
sw $t1, %lo(RI_REFRESH_REG)($t2)
lw $t1, %lo(RI_REFRESH_REG)($t2)
lui $t0, (0xA0000300 >> 16)
ori $t0, (0xA0000300 & 0xFFFF)
lui $t1, (0x0FFFFFFF >> 16)
ori $t1, (0x0FFFFFFF & 0xFFFF)
and $s6, $s6, $t1
sw $s6, 0x18($t0)
move $sp, $fp
addiu $sp, $sp, 0x48
lw $s3, ($sp)
lw $s4, 4($sp)
lw $s5, 8($sp)
lw $s6, 0xc($sp)
lw $s7, 0x10($sp)
addiu $sp, $sp, 0x18
lui $t0, %hi(EXCEPTION_TLB_MISS)
addiu $t0, $t0, %lo(EXCEPTION_TLB_MISS)
addiu $t1, $t0, 0x4000
addiu $t1, $t1, -0x20
mtc0 $zero, $28
mtc0 $zero, $29
.LA40003D8:
cache 8, ($t0)
sltu $at, $t0, $t1
bnez $at, .LA40003D8
addiu $t0, $t0, 0x20
lui $t0, %hi(EXCEPTION_TLB_MISS)
addiu $t0, %lo(EXCEPTION_TLB_MISS)
addiu $t1, $t0, 0x2000
addiu $t1, $t1, -0x10
.LA40003F8:
cache 9, ($t0)
sltu $at, $t0, $t1
bnez $at, .LA40003F8
addiu $t0, $t0, 0x10
b .LA4000458
nop
.LA4000410:
lui $t0, %hi(EXCEPTION_TLB_MISS)
addiu $t0, %lo(EXCEPTION_TLB_MISS)
addiu $t1, $t0, 0x4000
addiu $t1, $t1, -0x20
mtc0 $zero, $28
mtc0 $zero, $29
.LA4000428:
cache 8, ($t0)
sltu $at, $t0, $t1
bnez $at, .LA4000428
addiu $t0, $t0, 0x20
lui $t0, %hi(EXCEPTION_TLB_MISS)
addiu $t0, %lo(EXCEPTION_TLB_MISS)
addiu $t1, $t0, 0x2000
addiu $t1, $t1, -0x10
.LA4000448:
cache 1, ($t0)
sltu $at, $t0, $t1
bnez $at, .LA4000448
addiu $t0, $t0, 0x10
.LA4000458:
lui $t2, %hi(SP_DMEM)
addiu $t2, $t2, %lo(SP_DMEM)
lui $t3, 0xfff0
lui $t1, 0x0010
and $t2, $t2, $t3
lui $t0, %hi(SP_DMEM_UNK0)
addiu $t1, -1
lui $t3, %hi(SP_DMEM_UNK1)
addiu $t0, %lo(SP_DMEM_UNK0)
addiu $t3, %lo(SP_DMEM_UNK1)
and $t0, $t0, $t1
and $t3, $t3, $t1
lui $t1, 0xa000
or $t0, $t0, $t2
or $t3, $t3, $t2
addiu $t1, $t1, 0
.LA4000498:
lw $t5, ($t0)
addiu $t0, $t0, 4
sltu $at, $t0, $t3
addiu $t1, $t1, 4
bnez $at, .LA4000498
sw $t5, -4($t1)
lui $t4, %hi(EXCEPTION_TLB_MISS)
addiu $t4, %lo(EXCEPTION_TLB_MISS)
jr $t4
nop
lui $t3, %hi(D_B0000008)
lw $t1, %lo(D_B0000008)($t3)
lui $t2, (0x1FFFFFFF >> 16)
ori $t2, (0x1FFFFFFF & 0xFFFF)
lui $at, %hi(PI_DRAM_ADDR_REG)
and $t1, $t1, $t2
sw $t1, %lo(PI_DRAM_ADDR_REG)($at)
lui $t0, %hi(PI_STATUS_REG)
.LA40004D0:
lw $t0, %lo(PI_STATUS_REG)($t0)
andi $t0, $t0, 2
bnezl $t0, .LA40004D0
lui $t0, %hi(PI_STATUS_REG)
li $t0, 0x1000
add $t0, $t0, $t3
and $t0, $t0, $t2
lui $at, %hi(PI_CART_ADDR_REG)
sw $t0, %lo(PI_CART_ADDR_REG)($at)
lui $t2, 0x0010
addiu $t2, 0xFFFF
lui $at, %hi(PI_WR_LEN_REG)
sw $t2, %lo(PI_WR_LEN_REG)($at)
.LA4000514:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lui $t3, %hi(PI_STATUS_REG)
lw $t3, %lo(PI_STATUS_REG)($t3)
andi $t3, $t3, 0x1
bnez $t3, .LA4000514
nop
lui $t3, %hi(D_B0000008)
lw $a0, %lo(D_B0000008)($t3)
move $a1, $s6
lui $at, (0x5D588B65 >> 16)
ori $at, (0x5D588B65 & 0xFFFF)
multu $a1, $at
addiu $sp, $sp, -0x20
sw $ra, 0x1c($sp)
sw $s0, 0x14($sp)
lui $ra, 0x10
move $v1, $zero
move $t0, $zero
move $t1, $a0
li $t5, 32
mflo $v0
addiu $v0, $v0, 1
move $a3, $v0
move $t2, $v0
move $t3, $v0
move $s0, $v0
move $a2, $v0
move $t4, $v0
.LA40005F0:
lw $v0, ($t1)
addu $v1, $a3, $v0
sltu $at, $v1, $a3
beqz $at, .LA4000608
move $a1, $v1
addiu $t2, $t2, 1
.LA4000608:
andi $v1, $v0, 0x1f
subu $t7, $t5, $v1
srlv $t8, $v0, $t7
sllv $t6, $v0, $v1
or $a0, $t6, $t8
sltu $at, $a2, $v0
move $a3, $a1
xor $t3, $t3, $v0
beqz $at, .LA400063C
addu $s0, $s0, $a0
xor $t9, $a3, $v0
b .LA4000640
xor $a2, $t9, $a2
.LA400063C:
xor $a2, $a2, $a0
.LA4000640:
addiu $t0, $t0, 4
xor $t7, $v0, $s0
addiu $t1, $t1, 4
bne $t0, $ra, .LA40005F0
addu $t4, $t7, $t4
xor $t6, $a3, $t2
xor $a3, $t6, $t3
xor $t8, $s0, $a2
xor $s0, $t8, $t4
lui $t3, %hi(D_B0000010)
lw $t0, %lo(D_B0000010)($t3)
bne $a3, $t0, halt
nop
lw $t0, %lo(D_B0000014)($t3)
bne $s0, $t0, halt
nop
bal func_A4000690
nop
halt:
bal halt
nop
func_A4000690:
lui $t1, %hi(SP_PC)
lw $t1, %lo(SP_PC)($t1)
lw $s0, 0x14($sp)
lw $ra, 0x1c($sp)
beqz $t1, .LA40006BC
addiu $sp, $sp, 0x20
li $t2, 65
lui $at, %hi(SP_STATUS_REG)
sw $t2, %lo(SP_STATUS_REG)($at)
lui $at, %hi(SP_PC)
sw $zero, %lo(SP_PC)($at)
.LA40006BC:
lui $t3, (0x00AAAAAE >> 16)
ori $t3, (0x00AAAAAE & 0xFFFF)
lui $at, %hi(SP_STATUS_REG)
sw $t3, %lo(SP_STATUS_REG)($at)
lui $at, %hi(MI_INTR_MASK_REG)
li $t0, 1365
sw $t0, %lo(MI_INTR_MASK_REG)($at)
lui $at, %hi(SI_STATUS_REG)
sw $zero, %lo(SI_STATUS_REG)($at)
lui $at, %hi(AI_STATUS_REG)
sw $zero, %lo(AI_STATUS_REG)($at)
lui $at, %hi(MI_MODE_REG)
li $t1, 2048
sw $t1, %lo(MI_MODE_REG)($at)
li $t1, 2
lui $at, %hi(PI_STATUS_REG)
lui $t0, (0xA0000300 >> 16)
ori $t0, (0xA0000300 & 0xFFFF)
sw $t1, %lo(PI_STATUS_REG)($at)
sw $s7, 0x14($t0)
sw $s5, 0xc($t0)
sw $s3, 0x4($t0)
beqz $s3, .LA4000728
sw $s4, ($t0)
lui $t1, 0xa600
b .LA4000730
addiu $t1, $t1, 0
.LA4000728:
lui $t1, 0xb000
addiu $t1, $t1, 0
.LA4000730:
sw $t1, 0x8($t0)
lui $t0, %hi(SP_DMEM)
addiu $t0, %lo(SP_DMEM)
addi $t1, $t0, 0x1000
.LA4000740:
addiu $t0, $t0, 4
bne $t0, $t1, .LA4000740
sw $zero, -4($t0)
lui $t0, %hi(SP_IMEM)
addiu $t0, %lo(SP_IMEM)
addi $t1, $t0, 0x1000
.LA4000758:
addiu $t0, $t0, 4
bne $t0, $t1, .LA4000758
sw $zero, -4($t0)
lui $t3, %hi(D_B0000008)
lw $t1, %lo(D_B0000008)($t3)
jr $t1
nop
nop
func_A4000778:
addiu $sp, $sp, -0xa0
sw $s0, 0x40($sp)
sw $s1, 0x44($sp)
move $s1, $zero
move $s0, $zero
sw $v0, ($sp)
sw $v1, 4($sp)
sw $a0, 8($sp)
sw $a1, 0xc($sp)
sw $a2, 0x10($sp)
sw $a3, 0x14($sp)
sw $t0, 0x18($sp)
sw $t1, 0x1c($sp)
sw $t2, 0x20($sp)
sw $t3, 0x24($sp)
sw $t4, 0x28($sp)
sw $t5, 0x2c($sp)
sw $t6, 0x30($sp)
sw $t7, 0x34($sp)
sw $t8, 0x38($sp)
sw $t9, 0x3c($sp)
sw $s2, 0x48($sp)
sw $s3, 0x4c($sp)
sw $s4, 0x50($sp)
sw $s5, 0x54($sp)
sw $s6, 0x58($sp)
sw $s7, 0x5c($sp)
sw $fp, 0x60($sp)
sw $ra, 0x64($sp)
.LA40007EC:
jal func_A4000880
nop
addiu $s0, $s0, 1
slti $t1, $s0, 4
bnez $t1, .LA40007EC
addu $s1, $s1, $v0
srl $a0, $s1, 2
jal func_A4000A40
li $a1, 1
lw $ra, 0x64($sp)
srl $v0, $s1, 2
lw $s1, 0x44($sp)
lw $v1, 4($sp)
lw $a0, 8($sp)
lw $a1, 0xc($sp)
lw $a2, 0x10($sp)
lw $a3, 0x14($sp)
lw $t0, 0x18($sp)
lw $t1, 0x1c($sp)
lw $t2, 0x20($sp)
lw $t3, 0x24($sp)
lw $t4, 0x28($sp)
lw $t5, 0x2c($sp)
lw $t6, 0x30($sp)
lw $t7, 0x34($sp)
lw $t8, 0x38($sp)
lw $t9, 0x3c($sp)
lw $s0, 0x40($sp)
lw $s2, 0x48($sp)
lw $s3, 0x4c($sp)
lw $s4, 0x50($sp)
lw $s5, 0x54($sp)
lw $s6, 0x58($sp)
lw $s7, 0x5c($sp)
lw $fp, 0x60($sp)
jr $ra
addiu $sp, $sp, 0xa0
func_A4000880:
addiu $sp, $sp, -0x20
sw $ra, 0x1c($sp)
move $t1, $zero
move $t3, $zero
move $t4, $zero
.LA4000894:
slti $k0, $t4, 0x40
beql $k0, $zero, .LA40008FC
move $v0, $zero
jal func_A400090C
move $a0, $t4
blezl $v0, .LA40008CC
slti $k0, $t1, 0x50
subu $k0, $v0, $t1
multu $k0, $t4
move $t1, $v0
mflo $k0
addu $t3, $t3, $k0
nop
slti $k0, $t1, 0x50
.LA40008CC:
bnez $k0, .LA4000894
addiu $t4, $t4, 1
sll $a0, $t3, 2
subu $a0, $a0, $t3
sll $a0, $a0, 2
subu $a0, $a0, $t3
sll $a0, $a0, 1
jal func_A4000980
addiu $a0, $a0, -0x370
b .LA4000900
lw $ra, 0x1c($sp)
move $v0, $zero
.LA40008FC:
lw $ra, 0x1c($sp)
.LA4000900:
addiu $sp, $sp, 0x20
jr $ra
nop
func_A400090C:
addiu $sp, $sp, -0x28
sw $ra, 0x1c($sp)
move $v0, $zero
jal func_A4000A40
li $a1, 2
move $fp, $zero
li $k0, -1
.LA4000928:
sw $k0, 4($s4)
lw $v1, 4($s4)
sw $k0, ($s4)
sw $k0, ($s4)
move $gp, $zero
srl $v1, $v1, 0x10
.LA4000940:
andi $k0, $v1, 1
beql $k0, $zero, .LA4000954
addiu $gp, $gp, 1
addiu $v0, $v0, 1
addiu $gp, $gp, 1
.LA4000954:
slti $k0, $gp, 8
bnez $k0, .LA4000940
srl $v1, $v1, 1
addiu $fp, $fp, 1
slti $k0, $fp, 0xa
bnezl $k0, .LA4000928
li $k0, -1
lw $ra, 0x1c($sp)
addiu $sp, $sp, 0x28
jr $ra
nop
func_A4000980:
addiu $sp, $sp, -0x28
sw $ra, 0x1c($sp)
sw $a0, 0x20($sp)
sb $zero, 0x27($sp)
move $t0, $zero
move $t2, $zero
li $t5, 51200
move $t6, $zero
slti $k0, $t6, 0x40
.LA40009A4:
bnezl $k0, .LA40009B8
move $a0, $t6
b .LA4000A30
move $v0, $zero
move $a0, $t6
.LA40009B8:
jal func_A4000A40
li $a1, 1
jal func_A4000AD0
addiu $a0, $sp, 0x27
jal func_A4000AD0
addiu $a0, $sp, 0x27
lbu $k0, 0x27($sp)
li $k1, 800
lw $a0, 0x20($sp)
multu $k0, $k1
mflo $t0
subu $k0, $t0, $a0
bgezl $k0, .LA40009F8
slt $k1, $k0, $t5
subu $k0, $a0, $t0
slt $k1, $k0, $t5
.LA40009F8:
beql $k1, $zero, .LA4000A0C
lw $a0, 0x20($sp)
move $t5, $k0
move $t2, $t6
lw $a0, 0x20($sp)
.LA4000A0C:
slt $k1, $t0, $a0
beql $k1, $zero, .LA4000A2C
addu $v0, $t2, $t6
addiu $t6, $t6, 1
slti $k1, $t6, 0x41
bnezl $k1, .LA40009A4
slti $k0, $t6, 0x40
addu $v0, $t2, $t6
.LA4000A2C:
srl $v0, $v0, 1
.LA4000A30:
lw $ra, 0x1c($sp)
addiu $sp, $sp, 0x28
jr $ra
nop
func_A4000A40:
addiu $sp, $sp, -0x28
andi $a0, $a0, 0xff
li $k1, 1
xori $a0, $a0, 0x3f
sw $ra, 0x1c($sp)
bne $a1, $k1, .LA4000A64
lui $t7, 0x4600
lui $k0, 0x8000
or $t7, $t7, $k0
.LA4000A64:
andi $k0, $a0, 1
sll $k0, $k0, 6
or $t7, $t7, $k0
andi $k0, $a0, 2
sll $k0, $k0, 0xd
or $t7, $t7, $k0
andi $k0, $a0, 4
sll $k0, $k0, 0x14
or $t7, $t7, $k0
andi $k0, $a0, 8
sll $k0, $k0, 4
or $t7, $t7, $k0
andi $k0, $a0, 0x10
sll $k0, $k0, 0xb
or $t7, $t7, $k0
andi $k0, $a0, 0x20
sll $k0, $k0, 0x12
or $t7, $t7, $k0
li $k1, 1
bne $a1, $k1, .LA4000AC0
sw $t7, ($s5)
lui $k0, %hi(MI_MODE_REG)
sw $zero, %lo(MI_MODE_REG)($k0)
.LA4000AC0:
lw $ra, 0x1c($sp)
addiu $sp, $sp, 0x28
jr $ra
nop
func_A4000AD0:
addiu $sp, $sp, -0x28
sw $ra, 0x1c($sp)
li $k0, 0x2000
lui $k1, %hi(MI_MODE_REG)
sw $k0, %lo(MI_MODE_REG)($k1)
move $fp, $zero
lw $fp, ($s5)
li $k0, 0x1000
sw $k0, %lo(MI_MODE_REG)($k1)
li $k1, 0x40
and $k1, $k1, $fp
srl $k1, $k1, 6
move $k0, $zero
or $k0, $k0, $k1
li $k1, 0x4000
and $k1, $k1, $fp
srl $k1, $k1, 0xd
or $k0, $k0, $k1
li $k1, 0x400000
and $k1, $k1, $fp
srl $k1, $k1, 0x14
or $k0, $k0, $k1
li $k1, 0x80
and $k1, $k1, $fp
srl $k1, $k1, 4
or $k0, $k0, $k1
li $k1, 0x8000
and $k1, $k1, $fp
srl $k1, $k1, 0xb
or $k0, $k0, $k1
li $k1, 0x800000
and $k1, $k1, $fp
srl $k1, $k1, 0x12
or $k0, $k0, $k1
sb $k0, ($a0)
lw $ra, 0x1c($sp)
addiu $sp, $sp, 0x28
jr $ra
nop
nop
# 0xA4000B70-0xA4000FFF: IPL3 Font
glabel ipl3_font
.incbin "textures/raw/ipl3_font_00.ia1"
.incbin "textures/raw/ipl3_font_01.ia1"
.incbin "textures/raw/ipl3_font_02.ia1"
.incbin "textures/raw/ipl3_font_03.ia1"
.incbin "textures/raw/ipl3_font_04.ia1"
.incbin "textures/raw/ipl3_font_05.ia1"
.incbin "textures/raw/ipl3_font_06.ia1"
.incbin "textures/raw/ipl3_font_07.ia1"
.incbin "textures/raw/ipl3_font_08.ia1"
.incbin "textures/raw/ipl3_font_09.ia1"
.incbin "textures/raw/ipl3_font_10.ia1"
.incbin "textures/raw/ipl3_font_11.ia1"
.incbin "textures/raw/ipl3_font_12.ia1"
.incbin "textures/raw/ipl3_font_13.ia1"
.incbin "textures/raw/ipl3_font_14.ia1"
.incbin "textures/raw/ipl3_font_15.ia1"
.incbin "textures/raw/ipl3_font_16.ia1"
.incbin "textures/raw/ipl3_font_17.ia1"
.incbin "textures/raw/ipl3_font_18.ia1"
.incbin "textures/raw/ipl3_font_19.ia1"
.incbin "textures/raw/ipl3_font_20.ia1"
.incbin "textures/raw/ipl3_font_21.ia1"
.incbin "textures/raw/ipl3_font_22.ia1"
.incbin "textures/raw/ipl3_font_23.ia1"
.incbin "textures/raw/ipl3_font_24.ia1"
.incbin "textures/raw/ipl3_font_25.ia1"
.incbin "textures/raw/ipl3_font_26.ia1"
.incbin "textures/raw/ipl3_font_27.ia1"
.incbin "textures/raw/ipl3_font_28.ia1"
.incbin "textures/raw/ipl3_font_29.ia1"
.incbin "textures/raw/ipl3_font_30.ia1"
.incbin "textures/raw/ipl3_font_31.ia1"
.incbin "textures/raw/ipl3_font_32.ia1"
.incbin "textures/raw/ipl3_font_33.ia1"
.incbin "textures/raw/ipl3_font_34.ia1"
.incbin "textures/raw/ipl3_font_35.ia1"
.incbin "textures/raw/ipl3_font_36.ia1"
.incbin "textures/raw/ipl3_font_37.ia1"
.incbin "textures/raw/ipl3_font_38.ia1"
.incbin "textures/raw/ipl3_font_39.ia1"
.incbin "textures/raw/ipl3_font_40.ia1"
.incbin "textures/raw/ipl3_font_41.ia1"
.incbin "textures/raw/ipl3_font_42.ia1"
.incbin "textures/raw/ipl3_font_43.ia1"
.incbin "textures/raw/ipl3_font_44.ia1"
.incbin "textures/raw/ipl3_font_45.ia1"
.incbin "textures/raw/ipl3_font_46.ia1"
.incbin "textures/raw/ipl3_font_47.ia1"
.incbin "textures/raw/ipl3_font_48.ia1"
.incbin "textures/raw/ipl3_font_49.ia1"
.fill 0x12

477
asm/code_800040C0.s Normal file
View File

@ -0,0 +1,477 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_800040C0
/* 004CC0 800040C0 27BDFFF8 */ addiu $sp, $sp, -8
/* 004CC4 800040C4 000770C0 */ sll $t6, $a3, 3
/* 004CC8 800040C8 3C0F800E */ lui $t7, %hi(D_800DC674) # $t7, 0x800e
/* 004CCC 800040CC AFB00004 */ sw $s0, 4($sp)
/* 004CD0 800040D0 25EFC674 */ addiu $t7, %lo(D_800DC674) # addiu $t7, $t7, -0x398c
/* 004CD4 800040D4 00808025 */ move $s0, $a0
/* 004CD8 800040D8 01CF4021 */ addu $t0, $t6, $t7
/* 004CDC 800040DC 24070140 */ li $a3, 320
/* 004CE0 800040E0 00001025 */ move $v0, $zero
/* 004CE4 800040E4 240A0008 */ li $t2, 8
/* 004CE8 800040E8 3409FFFF */ li $t1, 65535
.L800040EC:
/* 004CEC 800040EC 91030000 */ lbu $v1, ($t0)
/* 004CF0 800040F0 24040005 */ li $a0, 5
.L800040F4:
/* 004CF4 800040F4 30780001 */ andi $t8, $v1, 1
/* 004CF8 800040F8 13000008 */ beqz $t8, .L8000411C
/* 004CFC 800040FC 00C2C821 */ addu $t9, $a2, $v0
/* 004D00 80004100 03270019 */ multu $t9, $a3
/* 004D04 80004104 00005812 */ mflo $t3
/* 004D08 80004108 01656021 */ addu $t4, $t3, $a1
/* 004D0C 8000410C 01846821 */ addu $t5, $t4, $a0
/* 004D10 80004110 000D7040 */ sll $t6, $t5, 1
/* 004D14 80004114 020E7821 */ addu $t7, $s0, $t6
/* 004D18 80004118 A5E90000 */ sh $t1, ($t7)
.L8000411C:
/* 004D1C 8000411C 2484FFFF */ addiu $a0, $a0, -1
/* 004D20 80004120 0003C043 */ sra $t8, $v1, 1
/* 004D24 80004124 0481FFF3 */ bgez $a0, .L800040F4
/* 004D28 80004128 03001825 */ move $v1, $t8
/* 004D2C 8000412C 24420001 */ addiu $v0, $v0, 1
/* 004D30 80004130 144AFFEE */ bne $v0, $t2, .L800040EC
/* 004D34 80004134 25080001 */ addiu $t0, $t0, 1
/* 004D38 80004138 8FB00004 */ lw $s0, 4($sp)
/* 004D3C 8000413C 03E00008 */ jr $ra
/* 004D40 80004140 27BD0008 */ addiu $sp, $sp, 8
glabel crash_screen_draw_square
/* 004D44 80004144 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 004D48 80004148 AFB40028 */ sw $s4, 0x28($sp)
/* 004D4C 8000414C AFB30024 */ sw $s3, 0x24($sp)
/* 004D50 80004150 AFB20020 */ sw $s2, 0x20($sp)
/* 004D54 80004154 AFB00018 */ sw $s0, 0x18($sp)
/* 004D58 80004158 00809825 */ move $s3, $a0
/* 004D5C 8000415C AFBF002C */ sw $ra, 0x2c($sp)
/* 004D60 80004160 AFB1001C */ sw $s1, 0x1c($sp)
/* 004D64 80004164 2410002E */ li $s0, 46
/* 004D68 80004168 24120028 */ li $s2, 40
/* 004D6C 8000416C 2414002C */ li $s4, 44
/* 004D70 80004170 240D0006 */ li $t5, 6
/* 004D74 80004174 240C0006 */ li $t4, 6
/* 004D78 80004178 240B0006 */ li $t3, 6
/* 004D7C 8000417C 240A0006 */ li $t2, 6
/* 004D80 80004180 24090006 */ li $t1, 6
/* 004D84 80004184 3407FFFF */ li $a3, 65535
/* 004D88 80004188 3406F801 */ li $a2, 63489
.L8000418C:
/* 004D8C 8000418C 0250082A */ slt $at, $s2, $s0
/* 004D90 80004190 10200032 */ beqz $at, .L8000425C
/* 004D94 80004194 02408825 */ move $s1, $s2
/* 004D98 80004198 0250082A */ slt $at, $s2, $s0
.L8000419C:
/* 004D9C 8000419C 1020002C */ beqz $at, .L80004250
/* 004DA0 800041A0 02401825 */ move $v1, $s2
/* 004DA4 800041A4 00117080 */ sll $t6, $s1, 2
/* 004DA8 800041A8 01D17021 */ addu $t6, $t6, $s1
/* 004DAC 800041AC 02122023 */ subu $a0, $s0, $s2
/* 004DB0 800041B0 30880003 */ andi $t0, $a0, 3
/* 004DB4 800041B4 000E79C0 */ sll $t7, $t6, 7
/* 004DB8 800041B8 1100000C */ beqz $t0, .L800041EC
/* 004DBC 800041BC 026FF821 */ addu $ra, $s3, $t7
/* 004DC0 800041C0 0003C040 */ sll $t8, $v1, 1
/* 004DC4 800041C4 03F81021 */ addu $v0, $ra, $t8
/* 004DC8 800041C8 01122821 */ addu $a1, $t0, $s2
.L800041CC:
/* 004DCC 800041CC 15240003 */ bne $t1, $a0, .L800041DC
/* 004DD0 800041D0 24630001 */ addiu $v1, $v1, 1
/* 004DD4 800041D4 10000002 */ b .L800041E0
/* 004DD8 800041D8 A4460000 */ sh $a2, ($v0)
.L800041DC:
/* 004DDC 800041DC A4470000 */ sh $a3, ($v0)
.L800041E0:
/* 004DE0 800041E0 14A3FFFA */ bne $a1, $v1, .L800041CC
/* 004DE4 800041E4 24420002 */ addiu $v0, $v0, 2
/* 004DE8 800041E8 10700019 */ beq $v1, $s0, .L80004250
.L800041EC:
/* 004DEC 800041EC 00032840 */ sll $a1, $v1, 1
/* 004DF0 800041F0 03E51021 */ addu $v0, $ra, $a1
/* 004DF4 800041F4 00104040 */ sll $t0, $s0, 1
.L800041F8:
/* 004DF8 800041F8 15440003 */ bne $t2, $a0, .L80004208
/* 004DFC 800041FC 24A50008 */ addiu $a1, $a1, 8
/* 004E00 80004200 10000002 */ b .L8000420C
/* 004E04 80004204 A4460000 */ sh $a2, ($v0)
.L80004208:
/* 004E08 80004208 A4470000 */ sh $a3, ($v0)
.L8000420C:
/* 004E0C 8000420C 55640004 */ bnel $t3, $a0, .L80004220
/* 004E10 80004210 A4470002 */ sh $a3, 2($v0)
/* 004E14 80004214 10000002 */ b .L80004220
/* 004E18 80004218 A4460002 */ sh $a2, 2($v0)
/* 004E1C 8000421C A4470002 */ sh $a3, 2($v0)
.L80004220:
/* 004E20 80004220 55840004 */ bnel $t4, $a0, .L80004234
/* 004E24 80004224 A4470004 */ sh $a3, 4($v0)
/* 004E28 80004228 10000002 */ b .L80004234
/* 004E2C 8000422C A4460004 */ sh $a2, 4($v0)
/* 004E30 80004230 A4470004 */ sh $a3, 4($v0)
.L80004234:
/* 004E34 80004234 55A40004 */ bnel $t5, $a0, .L80004248
/* 004E38 80004238 A4470006 */ sh $a3, 6($v0)
/* 004E3C 8000423C 10000002 */ b .L80004248
/* 004E40 80004240 A4460006 */ sh $a2, 6($v0)
/* 004E44 80004244 A4470006 */ sh $a3, 6($v0)
.L80004248:
/* 004E48 80004248 14A8FFEB */ bne $a1, $t0, .L800041F8
/* 004E4C 8000424C 24420008 */ addiu $v0, $v0, 8
.L80004250:
/* 004E50 80004250 26310001 */ addiu $s1, $s1, 1
/* 004E54 80004254 5630FFD1 */ bnel $s1, $s0, .L8000419C
/* 004E58 80004258 0250082A */ slt $at, $s2, $s0
.L8000425C:
/* 004E5C 8000425C 2610FFFF */ addiu $s0, $s0, -1
/* 004E60 80004260 1690FFCA */ bne $s4, $s0, .L8000418C
/* 004E64 80004264 26520001 */ addiu $s2, $s2, 1
/* 004E68 80004268 0C033624 */ jal osWritebackDCacheAll
/* 004E6C 8000426C 00000000 */ nop
/* 004E70 80004270 0C033684 */ jal osViSwapBuffer
/* 004E74 80004274 02602025 */ move $a0, $s3
/* 004E78 80004278 8FBF002C */ lw $ra, 0x2c($sp)
/* 004E7C 8000427C 8FB00018 */ lw $s0, 0x18($sp)
/* 004E80 80004280 8FB1001C */ lw $s1, 0x1c($sp)
/* 004E84 80004284 8FB20020 */ lw $s2, 0x20($sp)
/* 004E88 80004288 8FB30024 */ lw $s3, 0x24($sp)
/* 004E8C 8000428C 8FB40028 */ lw $s4, 0x28($sp)
/* 004E90 80004290 03E00008 */ jr $ra
/* 004E94 80004294 27BD0030 */ addiu $sp, $sp, 0x30
glabel crash_screen_draw_info
/* 004E98 80004298 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 004E9C 8000429C AFB50028 */ sw $s5, 0x28($sp)
/* 004EA0 800042A0 AFB30020 */ sw $s3, 0x20($sp)
/* 004EA4 800042A4 00A09825 */ move $s3, $a1
/* 004EA8 800042A8 0080A825 */ move $s5, $a0
/* 004EAC 800042AC 3C09800E */ lui $t1, %hi(D_800DC670) # $t1, 0x800e
/* 004EB0 800042B0 AFBF002C */ sw $ra, 0x2c($sp)
/* 004EB4 800042B4 AFB40024 */ sw $s4, 0x24($sp)
/* 004EB8 800042B8 AFB2001C */ sw $s2, 0x1c($sp)
/* 004EBC 800042BC AFB10018 */ sw $s1, 0x18($sp)
/* 004EC0 800042C0 AFB00014 */ sw $s0, 0x14($sp)
/* 004EC4 800042C4 2529C670 */ addiu $t1, %lo(D_800DC670) # addiu $t1, $t1, -0x3990
/* 004EC8 800042C8 24040001 */ li $a0, 1
/* 004ECC 800042CC 24050078 */ li $a1, 120
/* 004ED0 800042D0 00004025 */ move $t0, $zero
/* 004ED4 800042D4 240A0018 */ li $t2, 24
/* 004ED8 800042D8 8D2E0000 */ lw $t6, ($t1)
.L800042DC:
/* 004EDC 800042DC 00003025 */ move $a2, $zero
/* 004EE0 800042E0 01CA0019 */ multu $t6, $t2
/* 004EE4 800042E4 00007812 */ mflo $t7
/* 004EE8 800042E8 01E81021 */ addu $v0, $t7, $t0
/* 004EEC 800042EC 24420030 */ addiu $v0, $v0, 0x30
/* 004EF0 800042F0 0002C080 */ sll $t8, $v0, 2
/* 004EF4 800042F4 0302C021 */ addu $t8, $t8, $v0
/* 004EF8 800042F8 0018C9C0 */ sll $t9, $t8, 7
/* 004EFC 800042FC 02B93821 */ addu $a3, $s5, $t9
.L80004300:
/* 004F00 80004300 00001825 */ move $v1, $zero
/* 004F04 80004304 00E01025 */ move $v0, $a3
.L80004308:
/* 004F08 80004308 24630004 */ addiu $v1, $v1, 4
/* 004F0C 8000430C A44400CA */ sh $a0, 0xca($v0)
/* 004F10 80004310 A44400CC */ sh $a0, 0xcc($v0)
/* 004F14 80004314 A44400CE */ sh $a0, 0xce($v0)
/* 004F18 80004318 24420008 */ addiu $v0, $v0, 8
/* 004F1C 8000431C 1465FFFA */ bne $v1, $a1, .L80004308
/* 004F20 80004320 A44400C0 */ sh $a0, 0xc0($v0)
/* 004F24 80004324 24C60001 */ addiu $a2, $a2, 1
/* 004F28 80004328 28C10010 */ slti $at, $a2, 0x10
/* 004F2C 8000432C 1420FFF4 */ bnez $at, .L80004300
/* 004F30 80004330 24E70280 */ addiu $a3, $a3, 0x280
/* 004F34 80004334 25080014 */ addiu $t0, $t0, 0x14
/* 004F38 80004338 2901003C */ slti $at, $t0, 0x3c
/* 004F3C 8000433C 5420FFE7 */ bnel $at, $zero, .L800042DC
/* 004F40 80004340 8D2E0000 */ lw $t6, ($t1)
/* 004F44 80004344 8D2B0000 */ lw $t3, ($t1)
/* 004F48 80004348 8E670014 */ lw $a3, 0x14($s3)
/* 004F4C 8000434C 02A02025 */ move $a0, $s5
/* 004F50 80004350 016A0019 */ multu $t3, $t2
/* 004F54 80004354 30EC000F */ andi $t4, $a3, 0xf
/* 004F58 80004358 01803825 */ move $a3, $t4
/* 004F5C 8000435C 2405006C */ li $a1, 108
/* 004F60 80004360 00001012 */ mflo $v0
/* 004F64 80004364 24500035 */ addiu $s0, $v0, 0x35
/* 004F68 80004368 0C001030 */ jal func_800040C0
/* 004F6C 8000436C 02003025 */ move $a2, $s0
/* 004F70 80004370 02A02025 */ move $a0, $s5
/* 004F74 80004374 24050074 */ li $a1, 116
/* 004F78 80004378 02003025 */ move $a2, $s0
/* 004F7C 8000437C 0C001030 */ jal func_800040C0
/* 004F80 80004380 24070010 */ li $a3, 16
/* 004F84 80004384 26720020 */ addiu $s2, $s3, 0x20
/* 004F88 80004388 8E5400FC */ lw $s4, 0xfc($s2)
/* 004F8C 8000438C 241100B4 */ li $s1, 180
.L80004390:
/* 004F90 80004390 02A02025 */ move $a0, $s5
/* 004F94 80004394 02202825 */ move $a1, $s1
/* 004F98 80004398 02003025 */ move $a2, $s0
/* 004F9C 8000439C 0C001030 */ jal func_800040C0
/* 004FA0 800043A0 3287000F */ andi $a3, $s4, 0xf
/* 004FA4 800043A4 2631FFF8 */ addiu $s1, $s1, -8
/* 004FA8 800043A8 2A21007C */ slti $at, $s1, 0x7c
/* 004FAC 800043AC 00146902 */ srl $t5, $s4, 4
/* 004FB0 800043B0 1020FFF7 */ beqz $at, .L80004390
/* 004FB4 800043B4 01A0A025 */ move $s4, $t5
/* 004FB8 800043B8 8E510100 */ lw $s1, 0x100($s2)
/* 004FBC 800043BC 02A02025 */ move $a0, $s5
/* 004FC0 800043C0 240500BC */ li $a1, 188
/* 004FC4 800043C4 00117082 */ srl $t6, $s1, 2
/* 004FC8 800043C8 31D1001F */ andi $s1, $t6, 0x1f
/* 004FCC 800043CC 02003025 */ move $a2, $s0
/* 004FD0 800043D0 0C001030 */ jal func_800040C0
/* 004FD4 800043D4 24070010 */ li $a3, 16
/* 004FD8 800043D8 02A02025 */ move $a0, $s5
/* 004FDC 800043DC 240500C4 */ li $a1, 196
/* 004FE0 800043E0 02003025 */ move $a2, $s0
/* 004FE4 800043E4 0C001030 */ jal func_800040C0
/* 004FE8 800043E8 00113902 */ srl $a3, $s1, 4
/* 004FEC 800043EC 02A02025 */ move $a0, $s5
/* 004FF0 800043F0 240500CC */ li $a1, 204
/* 004FF4 800043F4 02003025 */ move $a2, $s0
/* 004FF8 800043F8 0C001030 */ jal func_800040C0
/* 004FFC 800043FC 3227000F */ andi $a3, $s1, 0xf
/* 005000 80004400 8E5400E4 */ lw $s4, 0xe4($s2)
/* 005004 80004404 241100B4 */ li $s1, 180
.L80004408:
/* 005008 80004408 02A02025 */ move $a0, $s5
/* 00500C 8000440C 02202825 */ move $a1, $s1
/* 005010 80004410 24060049 */ li $a2, 73
/* 005014 80004414 0C001030 */ jal func_800040C0
/* 005018 80004418 3287000F */ andi $a3, $s4, 0xf
/* 00501C 8000441C 2631FFF8 */ addiu $s1, $s1, -8
/* 005020 80004420 2A21007C */ slti $at, $s1, 0x7c
/* 005024 80004424 00145902 */ srl $t3, $s4, 4
/* 005028 80004428 1020FFF7 */ beqz $at, .L80004408
/* 00502C 8000442C 0160A025 */ move $s4, $t3
/* 005030 80004430 8E4200FC */ lw $v0, 0xfc($s2)
/* 005034 80004434 2401FFFC */ li $at, -4
/* 005038 80004438 241100B4 */ li $s1, 180
/* 00503C 8000443C 00416024 */ and $t4, $v0, $at
/* 005040 80004440 3C018000 */ lui $at, (0x80000001 >> 16) # lui $at, 0x8000
/* 005044 80004444 34210001 */ ori $at, (0x80000001 & 0xFFFF) # ori $at, $at, 1
/* 005048 80004448 0181082B */ sltu $at, $t4, $at
/* 00504C 8000444C 14200006 */ bnez $at, .L80004468
/* 005050 80004450 3C01803F */ lui $at, (0x803FFF7F >> 16) # lui $at, 0x803f
/* 005054 80004454 3421FF7F */ ori $at, (0x803FFF7F & 0xFFFF) # ori $at, $at, 0xff7f
/* 005058 80004458 0181082B */ sltu $at, $t4, $at
/* 00505C 8000445C 10200002 */ beqz $at, .L80004468
/* 005060 80004460 00000000 */ nop
/* 005064 80004464 8D940000 */ lw $s4, ($t4)
.L80004468:
/* 005068 80004468 02A02025 */ move $a0, $s5
/* 00506C 8000446C 02202825 */ move $a1, $s1
/* 005070 80004470 2406005D */ li $a2, 93
/* 005074 80004474 0C001030 */ jal func_800040C0
/* 005078 80004478 3287000F */ andi $a3, $s4, 0xf
/* 00507C 8000447C 2631FFF8 */ addiu $s1, $s1, -8
/* 005080 80004480 2A21007C */ slti $at, $s1, 0x7c
/* 005084 80004484 00146902 */ srl $t5, $s4, 4
/* 005088 80004488 1020FFF7 */ beqz $at, .L80004468
/* 00508C 8000448C 01A0A025 */ move $s4, $t5
/* 005090 80004490 0C033624 */ jal osWritebackDCacheAll
/* 005094 80004494 00000000 */ nop
/* 005098 80004498 0C033684 */ jal osViSwapBuffer
/* 00509C 8000449C 02A02025 */ move $a0, $s5
/* 0050A0 800044A0 8FBF002C */ lw $ra, 0x2c($sp)
/* 0050A4 800044A4 8FB00014 */ lw $s0, 0x14($sp)
/* 0050A8 800044A8 8FB10018 */ lw $s1, 0x18($sp)
/* 0050AC 800044AC 8FB2001C */ lw $s2, 0x1c($sp)
/* 0050B0 800044B0 8FB30020 */ lw $s3, 0x20($sp)
/* 0050B4 800044B4 8FB40024 */ lw $s4, 0x24($sp)
/* 0050B8 800044B8 8FB50028 */ lw $s5, 0x28($sp)
/* 0050BC 800044BC 03E00008 */ jr $ra
/* 0050C0 800044C0 27BD0030 */ addiu $sp, $sp, 0x30
glabel get_faulted_thread
/* 0050C4 800044C4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0050C8 800044C8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0050CC 800044CC 0C03384C */ jal func_800CE130
/* 0050D0 800044D0 00000000 */ nop
/* 0050D4 800044D4 8C4E0004 */ lw $t6, 4($v0)
/* 0050D8 800044D8 2404FFFF */ li $a0, -1
/* 0050DC 800044DC 00401825 */ move $v1, $v0
/* 0050E0 800044E0 108E0010 */ beq $a0, $t6, .L80004524
/* 0050E4 800044E4 8FBF0014 */ lw $ra, 0x14($sp)
/* 0050E8 800044E8 8C420004 */ lw $v0, 4($v0)
.L800044EC:
/* 0050EC 800044EC 18400009 */ blez $v0, .L80004514
/* 0050F0 800044F0 28410080 */ slti $at, $v0, 0x80
/* 0050F4 800044F4 50200008 */ beql $at, $zero, .L80004518
/* 0050F8 800044F8 8C63000C */ lw $v1, 0xc($v1)
/* 0050FC 800044FC 946F0012 */ lhu $t7, 0x12($v1)
/* 005100 80004500 31F80003 */ andi $t8, $t7, 3
/* 005104 80004504 53000004 */ beql $t8, $zero, .L80004518
/* 005108 80004508 8C63000C */ lw $v1, 0xc($v1)
/* 00510C 8000450C 10000006 */ b .L80004528
/* 005110 80004510 00601025 */ move $v0, $v1
.L80004514:
/* 005114 80004514 8C63000C */ lw $v1, 0xc($v1)
.L80004518:
/* 005118 80004518 8C620004 */ lw $v0, 4($v1)
/* 00511C 8000451C 1482FFF3 */ bne $a0, $v0, .L800044EC
/* 005120 80004520 00000000 */ nop
.L80004524:
/* 005124 80004524 00001025 */ move $v0, $zero
.L80004528:
/* 005128 80004528 03E00008 */ jr $ra
/* 00512C 8000452C 27BD0018 */ addiu $sp, $sp, 0x18
glabel thread9_crash_screen
/* 005130 80004530 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 005134 80004534 AFB70030 */ sw $s7, 0x30($sp)
/* 005138 80004538 3C178016 */ lui $s7, %hi(D_80162D40) # $s7, 0x8016
/* 00513C 8000453C 26F72D40 */ addiu $s7, %lo(D_80162D40) # addiu $s7, $s7, 0x2d40
/* 005140 80004540 AFBF0034 */ sw $ra, 0x34($sp)
/* 005144 80004544 AFA40048 */ sw $a0, 0x48($sp)
/* 005148 80004548 AFB6002C */ sw $s6, 0x2c($sp)
/* 00514C 8000454C AFB50028 */ sw $s5, 0x28($sp)
/* 005150 80004550 AFB40024 */ sw $s4, 0x24($sp)
/* 005154 80004554 AFB30020 */ sw $s3, 0x20($sp)
/* 005158 80004558 AFB2001C */ sw $s2, 0x1c($sp)
/* 00515C 8000455C AFB10018 */ sw $s1, 0x18($sp)
/* 005160 80004560 AFB00014 */ sw $s0, 0x14($sp)
/* 005164 80004564 2404000C */ li $a0, 12
/* 005168 80004568 02E02825 */ move $a1, $s7
/* 00516C 8000456C 0C033380 */ jal osSetEventMesg
/* 005170 80004570 24060010 */ li $a2, 16
/* 005174 80004574 2404000A */ li $a0, 10
/* 005178 80004578 02E02825 */ move $a1, $s7
/* 00517C 8000457C 0C033380 */ jal osSetEventMesg
/* 005180 80004580 24060010 */ li $a2, 16
/* 005184 80004584 3C108016 */ lui $s0, %hi(D_80162D60) # $s0, 0x8016
/* 005188 80004588 26102D60 */ addiu $s0, %lo(D_80162D60) # addiu $s0, $s0, 0x2d60
/* 00518C 8000458C 3C158016 */ lui $s5, %hi(D_80162D5C) # $s5, 0x8016
/* 005190 80004590 3C14800E */ lui $s4, %hi(D_800DC670) # $s4, 0x800e
/* 005194 80004594 3C12800E */ lui $s2, %hi(D_800DC4BC) # $s2, 0x800e
/* 005198 80004598 3C11800E */ lui $s1, %hi(D_800DC6FC) # $s1, 0x800e
/* 00519C 8000459C AE000000 */ sw $zero, ($s0)
/* 0051A0 800045A0 2631C6FC */ addiu $s1, %lo(D_800DC6FC) # addiu $s1, $s1, -0x3904
/* 0051A4 800045A4 2652C4BC */ addiu $s2, %lo(D_800DC4BC) # addiu $s2, $s2, -0x3b44
/* 0051A8 800045A8 2694C670 */ addiu $s4, %lo(D_800DC670) # addiu $s4, $s4, -0x3990
/* 0051AC 800045AC 26B52D5C */ addiu $s5, %lo(D_80162D5C) # addiu $s5, $s5, 0x2d5c
/* 0051B0 800045B0 27B60044 */ addiu $s6, $sp, 0x44
/* 0051B4 800045B4 3413FFFF */ li $s3, 65535
.L800045B8:
/* 0051B8 800045B8 02E02025 */ move $a0, $s7
.L800045BC:
/* 0051BC 800045BC 02C02825 */ move $a1, $s6
/* 0051C0 800045C0 0C0335D4 */ jal osRecvMesg
/* 0051C4 800045C4 24060001 */ li $a2, 1
/* 0051C8 800045C8 0C001131 */ jal get_faulted_thread
/* 0051CC 800045CC 00000000 */ nop
/* 0051D0 800045D0 3C018016 */ lui $at, %hi(D_80162D64) # $at, 0x8016
/* 0051D4 800045D4 1040FFF8 */ beqz $v0, .L800045B8
/* 0051D8 800045D8 AC222D64 */ sw $v0, %lo(D_80162D64)($at)
/* 0051DC 800045DC 8E820000 */ lw $v0, ($s4)
/* 0051E0 800045E0 5440001F */ bnel $v0, $zero, .L80004660
/* 0051E4 800045E4 28410005 */ slti $at, $v0, 5
/* 0051E8 800045E8 0C001051 */ jal crash_screen_draw_square
/* 0051EC 800045EC 8EA40000 */ lw $a0, ($s5)
.L800045F0:
/* 0051F0 800045F0 0C00028A */ jal read_controllers
/* 0051F4 800045F4 00000000 */ nop
/* 0051F8 800045F8 8E4E0000 */ lw $t6, ($s2)
/* 0051FC 800045FC 95C20006 */ lhu $v0, 6($t6)
/* 005200 80004600 1040FFFB */ beqz $v0, .L800045F0
/* 005204 80004604 00000000 */ nop
/* 005208 80004608 8E030000 */ lw $v1, ($s0)
/* 00520C 8000460C 00037840 */ sll $t7, $v1, 1
/* 005210 80004610 022FC021 */ addu $t8, $s1, $t7
/* 005214 80004614 97190000 */ lhu $t9, ($t8)
/* 005218 80004618 24680001 */ addiu $t0, $v1, 1
/* 00521C 8000461C 54590004 */ bnel $v0, $t9, .L80004630
/* 005220 80004620 AE000000 */ sw $zero, ($s0)
/* 005224 80004624 10000002 */ b .L80004630
/* 005228 80004628 AE080000 */ sw $t0, ($s0)
/* 00522C 8000462C AE000000 */ sw $zero, ($s0)
.L80004630:
/* 005230 80004630 8E090000 */ lw $t1, ($s0)
/* 005234 80004634 00095040 */ sll $t2, $t1, 1
/* 005238 80004638 022A5821 */ addu $t3, $s1, $t2
/* 00523C 8000463C 956C0000 */ lhu $t4, ($t3)
/* 005240 80004640 166CFFEB */ bne $s3, $t4, .L800045F0
/* 005244 80004644 00000000 */ nop
/* 005248 80004648 3C058016 */ lui $a1, %hi(D_80162D64) # $a1, 0x8016
/* 00524C 8000464C 8CA52D64 */ lw $a1, %lo(D_80162D64)($a1)
/* 005250 80004650 0C0010A6 */ jal crash_screen_draw_info
/* 005254 80004654 8EA40000 */ lw $a0, ($s5)
/* 005258 80004658 8E820000 */ lw $v0, ($s4)
/* 00525C 8000465C 28410005 */ slti $at, $v0, 5
.L80004660:
/* 005260 80004660 5020FFD6 */ beql $at, $zero, .L800045BC
/* 005264 80004664 02E02025 */ move $a0, $s7
/* 005268 80004668 244D0001 */ addiu $t5, $v0, 1
/* 00526C 8000466C 1000FFD2 */ b .L800045B8
/* 005270 80004670 AE8D0000 */ sw $t5, ($s4)
/* 005274 80004674 00000000 */ nop
/* 005278 80004678 00000000 */ nop
/* 00527C 8000467C 00000000 */ nop
/* 005280 80004680 8FBF0034 */ lw $ra, 0x34($sp)
/* 005284 80004684 8FB00014 */ lw $s0, 0x14($sp)
/* 005288 80004688 8FB10018 */ lw $s1, 0x18($sp)
/* 00528C 8000468C 8FB2001C */ lw $s2, 0x1c($sp)
/* 005290 80004690 8FB30020 */ lw $s3, 0x20($sp)
/* 005294 80004694 8FB40024 */ lw $s4, 0x24($sp)
/* 005298 80004698 8FB50028 */ lw $s5, 0x28($sp)
/* 00529C 8000469C 8FB6002C */ lw $s6, 0x2c($sp)
/* 0052A0 800046A0 8FB70030 */ lw $s7, 0x30($sp)
/* 0052A4 800046A4 03E00008 */ jr $ra
/* 0052A8 800046A8 27BD0048 */ addiu $sp, $sp, 0x48
glabel func_800046AC
/* 0052AC 800046AC 3C018016 */ lui $at, 0x8016
/* 0052B0 800046B0 03E00008 */ jr $ra
/* 0052B4 800046B4 AC242D5C */ sw $a0, 0x2d5c($at)
glabel create_debug_thread
/* 0052B8 800046B8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0052BC 800046BC AFBF001C */ sw $ra, 0x1c($sp)
/* 0052C0 800046C0 3C048016 */ lui $a0, %hi(D_80162D40) # $a0, 0x8016
/* 0052C4 800046C4 3C058016 */ lui $a1, %hi(D_80162D58) # $a1, 0x8016
/* 0052C8 800046C8 24A52D58 */ addiu $a1, %lo(D_80162D58) # addiu $a1, $a1, 0x2d58
/* 0052CC 800046CC 24842D40 */ addiu $a0, %lo(D_80162D40) # addiu $a0, $a0, 0x2d40
/* 0052D0 800046D0 0C033358 */ jal osCreateMesgQueue
/* 0052D4 800046D4 24060001 */ li $a2, 1
/* 0052D8 800046D8 3C0E8016 */ lui $t6, %hi(D_80162D40) # $t6, 0x8016
/* 0052DC 800046DC 25CE2D40 */ addiu $t6, %lo(D_80162D40) # addiu $t6, $t6, 0x2d40
/* 0052E0 800046E0 3C048016 */ lui $a0, %hi(D_80162790) # $a0, 0x8016
/* 0052E4 800046E4 3C068000 */ lui $a2, %hi(thread9_crash_screen) # $a2, 0x8000
/* 0052E8 800046E8 240F007F */ li $t7, 127
/* 0052EC 800046EC AFAF0014 */ sw $t7, 0x14($sp)
/* 0052F0 800046F0 24C64530 */ addiu $a2, %lo(thread9_crash_screen) # addiu $a2, $a2, 0x4530
/* 0052F4 800046F4 24842790 */ addiu $a0, %lo(D_80162790) # addiu $a0, $a0, 0x2790
/* 0052F8 800046F8 AFAE0010 */ sw $t6, 0x10($sp)
/* 0052FC 800046FC 24050009 */ li $a1, 9
/* 005300 80004700 0C032FDC */ jal osCreateThread
/* 005304 80004704 00003825 */ move $a3, $zero
/* 005308 80004708 8FBF001C */ lw $ra, 0x1c($sp)
/* 00530C 8000470C 27BD0020 */ addiu $sp, $sp, 0x20
/* 005310 80004710 03E00008 */ jr $ra
/* 005314 80004714 00000000 */ nop
glabel start_debug_thread
/* 005318 80004718 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 00531C 8000471C AFBF0014 */ sw $ra, 0x14($sp)
/* 005320 80004720 3C048016 */ lui $a0, %hi(D_80162790) # $a0, 0x8016
/* 005324 80004724 0C0330D8 */ jal osStartThread
/* 005328 80004728 24842790 */ addiu $a0, %lo(D_80162790) # addiu $a0, $a0, 0x2790
/* 00532C 8000472C 8FBF0014 */ lw $ra, 0x14($sp)
/* 005330 80004730 27BD0018 */ addiu $sp, $sp, 0x18
/* 005334 80004734 03E00008 */ jr $ra
/* 005338 80004738 00000000 */ nop
/* 00533C 8000473C 00000000 */ nop

538
asm/code_80004740.s Normal file
View File

@ -0,0 +1,538 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_80004740
/* 005340 80004740 3C014780 */ li $at, 0x47800000 # 65536.000000
/* 005344 80004744 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 005348 80004748 00801025 */ move $v0, $a0
/* 00534C 8000474C 24830020 */ addiu $v1, $a0, 0x20
/* 005350 80004750 00A03025 */ move $a2, $a1
/* 005354 80004754 44810000 */ mtc1 $at, $f0
/* 005358 80004758 24050010 */ li $a1, 16
/* 00535C 8000475C 27A40014 */ addiu $a0, $sp, 0x14
/* 005360 80004760 00003825 */ move $a3, $zero
/* 005364 80004764 C4D00000 */ lwc1 $f16, ($a2)
/* 005368 80004768 24E70004 */ addiu $a3, $a3, 4
/* 00536C 8000476C 46008482 */ mul.s $f18, $f16, $f0
/* 005370 80004770 50E5002F */ beql $a3, $a1, .L80004830
/* 005374 80004774 4600940D */ trunc.w.s $f16, $f18
/* 005378 80004778 4600940D */ trunc.w.s $f16, $f18
.L8000477C:
/* 00537C 8000477C 24E70004 */ addiu $a3, $a3, 4
/* 005380 80004780 24C60010 */ addiu $a2, $a2, 0x10
/* 005384 80004784 24420008 */ addiu $v0, $v0, 8
/* 005388 80004788 440F8000 */ mfc1 $t7, $f16
/* 00538C 8000478C 24630008 */ addiu $v1, $v1, 8
/* 005390 80004790 AFAF0014 */ sw $t7, 0x14($sp)
/* 005394 80004794 84980000 */ lh $t8, ($a0)
/* 005398 80004798 A458FFF8 */ sh $t8, -8($v0)
/* 00539C 8000479C 84990002 */ lh $t9, 2($a0)
/* 0053A0 800047A0 A479FFF8 */ sh $t9, -8($v1)
/* 0053A4 800047A4 C4D0FFF4 */ lwc1 $f16, -0xc($a2)
/* 0053A8 800047A8 46008402 */ mul.s $f16, $f16, $f0
/* 0053AC 800047AC 4600840D */ trunc.w.s $f16, $f16
/* 0053B0 800047B0 44098000 */ mfc1 $t1, $f16
/* 0053B4 800047B4 00000000 */ nop
/* 0053B8 800047B8 AFA90014 */ sw $t1, 0x14($sp)
/* 0053BC 800047BC 848A0000 */ lh $t2, ($a0)
/* 0053C0 800047C0 A44AFFFA */ sh $t2, -6($v0)
/* 0053C4 800047C4 848B0002 */ lh $t3, 2($a0)
/* 0053C8 800047C8 A46BFFFA */ sh $t3, -6($v1)
/* 0053CC 800047CC C4D0FFF8 */ lwc1 $f16, -8($a2)
/* 0053D0 800047D0 46008402 */ mul.s $f16, $f16, $f0
/* 0053D4 800047D4 4600840D */ trunc.w.s $f16, $f16
/* 0053D8 800047D8 440D8000 */ mfc1 $t5, $f16
/* 0053DC 800047DC 00000000 */ nop
/* 0053E0 800047E0 AFAD0014 */ sw $t5, 0x14($sp)
/* 0053E4 800047E4 848E0000 */ lh $t6, ($a0)
/* 0053E8 800047E8 A44EFFFC */ sh $t6, -4($v0)
/* 0053EC 800047EC 848F0002 */ lh $t7, 2($a0)
/* 0053F0 800047F0 A46FFFFC */ sh $t7, -4($v1)
/* 0053F4 800047F4 C4D0FFFC */ lwc1 $f16, -4($a2)
/* 0053F8 800047F8 46008402 */ mul.s $f16, $f16, $f0
/* 0053FC 800047FC 4600840D */ trunc.w.s $f16, $f16
/* 005400 80004800 44198000 */ mfc1 $t9, $f16
/* 005404 80004804 00000000 */ nop
/* 005408 80004808 AFB90014 */ sw $t9, 0x14($sp)
/* 00540C 8000480C 84880000 */ lh $t0, ($a0)
/* 005410 80004810 A448FFFE */ sh $t0, -2($v0)
/* 005414 80004814 84890002 */ lh $t1, 2($a0)
/* 005418 80004818 A469FFFE */ sh $t1, -2($v1)
/* 00541C 8000481C C4D00000 */ lwc1 $f16, ($a2)
/* 005420 80004820 46008482 */ mul.s $f18, $f16, $f0
/* 005424 80004824 54E5FFD5 */ bnel $a3, $a1, .L8000477C
/* 005428 80004828 4600940D */ trunc.w.s $f16, $f18
/* 00542C 8000482C 4600940D */ trunc.w.s $f16, $f18
.L80004830:
/* 005430 80004830 24C60010 */ addiu $a2, $a2, 0x10
/* 005434 80004834 24420008 */ addiu $v0, $v0, 8
/* 005438 80004838 24630008 */ addiu $v1, $v1, 8
/* 00543C 8000483C 440F8000 */ mfc1 $t7, $f16
/* 005440 80004840 00000000 */ nop
/* 005444 80004844 AFAF0014 */ sw $t7, 0x14($sp)
/* 005448 80004848 84980000 */ lh $t8, ($a0)
/* 00544C 8000484C A458FFF8 */ sh $t8, -8($v0)
/* 005450 80004850 84990002 */ lh $t9, 2($a0)
/* 005454 80004854 A479FFF8 */ sh $t9, -8($v1)
/* 005458 80004858 C4D0FFF4 */ lwc1 $f16, -0xc($a2)
/* 00545C 8000485C 46008402 */ mul.s $f16, $f16, $f0
/* 005460 80004860 4600840D */ trunc.w.s $f16, $f16
/* 005464 80004864 44098000 */ mfc1 $t1, $f16
/* 005468 80004868 00000000 */ nop
/* 00546C 8000486C AFA90014 */ sw $t1, 0x14($sp)
/* 005470 80004870 848A0000 */ lh $t2, ($a0)
/* 005474 80004874 A44AFFFA */ sh $t2, -6($v0)
/* 005478 80004878 848B0002 */ lh $t3, 2($a0)
/* 00547C 8000487C A46BFFFA */ sh $t3, -6($v1)
/* 005480 80004880 C4D0FFF8 */ lwc1 $f16, -8($a2)
/* 005484 80004884 46008402 */ mul.s $f16, $f16, $f0
/* 005488 80004888 4600840D */ trunc.w.s $f16, $f16
/* 00548C 8000488C 440D8000 */ mfc1 $t5, $f16
/* 005490 80004890 00000000 */ nop
/* 005494 80004894 AFAD0014 */ sw $t5, 0x14($sp)
/* 005498 80004898 848E0000 */ lh $t6, ($a0)
/* 00549C 8000489C A44EFFFC */ sh $t6, -4($v0)
/* 0054A0 800048A0 848F0002 */ lh $t7, 2($a0)
/* 0054A4 800048A4 A46FFFFC */ sh $t7, -4($v1)
/* 0054A8 800048A8 C4D0FFFC */ lwc1 $f16, -4($a2)
/* 0054AC 800048AC 46008402 */ mul.s $f16, $f16, $f0
/* 0054B0 800048B0 4600840D */ trunc.w.s $f16, $f16
/* 0054B4 800048B4 44198000 */ mfc1 $t9, $f16
/* 0054B8 800048B8 00000000 */ nop
/* 0054BC 800048BC AFB90014 */ sw $t9, 0x14($sp)
/* 0054C0 800048C0 84880000 */ lh $t0, ($a0)
/* 0054C4 800048C4 A448FFFE */ sh $t0, -2($v0)
/* 0054C8 800048C8 84890002 */ lh $t1, 2($a0)
/* 0054CC 800048CC A469FFFE */ sh $t1, -2($v1)
/* 0054D0 800048D0 03E00008 */ jr $ra
/* 0054D4 800048D4 27BD0018 */ addiu $sp, $sp, 0x18
glabel func_800048D8
/* 0054D8 800048D8 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 0054DC 800048DC AFB00024 */ sw $s0, 0x24($sp)
/* 0054E0 800048E0 00808025 */ move $s0, $a0
/* 0054E4 800048E4 AFBF002C */ sw $ra, 0x2c($sp)
/* 0054E8 800048E8 AFB10028 */ sw $s1, 0x28($sp)
/* 0054EC 800048EC F7B60018 */ sdc1 $f22, 0x18($sp)
/* 0054F0 800048F0 F7B40010 */ sdc1 $f20, 0x10($sp)
/* 0054F4 800048F4 AFA5004C */ sw $a1, 0x4c($sp)
/* 0054F8 800048F8 00C08825 */ move $s1, $a2
/* 0054FC 800048FC 0C0AE006 */ jal func_802B8018
/* 005500 80004900 94C40000 */ lhu $a0, ($a2)
/* 005504 80004904 46000506 */ mov.s $f20, $f0
/* 005508 80004908 0C0AE00E */ jal func_802B8038
/* 00550C 8000490C 96240000 */ lhu $a0, ($s1)
/* 005510 80004910 46000586 */ mov.s $f22, $f0
/* 005514 80004914 0C0AE006 */ jal func_802B8018
/* 005518 80004918 96240002 */ lhu $a0, 2($s1)
/* 00551C 8000491C E7A0003C */ swc1 $f0, 0x3c($sp)
/* 005520 80004920 0C0AE00E */ jal func_802B8038
/* 005524 80004924 96240002 */ lhu $a0, 2($s1)
/* 005528 80004928 96240004 */ lhu $a0, 4($s1)
/* 00552C 8000492C 0C0AE006 */ jal func_802B8018
/* 005530 80004930 E7A00038 */ swc1 $f0, 0x38($sp)
/* 005534 80004934 96240004 */ lhu $a0, 4($s1)
/* 005538 80004938 0C0AE00E */ jal func_802B8038
/* 00553C 8000493C E7A00034 */ swc1 $f0, 0x34($sp)
/* 005540 80004940 C7AE0038 */ lwc1 $f14, 0x38($sp)
/* 005544 80004944 C7A20034 */ lwc1 $f2, 0x34($sp)
/* 005548 80004948 C7B2003C */ lwc1 $f18, 0x3c($sp)
/* 00554C 8000494C 46007102 */ mul.s $f4, $f14, $f0
/* 005550 80004950 44808000 */ mtc1 $zero, $f16
/* 005554 80004954 46009207 */ neg.s $f8, $f18
/* 005558 80004958 46027182 */ mul.s $f6, $f14, $f2
/* 00555C 8000495C E6080008 */ swc1 $f8, 8($s0)
/* 005560 80004960 E610000C */ swc1 $f16, 0xc($s0)
/* 005564 80004964 4612A302 */ mul.s $f12, $f20, $f18
/* 005568 80004968 E6040000 */ swc1 $f4, ($s0)
/* 00556C 8000496C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 005570 80004970 E6060004 */ swc1 $f6, 4($s0)
/* 005574 80004974 46006282 */ mul.s $f10, $f12, $f0
/* 005578 80004978 00000000 */ nop
/* 00557C 8000497C 4602B102 */ mul.s $f4, $f22, $f2
/* 005580 80004980 46045181 */ sub.s $f6, $f10, $f4
/* 005584 80004984 46026202 */ mul.s $f8, $f12, $f2
/* 005588 80004988 00000000 */ nop
/* 00558C 8000498C 4600B282 */ mul.s $f10, $f22, $f0
/* 005590 80004990 E6060010 */ swc1 $f6, 0x10($s0)
/* 005594 80004994 460EA182 */ mul.s $f6, $f20, $f14
/* 005598 80004998 00000000 */ nop
/* 00559C 8000499C 4612B302 */ mul.s $f12, $f22, $f18
/* 0055A0 800049A0 460A4100 */ add.s $f4, $f8, $f10
/* 0055A4 800049A4 E6060018 */ swc1 $f6, 0x18($s0)
/* 0055A8 800049A8 E6040014 */ swc1 $f4, 0x14($s0)
/* 0055AC 800049AC 46006202 */ mul.s $f8, $f12, $f0
/* 0055B0 800049B0 8FA2004C */ lw $v0, 0x4c($sp)
/* 0055B4 800049B4 E610001C */ swc1 $f16, 0x1c($s0)
/* 0055B8 800049B8 4602A282 */ mul.s $f10, $f20, $f2
/* 0055BC 800049BC E610002C */ swc1 $f16, 0x2c($s0)
/* 0055C0 800049C0 46026182 */ mul.s $f6, $f12, $f2
/* 0055C4 800049C4 460A4100 */ add.s $f4, $f8, $f10
/* 0055C8 800049C8 4600A202 */ mul.s $f8, $f20, $f0
/* 0055CC 800049CC E6040020 */ swc1 $f4, 0x20($s0)
/* 0055D0 800049D0 460EB102 */ mul.s $f4, $f22, $f14
/* 0055D4 800049D4 46083281 */ sub.s $f10, $f6, $f8
/* 0055D8 800049D8 E6040028 */ swc1 $f4, 0x28($s0)
/* 0055DC 800049DC 44812000 */ mtc1 $at, $f4
/* 0055E0 800049E0 E60A0024 */ swc1 $f10, 0x24($s0)
/* 0055E4 800049E4 C4460000 */ lwc1 $f6, ($v0)
/* 0055E8 800049E8 E6060030 */ swc1 $f6, 0x30($s0)
/* 0055EC 800049EC C4480004 */ lwc1 $f8, 4($v0)
/* 0055F0 800049F0 E6080034 */ swc1 $f8, 0x34($s0)
/* 0055F4 800049F4 C44A0008 */ lwc1 $f10, 8($v0)
/* 0055F8 800049F8 E604003C */ swc1 $f4, 0x3c($s0)
/* 0055FC 800049FC E60A0038 */ swc1 $f10, 0x38($s0)
/* 005600 80004A00 8FBF002C */ lw $ra, 0x2c($sp)
/* 005604 80004A04 8FB10028 */ lw $s1, 0x28($sp)
/* 005608 80004A08 8FB00024 */ lw $s0, 0x24($sp)
/* 00560C 80004A0C D7B60018 */ ldc1 $f22, 0x18($sp)
/* 005610 80004A10 D7B40010 */ ldc1 $f20, 0x10($sp)
/* 005614 80004A14 03E00008 */ jr $ra
/* 005618 80004A18 27BD0048 */ addiu $sp, $sp, 0x48
glabel func_80004A1C
/* 00561C 80004A1C 27BDFF60 */ addiu $sp, $sp, -0xa0
/* 005620 80004A20 3C098016 */ lui $t1, %hi(D_80162D76) # $t1, 0x8016
/* 005624 80004A24 25292D76 */ addiu $t1, %lo(D_80162D76) # addiu $t1, $t1, 0x2d76
/* 005628 80004A28 85280000 */ lh $t0, ($t1)
/* 00562C 80004A2C AFBF001C */ sw $ra, 0x1c($sp)
/* 005630 80004A30 AFB00018 */ sw $s0, 0x18($sp)
/* 005634 80004A34 AFA400A0 */ sw $a0, 0xa0($sp)
/* 005638 80004A38 8C8F000C */ lw $t7, 0xc($a0)
/* 00563C 80004A3C 00A08025 */ move $s0, $a1
/* 005640 80004A40 1500001E */ bnez $t0, .L80004ABC
/* 005644 80004A44 AFAF003C */ sw $t7, 0x3c($sp)
/* 005648 80004A48 00801825 */ move $v1, $a0
/* 00564C 80004A4C 3C048016 */ lui $a0, %hi(D_80162D70) # $a0, 0x8016
/* 005650 80004A50 3C058016 */ lui $a1, %hi(D_80162D76) # $a1, 0x8016
/* 005654 80004A54 24A52D76 */ addiu $a1, %lo(D_80162D76) # addiu $a1, $a1, 0x2d76
/* 005658 80004A58 24842D70 */ addiu $a0, %lo(D_80162D70) # addiu $a0, $a0, 0x2d70
/* 00565C 80004A5C 27A20094 */ addiu $v0, $sp, 0x94
/* 005660 80004A60 24840002 */ addiu $a0, $a0, 2
/* 005664 80004A64 8499FFFE */ lh $t9, -2($a0)
/* 005668 80004A68 1085000B */ beq $a0, $a1, .L80004A98
/* 00566C 80004A6C 8C780010 */ lw $t8, 0x10($v1)
.L80004A70:
/* 005670 80004A70 03195021 */ addu $t2, $t8, $t9
/* 005674 80004A74 448A9000 */ mtc1 $t2, $f18
/* 005678 80004A78 24840002 */ addiu $a0, $a0, 2
/* 00567C 80004A7C 24420004 */ addiu $v0, $v0, 4
/* 005680 80004A80 468094A0 */ cvt.s.w $f18, $f18
/* 005684 80004A84 24630004 */ addiu $v1, $v1, 4
/* 005688 80004A88 8499FFFE */ lh $t9, -2($a0)
/* 00568C 80004A8C E452FFFC */ swc1 $f18, -4($v0)
/* 005690 80004A90 1485FFF7 */ bne $a0, $a1, .L80004A70
/* 005694 80004A94 8C780010 */ lw $t8, 0x10($v1)
.L80004A98:
/* 005698 80004A98 03195021 */ addu $t2, $t8, $t9
/* 00569C 80004A9C 448A9000 */ mtc1 $t2, $f18
/* 0056A0 80004AA0 24420004 */ addiu $v0, $v0, 4
/* 0056A4 80004AA4 24630004 */ addiu $v1, $v1, 4
/* 0056A8 80004AA8 468094A0 */ cvt.s.w $f18, $f18
/* 0056AC 80004AAC E452FFFC */ swc1 $f18, -4($v0)
/* 0056B0 80004AB0 250B0001 */ addiu $t3, $t0, 1
/* 0056B4 80004AB4 10000012 */ b .L80004B00
/* 0056B8 80004AB8 A52B0000 */ sh $t3, ($t1)
.L80004ABC:
/* 0056BC 80004ABC 27A20094 */ addiu $v0, $sp, 0x94
/* 0056C0 80004AC0 8FA300A0 */ lw $v1, 0xa0($sp)
/* 0056C4 80004AC4 27A400A0 */ addiu $a0, $sp, 0xa0
/* 0056C8 80004AC8 24420004 */ addiu $v0, $v0, 4
/* 0056CC 80004ACC 10440008 */ beq $v0, $a0, .L80004AF0
/* 0056D0 80004AD0 8C6C0010 */ lw $t4, 0x10($v1)
.L80004AD4:
/* 0056D4 80004AD4 448C9000 */ mtc1 $t4, $f18
/* 0056D8 80004AD8 24420004 */ addiu $v0, $v0, 4
/* 0056DC 80004ADC 24630004 */ addiu $v1, $v1, 4
/* 0056E0 80004AE0 468094A0 */ cvt.s.w $f18, $f18
/* 0056E4 80004AE4 E452FFF8 */ swc1 $f18, -8($v0)
/* 0056E8 80004AE8 1444FFFA */ bne $v0, $a0, .L80004AD4
/* 0056EC 80004AEC 8C6C0010 */ lw $t4, 0x10($v1)
.L80004AF0:
/* 0056F0 80004AF0 448C9000 */ mtc1 $t4, $f18
/* 0056F4 80004AF4 24630004 */ addiu $v1, $v1, 4
/* 0056F8 80004AF8 468094A0 */ cvt.s.w $f18, $f18
/* 0056FC 80004AFC E452FFFC */ swc1 $f18, -4($v0)
.L80004B00:
/* 005700 80004B00 00C01025 */ move $v0, $a2
/* 005704 80004B04 27A3008C */ addiu $v1, $sp, 0x8c
/* 005708 80004B08 27A50092 */ addiu $a1, $sp, 0x92
.L80004B0C:
/* 00570C 80004B0C 944D0000 */ lhu $t5, ($v0)
/* 005710 80004B10 00002025 */ move $a0, $zero
/* 005714 80004B14 00ED082A */ slt $at, $a3, $t5
/* 005718 80004B18 10200003 */ beqz $at, .L80004B28
/* 00571C 80004B1C 00000000 */ nop
/* 005720 80004B20 10000001 */ b .L80004B28
/* 005724 80004B24 00E02025 */ move $a0, $a3
.L80004B28:
/* 005728 80004B28 944F0002 */ lhu $t7, 2($v0)
/* 00572C 80004B2C 0004C840 */ sll $t9, $a0, 1
/* 005730 80004B30 24630002 */ addiu $v1, $v1, 2
/* 005734 80004B34 000F7040 */ sll $t6, $t7, 1
/* 005738 80004B38 020EC021 */ addu $t8, $s0, $t6
/* 00573C 80004B3C 03195021 */ addu $t2, $t8, $t9
/* 005740 80004B40 854B0000 */ lh $t3, ($t2)
/* 005744 80004B44 24420004 */ addiu $v0, $v0, 4
/* 005748 80004B48 1465FFF0 */ bne $v1, $a1, .L80004B0C
/* 00574C 80004B4C A46BFFFE */ sh $t3, -2($v1)
/* 005750 80004B50 27A4004C */ addiu $a0, $sp, 0x4c
/* 005754 80004B54 27A50094 */ addiu $a1, $sp, 0x94
/* 005758 80004B58 0C001236 */ jal func_800048D8
/* 00575C 80004B5C 27A6008C */ addiu $a2, $sp, 0x8c
/* 005760 80004B60 3C108019 */ lui $s0, %hi(D_8018D120) # $s0, 0x8019
/* 005764 80004B64 2610D120 */ addiu $s0, %lo(D_8018D120) # addiu $s0, $s0, -0x2ee0
/* 005768 80004B68 8E0D0000 */ lw $t5, ($s0)
/* 00576C 80004B6C 3C0C8015 */ lui $t4, %hi(gGfxPool) # $t4, 0x8015
/* 005770 80004B70 8D8CEF40 */ lw $t4, %lo(gGfxPool)($t4)
/* 005774 80004B74 000D7980 */ sll $t7, $t5, 6
/* 005778 80004B78 27A5004C */ addiu $a1, $sp, 0x4c
/* 00577C 80004B7C 018F2021 */ addu $a0, $t4, $t7
/* 005780 80004B80 0C0011D0 */ jal func_80004740
/* 005784 80004B84 248402C0 */ addiu $a0, $a0, 0x2c0
/* 005788 80004B88 3C048016 */ lui $a0, %hi(D_80162D7A) # $a0, 0x8016
/* 00578C 80004B8C 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015
/* 005790 80004B90 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298
/* 005794 80004B94 24842D7A */ addiu $a0, %lo(D_80162D7A) # addiu $a0, $a0, 0x2d7a
/* 005798 80004B98 848E0000 */ lh $t6, ($a0)
/* 00579C 80004B9C 8CA30000 */ lw $v1, ($a1)
/* 0057A0 80004BA0 3C0A0104 */ lui $t2, (0x01040040 >> 16) # lui $t2, 0x104
/* 0057A4 80004BA4 25D80001 */ addiu $t8, $t6, 1
/* 0057A8 80004BA8 24790008 */ addiu $t9, $v1, 8
/* 0057AC 80004BAC 8FA6003C */ lw $a2, 0x3c($sp)
/* 0057B0 80004BB0 A4980000 */ sh $t8, ($a0)
/* 0057B4 80004BB4 ACB90000 */ sw $t9, ($a1)
/* 0057B8 80004BB8 354A0040 */ ori $t2, (0x01040040 & 0xFFFF) # ori $t2, $t2, 0x40
/* 0057BC 80004BBC AC6A0000 */ sw $t2, ($v1)
/* 0057C0 80004BC0 8E0D0000 */ lw $t5, ($s0)
/* 0057C4 80004BC4 3C0B8015 */ lui $t3, %hi(gGfxPool) # $t3, 0x8015
/* 0057C8 80004BC8 8D6BEF40 */ lw $t3, %lo(gGfxPool)($t3)
/* 0057CC 80004BCC 3C018000 */ lui $at, (0x800002C0 >> 16) # lui $at, 0x8000
/* 0057D0 80004BD0 000D6180 */ sll $t4, $t5, 6
/* 0057D4 80004BD4 342102C0 */ ori $at, (0x800002C0 & 0xFFFF) # ori $at, $at, 0x2c0
/* 0057D8 80004BD8 016C7821 */ addu $t7, $t3, $t4
/* 0057DC 80004BDC 01E17021 */ addu $t6, $t7, $at
/* 0057E0 80004BE0 AC6E0004 */ sw $t6, 4($v1)
/* 0057E4 80004BE4 8E180000 */ lw $t8, ($s0)
/* 0057E8 80004BE8 27190001 */ addiu $t9, $t8, 1
/* 0057EC 80004BEC 10C0000B */ beqz $a2, .L80004C1C
/* 0057F0 80004BF0 AE190000 */ sw $t9, ($s0)
/* 0057F4 80004BF4 0C0A9EF5 */ jal lookup_item
/* 0057F8 80004BF8 00C02025 */ move $a0, $a2
/* 0057FC 80004BFC 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015
/* 005800 80004C00 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298
/* 005804 80004C04 8CA30000 */ lw $v1, ($a1)
/* 005808 80004C08 3C0D0600 */ lui $t5, 0x600
/* 00580C 80004C0C 246A0008 */ addiu $t2, $v1, 8
/* 005810 80004C10 ACAA0000 */ sw $t2, ($a1)
/* 005814 80004C14 AC620004 */ sw $v0, 4($v1)
/* 005818 80004C18 AC6D0000 */ sw $t5, ($v1)
.L80004C1C:
/* 00581C 80004C1C 8FBF001C */ lw $ra, 0x1c($sp)
/* 005820 80004C20 8FB00018 */ lw $s0, 0x18($sp)
/* 005824 80004C24 27BD00A0 */ addiu $sp, $sp, 0xa0
/* 005828 80004C28 03E00008 */ jr $ra
/* 00582C 80004C2C 00000000 */ nop
glabel func_80004C30
/* 005830 80004C30 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 005834 80004C34 AFB20020 */ sw $s2, 0x20($sp)
/* 005838 80004C38 00809025 */ move $s2, $a0
/* 00583C 80004C3C AFBF003C */ sw $ra, 0x3c($sp)
/* 005840 80004C40 AFBE0038 */ sw $fp, 0x38($sp)
/* 005844 80004C44 AFB70034 */ sw $s7, 0x34($sp)
/* 005848 80004C48 AFB60030 */ sw $s6, 0x30($sp)
/* 00584C 80004C4C AFB5002C */ sw $s5, 0x2c($sp)
/* 005850 80004C50 AFB40028 */ sw $s4, 0x28($sp)
/* 005854 80004C54 AFB30024 */ sw $s3, 0x24($sp)
/* 005858 80004C58 AFB1001C */ sw $s1, 0x1c($sp)
/* 00585C 80004C5C AFB00018 */ sw $s0, 0x18($sp)
/* 005860 80004C60 AFA60050 */ sw $a2, 0x50($sp)
/* 005864 80004C64 8CA4000C */ lw $a0, 0xc($a1)
/* 005868 80004C68 00A08025 */ move $s0, $a1
/* 00586C 80004C6C 0C0A9EF5 */ jal lookup_item
/* 005870 80004C70 A7A60052 */ sh $a2, 0x52($sp)
/* 005874 80004C74 AFA20040 */ sw $v0, 0x40($sp)
/* 005878 80004C78 0C0A9EF5 */ jal lookup_item
/* 00587C 80004C7C 8E040010 */ lw $a0, 0x10($s0)
/* 005880 80004C80 3C138016 */ lui $s3, %hi(D_80162D7A) # $s3, 0x8016
/* 005884 80004C84 26732D7A */ addiu $s3, %lo(D_80162D7A) # addiu $s3, $s3, 0x2d7a
/* 005888 80004C88 A6600000 */ sh $zero, ($s3)
/* 00588C 80004C8C 3C018016 */ lui $at, %hi(D_80162D76) # $at, 0x8016
/* 005890 80004C90 3C038016 */ lui $v1, %hi(D_80162D70) # $v1, 0x8016
/* 005894 80004C94 3C068016 */ lui $a2, %hi(D_80162D76) # $a2, 0x8016
/* 005898 80004C98 87A70052 */ lh $a3, 0x52($sp)
/* 00589C 80004C9C A4202D76 */ sh $zero, %lo(D_80162D76)($at)
/* 0058A0 80004CA0 24C62D76 */ addiu $a2, %lo(D_80162D76) # addiu $a2, $a2, 0x2d76
/* 0058A4 80004CA4 24632D70 */ addiu $v1, %lo(D_80162D70) # addiu $v1, $v1, 0x2d70
/* 0058A8 80004CA8 00402025 */ move $a0, $v0
/* 0058AC 80004CAC 8FA80040 */ lw $t0, 0x40($sp)
.L80004CB0:
/* 0058B0 80004CB0 948F0000 */ lhu $t7, ($a0)
/* 0058B4 80004CB4 00002825 */ move $a1, $zero
/* 0058B8 80004CB8 00EF082A */ slt $at, $a3, $t7
/* 0058BC 80004CBC 10200003 */ beqz $at, .L80004CCC
/* 0058C0 80004CC0 00000000 */ nop
/* 0058C4 80004CC4 10000001 */ b .L80004CCC
/* 0058C8 80004CC8 00E02825 */ move $a1, $a3
.L80004CCC:
/* 0058CC 80004CCC 94980002 */ lhu $t8, 2($a0)
/* 0058D0 80004CD0 00055040 */ sll $t2, $a1, 1
/* 0058D4 80004CD4 24630002 */ addiu $v1, $v1, 2
/* 0058D8 80004CD8 0018C840 */ sll $t9, $t8, 1
/* 0058DC 80004CDC 01194821 */ addu $t1, $t0, $t9
/* 0058E0 80004CE0 012A5821 */ addu $t3, $t1, $t2
/* 0058E4 80004CE4 856C0000 */ lh $t4, ($t3)
/* 0058E8 80004CE8 24840004 */ addiu $a0, $a0, 4
/* 0058EC 80004CEC 1466FFF0 */ bne $v1, $a2, .L80004CB0
/* 0058F0 80004CF0 A46CFFFE */ sh $t4, -2($v1)
/* 0058F4 80004CF4 3C158016 */ lui $s5, %hi(D_80162D78) # $s5, 0x8016
/* 0058F8 80004CF8 26B52D78 */ addiu $s5, %lo(D_80162D78) # addiu $s5, $s5, 0x2d78
/* 0058FC 80004CFC 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015
/* 005900 80004D00 2454000C */ addiu $s4, $v0, 0xc
/* 005904 80004D04 A6A00000 */ sh $zero, ($s5)
/* 005908 80004D08 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298
/* 00590C 80004D0C 3C1EBD00 */ lui $fp, 0xbd00
/* 005910 80004D10 24170003 */ li $s7, 3
/* 005914 80004D14 24160001 */ li $s6, 1
.L80004D18:
/* 005918 80004D18 8E500000 */ lw $s0, ($s2)
/* 00591C 80004D1C 02402025 */ move $a0, $s2
/* 005920 80004D20 02803025 */ move $a2, $s4
/* 005924 80004D24 52000015 */ beql $s0, $zero, .L80004D7C
/* 005928 80004D28 86B80000 */ lh $t8, ($s5)
/* 00592C 80004D2C 12160007 */ beq $s0, $s6, .L80004D4C
/* 005930 80004D30 24010002 */ li $at, 2
/* 005934 80004D34 52010008 */ beql $s0, $at, .L80004D58
/* 005938 80004D38 8E230000 */ lw $v1, ($s1)
/* 00593C 80004D3C 52170020 */ beql $s0, $s7, .L80004DC0
/* 005940 80004D40 8E4B0004 */ lw $t3, 4($s2)
/* 005944 80004D44 1000001E */ b .L80004DC0
/* 005948 80004D48 8E4B0004 */ lw $t3, 4($s2)
.L80004D4C:
/* 00594C 80004D4C 1000001B */ b .L80004DBC
/* 005950 80004D50 A6B60000 */ sh $s6, ($s5)
/* 005954 80004D54 8E230000 */ lw $v1, ($s1)
.L80004D58:
/* 005958 80004D58 246D0008 */ addiu $t5, $v1, 8
/* 00595C 80004D5C AE2D0000 */ sw $t5, ($s1)
/* 005960 80004D60 AC600004 */ sw $zero, 4($v1)
/* 005964 80004D64 AC7E0000 */ sw $fp, ($v1)
/* 005968 80004D68 866E0000 */ lh $t6, ($s3)
/* 00596C 80004D6C 25CFFFFF */ addiu $t7, $t6, -1
/* 005970 80004D70 10000012 */ b .L80004DBC
/* 005974 80004D74 A66F0000 */ sh $t7, ($s3)
/* 005978 80004D78 86B80000 */ lh $t8, ($s5)
.L80004D7C:
/* 00597C 80004D7C 5700000A */ bnel $t8, $zero, .L80004DA8
/* 005980 80004D80 8FA50040 */ lw $a1, 0x40($sp)
/* 005984 80004D84 8E230000 */ lw $v1, ($s1)
/* 005988 80004D88 24790008 */ addiu $t9, $v1, 8
/* 00598C 80004D8C AE390000 */ sw $t9, ($s1)
/* 005990 80004D90 AC600004 */ sw $zero, 4($v1)
/* 005994 80004D94 AC7E0000 */ sw $fp, ($v1)
/* 005998 80004D98 86690000 */ lh $t1, ($s3)
/* 00599C 80004D9C 252AFFFF */ addiu $t2, $t1, -1
/* 0059A0 80004DA0 A66A0000 */ sh $t2, ($s3)
/* 0059A4 80004DA4 8FA50040 */ lw $a1, 0x40($sp)
.L80004DA8:
/* 0059A8 80004DA8 0C001287 */ jal func_80004A1C
/* 0059AC 80004DAC A7A70052 */ sh $a3, 0x52($sp)
/* 0059B0 80004DB0 87A70052 */ lh $a3, 0x52($sp)
/* 0059B4 80004DB4 A6A00000 */ sh $zero, ($s5)
/* 0059B8 80004DB8 2694000C */ addiu $s4, $s4, 0xc
.L80004DBC:
/* 0059BC 80004DBC 8E4B0004 */ lw $t3, 4($s2)
.L80004DC0:
/* 0059C0 80004DC0 000B6080 */ sll $t4, $t3, 2
/* 0059C4 80004DC4 1617FFD4 */ bne $s0, $s7, .L80004D18
/* 0059C8 80004DC8 024C9021 */ addu $s2, $s2, $t4
/* 0059CC 80004DCC 8FBF003C */ lw $ra, 0x3c($sp)
/* 0059D0 80004DD0 8FB00018 */ lw $s0, 0x18($sp)
/* 0059D4 80004DD4 8FB1001C */ lw $s1, 0x1c($sp)
/* 0059D8 80004DD8 8FB20020 */ lw $s2, 0x20($sp)
/* 0059DC 80004DDC 8FB30024 */ lw $s3, 0x24($sp)
/* 0059E0 80004DE0 8FB40028 */ lw $s4, 0x28($sp)
/* 0059E4 80004DE4 8FB5002C */ lw $s5, 0x2c($sp)
/* 0059E8 80004DE8 8FB60030 */ lw $s6, 0x30($sp)
/* 0059EC 80004DEC 8FB70034 */ lw $s7, 0x34($sp)
/* 0059F0 80004DF0 8FBE0038 */ lw $fp, 0x38($sp)
/* 0059F4 80004DF4 03E00008 */ jr $ra
/* 0059F8 80004DF8 27BD0048 */ addiu $sp, $sp, 0x48
glabel func_80004DFC
/* 0059FC 80004DFC 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 005A00 80004E00 AFB00018 */ sw $s0, 0x18($sp)
/* 005A04 80004E04 00078400 */ sll $s0, $a3, 0x10
/* 005A08 80004E08 00107403 */ sra $t6, $s0, 0x10
/* 005A0C 80004E0C AFBF001C */ sw $ra, 0x1c($sp)
/* 005A10 80004E10 01C08025 */ move $s0, $t6
/* 005A14 80004E14 AFA5002C */ sw $a1, 0x2c($sp)
/* 005A18 80004E18 AFA60030 */ sw $a2, 0x30($sp)
/* 005A1C 80004E1C 0C0A9EF5 */ jal lookup_item
/* 005A20 80004E20 AFA70034 */ sw $a3, 0x34($sp)
/* 005A24 80004E24 AFA20024 */ sw $v0, 0x24($sp)
/* 005A28 80004E28 0C0A9EF5 */ jal lookup_item
/* 005A2C 80004E2C 8FA4002C */ lw $a0, 0x2c($sp)
/* 005A30 80004E30 87AF0032 */ lh $t7, 0x32($sp)
/* 005A34 80004E34 000FC080 */ sll $t8, $t7, 2
/* 005A38 80004E38 0058C821 */ addu $t9, $v0, $t8
/* 005A3C 80004E3C 0C0A9EF5 */ jal lookup_item
/* 005A40 80004E40 8F240000 */ lw $a0, ($t9)
/* 005A44 80004E44 84480008 */ lh $t0, 8($v0)
/* 005A48 80004E48 00402825 */ move $a1, $v0
/* 005A4C 80004E4C 8FA40024 */ lw $a0, 0x24($sp)
/* 005A50 80004E50 0208082A */ slt $at, $s0, $t0
/* 005A54 80004E54 54200003 */ bnel $at, $zero, .L80004E64
/* 005A58 80004E58 00103400 */ sll $a2, $s0, 0x10
/* 005A5C 80004E5C 00008025 */ move $s0, $zero
/* 005A60 80004E60 00103400 */ sll $a2, $s0, 0x10
.L80004E64:
/* 005A64 80004E64 00064C03 */ sra $t1, $a2, 0x10
/* 005A68 80004E68 01203025 */ move $a2, $t1
/* 005A6C 80004E6C 0C00130C */ jal func_80004C30
/* 005A70 80004E70 AFA50020 */ sw $a1, 0x20($sp)
/* 005A74 80004E74 8FA50020 */ lw $a1, 0x20($sp)
/* 005A78 80004E78 26100001 */ addiu $s0, $s0, 1
/* 005A7C 80004E7C 00105400 */ sll $t2, $s0, 0x10
/* 005A80 80004E80 84AC0008 */ lh $t4, 8($a1)
/* 005A84 80004E84 000A8403 */ sra $s0, $t2, 0x10
/* 005A88 80004E88 8FBF001C */ lw $ra, 0x1c($sp)
/* 005A8C 80004E8C 020C082A */ slt $at, $s0, $t4
/* 005A90 80004E90 54200003 */ bnel $at, $zero, .L80004EA0
/* 005A94 80004E94 02001025 */ move $v0, $s0
/* 005A98 80004E98 00008025 */ move $s0, $zero
/* 005A9C 80004E9C 02001025 */ move $v0, $s0
.L80004EA0:
/* 005AA0 80004EA0 8FB00018 */ lw $s0, 0x18($sp)
/* 005AA4 80004EA4 03E00008 */ jr $ra
/* 005AA8 80004EA8 27BD0028 */ addiu $sp, $sp, 0x28
glabel func_80004EAC
/* 005AAC 80004EAC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 005AB0 80004EB0 AFBF0014 */ sw $ra, 0x14($sp)
/* 005AB4 80004EB4 0C0A9EF5 */ jal lookup_item
/* 005AB8 80004EB8 AFA5001C */ sw $a1, 0x1c($sp)
/* 005ABC 80004EBC 87AE001E */ lh $t6, 0x1e($sp)
/* 005AC0 80004EC0 000E7880 */ sll $t7, $t6, 2
/* 005AC4 80004EC4 004FC021 */ addu $t8, $v0, $t7
/* 005AC8 80004EC8 0C0A9EF5 */ jal lookup_item
/* 005ACC 80004ECC 8F040000 */ lw $a0, ($t8)
/* 005AD0 80004ED0 84420008 */ lh $v0, 8($v0)
/* 005AD4 80004ED4 8FBF0014 */ lw $ra, 0x14($sp)
/* 005AD8 80004ED8 27BD0018 */ addiu $sp, $sp, 0x18
/* 005ADC 80004EDC 2442FFFF */ addiu $v0, $v0, -1
/* 005AE0 80004EE0 0002CC00 */ sll $t9, $v0, 0x10
/* 005AE4 80004EE4 03E00008 */ jr $ra
/* 005AE8 80004EE8 00191403 */ sra $v0, $t9, 0x10
/* 005AEC 80004EEC 00000000 */ nop

1204
asm/code_80004EF0.s Normal file

File diff suppressed because it is too large Load Diff

22
asm/code_80005FB0.s Normal file
View File

@ -0,0 +1,22 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
/* 006BB0 80005FB0 00853020 */ add $a2, $a0, $a1
/* 006BB4 80005FB4 3403FFFF */ li $v1, 65535
/* 006BB8 80005FB8 03E00008 */ jr $ra
/* 006BBC 80005FBC 0066102B */ sltu $v0, $v1, $a2
/* 006BC0 80005FC0 03E00008 */ jr $ra
/* 006BC4 80005FC4 0085102A */ slt $v0, $a0, $a1
/* 006BC8 80005FC8 00000000 */ nop
/* 006BCC 80005FCC 00000000 */ nop

3627
asm/code_8001C4D0.s Normal file

File diff suppressed because it is too large Load Diff

7940
asm/code_8001F980.s Normal file

File diff suppressed because it is too large Load Diff

854
asm/code_80027040.s Normal file
View File

@ -0,0 +1,854 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_80027040
/* 027C40 80027040 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 027C44 80027044 AFBF002C */ sw $ra, 0x2c($sp)
/* 027C48 80027048 AFB10028 */ sw $s1, 0x28($sp)
/* 027C4C 8002704C AFB00024 */ sw $s0, 0x24($sp)
/* 027C50 80027050 AFA5003C */ sw $a1, 0x3c($sp)
/* 027C54 80027054 AFA60040 */ sw $a2, 0x40($sp)
/* 027C58 80027058 AFA70044 */ sw $a3, 0x44($sp)
/* 027C5C 8002705C 8C8200BC */ lw $v0, 0xbc($a0)
/* 027C60 80027060 00077600 */ sll $t6, $a3, 0x18
/* 027C64 80027064 24010080 */ li $at, 128
/* 027C68 80027068 30580080 */ andi $t8, $v0, 0x80
/* 027C6C 8002706C 000E3E03 */ sra $a3, $t6, 0x18
/* 027C70 80027070 13010014 */ beq $t8, $at, .L800270C4
/* 027C74 80027074 00808825 */ move $s1, $a0
/* 027C78 80027078 30590040 */ andi $t9, $v0, 0x40
/* 027C7C 8002707C 24010040 */ li $at, 64
/* 027C80 80027080 13210010 */ beq $t9, $at, .L800270C4
/* 027C84 80027084 3C030008 */ lui $v1, 8
/* 027C88 80027088 00434024 */ and $t0, $v0, $v1
/* 027C8C 8002708C 1068000D */ beq $v1, $t0, .L800270C4
/* 027C90 80027090 3C030080 */ lui $v1, 0x80
/* 027C94 80027094 00434824 */ and $t1, $v0, $v1
/* 027C98 80027098 1069000A */ beq $v1, $t1, .L800270C4
/* 027C9C 8002709C 3C030002 */ lui $v1, 2
/* 027CA0 800270A0 00435024 */ and $t2, $v0, $v1
/* 027CA4 800270A4 506A0008 */ beql $v1, $t2, .L800270C8
/* 027CA8 800270A8 83AD0043 */ lb $t5, 0x43($sp)
/* 027CAC 800270AC 848B0044 */ lh $t3, 0x44($a0)
/* 027CB0 800270B0 30480400 */ andi $t0, $v0, 0x400
/* 027CB4 800270B4 24010400 */ li $at, 1024
/* 027CB8 800270B8 316C0800 */ andi $t4, $t3, 0x800
/* 027CBC 800270BC 11800096 */ beqz $t4, .L80027318
/* 027CC0 800270C0 00000000 */ nop
.L800270C4:
/* 027CC4 800270C4 83AD0043 */ lb $t5, 0x43($sp)
.L800270C8:
/* 027CC8 800270C8 83AC004B */ lb $t4, 0x4b($sp)
/* 027CCC 800270CC 3C19802E */ lui $t9, 0x802e
/* 027CD0 800270D0 000D7040 */ sll $t6, $t5, 1
/* 027CD4 800270D4 022E1821 */ addu $v1, $s1, $t6
/* 027CD8 800270D8 946F0244 */ lhu $t7, 0x244($v1)
/* 027CDC 800270DC 000C58C0 */ sll $t3, $t4, 3
/* 027CE0 800270E0 016C5821 */ addu $t3, $t3, $t4
/* 027CE4 800270E4 11E00049 */ beqz $t7, .L8002720C
/* 027CE8 800270E8 000B58C0 */ sll $t3, $t3, 3
/* 027CEC 800270EC 83B8004B */ lb $t8, 0x4b($sp)
/* 027CF0 800270F0 83AA003F */ lb $t2, 0x3f($sp)
/* 027CF4 800270F4 000740C0 */ sll $t0, $a3, 3
/* 027CF8 800270F8 0018C8C0 */ sll $t9, $t8, 3
/* 027CFC 800270FC 01074021 */ addu $t0, $t0, $a3
/* 027D00 80027100 0338C821 */ addu $t9, $t9, $t8
/* 027D04 80027104 000A58C0 */ sll $t3, $t2, 3
/* 027D08 80027108 0019C8C0 */ sll $t9, $t9, 3
/* 027D0C 8002710C 000840C0 */ sll $t0, $t0, 3
/* 027D10 80027110 016A5821 */ addu $t3, $t3, $t2
/* 027D14 80027114 962E0254 */ lhu $t6, 0x254($s1)
/* 027D18 80027118 000B58C0 */ sll $t3, $t3, 3
/* 027D1C 8002711C 01074021 */ addu $t0, $t0, $a3
/* 027D20 80027120 0338C821 */ addu $t9, $t9, $t8
/* 027D24 80027124 0019CA40 */ sll $t9, $t9, 9
/* 027D28 80027128 00084200 */ sll $t0, $t0, 8
/* 027D2C 8002712C 016A5821 */ addu $t3, $t3, $t2
/* 027D30 80027130 000B5940 */ sll $t3, $t3, 5
/* 027D34 80027134 03284821 */ addu $t1, $t9, $t0
/* 027D38 80027138 3C0D802E */ lui $t5, %hi(D_802DFB80) # $t5, 0x802e
/* 027D3C 8002713C 25ADFB80 */ addiu $t5, %lo(D_802DFB80) # addiu $t5, $t5, -0x480
/* 027D40 80027140 012B6021 */ addu $t4, $t1, $t3
/* 027D44 80027144 3C05800E */ lui $a1, %hi(D_800DDEB0)
/* 027D48 80027148 000E7840 */ sll $t7, $t6, 1
/* 027D4C 8002714C 00AF2821 */ addu $a1, $a1, $t7
/* 027D50 80027150 018D8021 */ addu $s0, $t4, $t5
/* 027D54 80027154 02002025 */ move $a0, $s0
/* 027D58 80027158 94A5DEB0 */ lhu $a1, %lo(D_800DDEB0)($a1)
/* 027D5C 8002715C 0C0336E0 */ jal osInvalDCache
/* 027D60 80027160 AFA30030 */ sw $v1, 0x30($sp)
/* 027D64 80027164 96220254 */ lhu $v0, 0x254($s1)
/* 027D68 80027168 8FA30030 */ lw $v1, 0x30($sp)
/* 027D6C 8002716C 3C19800E */ lui $t9, %hi(gKartTextureTable1)
/* 027D70 80027170 0002C080 */ sll $t8, $v0, 2
/* 027D74 80027174 9468024C */ lhu $t0, 0x24c($v1)
/* 027D78 80027178 0338C821 */ addu $t9, $t9, $t8
/* 027D7C 8002717C 8F391F00 */ lw $t9, %lo(gKartTextureTable1)($t9)
/* 027D80 80027180 00085080 */ sll $t2, $t0, 2
/* 027D84 80027184 946C0244 */ lhu $t4, 0x244($v1)
/* 027D88 80027188 032A4821 */ addu $t1, $t9, $t2
/* 027D8C 8002718C 8D2B0000 */ lw $t3, ($t1)
/* 027D90 80027190 000C6880 */ sll $t5, $t4, 2
/* 027D94 80027194 3C0A800E */ lui $t2, %hi(D_800DDEB0)
/* 027D98 80027198 016D7021 */ addu $t6, $t3, $t5
/* 027D9C 8002719C 8DCF0000 */ lw $t7, ($t6)
/* 027DA0 800271A0 0002C840 */ sll $t9, $v0, 1
/* 027DA4 800271A4 01595021 */ addu $t2, $t2, $t9
/* 027DA8 800271A8 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 027DAC 800271AC 954ADEB0 */ lhu $t2, %lo(D_800DDEB0)($t2)
/* 027DB0 800271B0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 027DB4 800271B4 3C098015 */ lui $t1, %hi(D_8014EF58) # $t1, 0x8015
/* 027DB8 800271B8 3C080014 */ lui $t0, %hi(_kart_texturesSegmentRomStart) # $t0, 0x14
/* 027DBC 800271BC 25085470 */ addiu $t0, %lo(_kart_texturesSegmentRomStart) # addiu $t0, $t0, 0x5470
/* 027DC0 800271C0 2529EF58 */ addiu $t1, %lo(D_8014EF58) # addiu $t1, $t1, -0x10a8
/* 027DC4 800271C4 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 027DC8 800271C8 01E1C024 */ and $t8, $t7, $at
/* 027DCC 800271CC 03083821 */ addu $a3, $t8, $t0
/* 027DD0 800271D0 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 027DD4 800271D4 AFA90018 */ sw $t1, 0x18($sp)
/* 027DD8 800271D8 AFB00010 */ sw $s0, 0x10($sp)
/* 027DDC 800271DC 00002825 */ move $a1, $zero
/* 027DE0 800271E0 00003025 */ move $a2, $zero
/* 027DE4 800271E4 0C03370C */ jal osPiStartDma
/* 027DE8 800271E8 AFAA0014 */ sw $t2, 0x14($sp)
/* 027DEC 800271EC 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 027DF0 800271F0 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 027DF4 800271F4 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 027DF8 800271F8 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 027DFC 800271FC 0C0335D4 */ jal osRecvMesg
/* 027E00 80027200 24060001 */ li $a2, 1
/* 027E04 80027204 100000D2 */ b .L80027550
/* 027E08 80027208 8FBF002C */ lw $ra, 0x2c($sp)
.L8002720C:
/* 027E0C 8002720C 83AF003F */ lb $t7, 0x3f($sp)
/* 027E10 80027210 000768C0 */ sll $t5, $a3, 3
/* 027E14 80027214 01A76821 */ addu $t5, $t5, $a3
/* 027E18 80027218 000FC0C0 */ sll $t8, $t7, 3
/* 027E1C 8002721C 000D68C0 */ sll $t5, $t5, 3
/* 027E20 80027220 030FC021 */ addu $t8, $t8, $t7
/* 027E24 80027224 962A0254 */ lhu $t2, 0x254($s1)
/* 027E28 80027228 0018C0C0 */ sll $t8, $t8, 3
/* 027E2C 8002722C 01A76821 */ addu $t5, $t5, $a3
/* 027E30 80027230 016C5821 */ addu $t3, $t3, $t4
/* 027E34 80027234 000B5A40 */ sll $t3, $t3, 9
/* 027E38 80027238 000D6A00 */ sll $t5, $t5, 8
/* 027E3C 8002723C 030FC021 */ addu $t8, $t8, $t7
/* 027E40 80027240 0018C140 */ sll $t8, $t8, 5
/* 027E44 80027244 016D7021 */ addu $t6, $t3, $t5
/* 027E48 80027248 01D84021 */ addu $t0, $t6, $t8
/* 027E4C 8002724C 2739FB80 */ addiu $t9, $t9, -0x480
/* 027E50 80027250 3C05800E */ lui $a1, %hi(D_800DDEB0)
/* 027E54 80027254 000A4840 */ sll $t1, $t2, 1
/* 027E58 80027258 00A92821 */ addu $a1, $a1, $t1
/* 027E5C 8002725C 01198021 */ addu $s0, $t0, $t9
/* 027E60 80027260 02002025 */ move $a0, $s0
/* 027E64 80027264 94A5DEB0 */ lhu $a1, %lo(D_800DDEB0)($a1)
/* 027E68 80027268 0C0336E0 */ jal osInvalDCache
/* 027E6C 8002726C AFA30030 */ sw $v1, 0x30($sp)
/* 027E70 80027270 96220254 */ lhu $v0, 0x254($s1)
/* 027E74 80027274 8FA30030 */ lw $v1, 0x30($sp)
/* 027E78 80027278 3C0B800E */ lui $t3, %hi(gKartTextureTable0)
/* 027E7C 8002727C 00026080 */ sll $t4, $v0, 2
/* 027E80 80027280 946D024C */ lhu $t5, 0x24c($v1)
/* 027E84 80027284 016C5821 */ addu $t3, $t3, $t4
/* 027E88 80027288 8D6B1EE0 */ lw $t3, %lo(gKartTextureTable0)($t3)
/* 027E8C 8002728C 000D7880 */ sll $t7, $t5, 2
/* 027E90 80027290 94680244 */ lhu $t0, 0x244($v1)
/* 027E94 80027294 016F7021 */ addu $t6, $t3, $t7
/* 027E98 80027298 8DD80000 */ lw $t8, ($t6)
/* 027E9C 8002729C 0008C880 */ sll $t9, $t0, 2
/* 027EA0 800272A0 3C0F800E */ lui $t7, %hi(D_800DDEB0)
/* 027EA4 800272A4 03195021 */ addu $t2, $t8, $t9
/* 027EA8 800272A8 8D490000 */ lw $t1, ($t2)
/* 027EAC 800272AC 00025840 */ sll $t3, $v0, 1
/* 027EB0 800272B0 01EB7821 */ addu $t7, $t7, $t3
/* 027EB4 800272B4 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 027EB8 800272B8 95EFDEB0 */ lhu $t7, %lo(D_800DDEB0)($t7)
/* 027EBC 800272BC 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 027EC0 800272C0 3C0E8015 */ lui $t6, %hi(D_8014EF58) # $t6, 0x8015
/* 027EC4 800272C4 3C0D0014 */ lui $t5, %hi(_kart_texturesSegmentRomStart) # $t5, 0x14
/* 027EC8 800272C8 25AD5470 */ addiu $t5, %lo(_kart_texturesSegmentRomStart) # addiu $t5, $t5, 0x5470
/* 027ECC 800272CC 25CEEF58 */ addiu $t6, %lo(D_8014EF58) # addiu $t6, $t6, -0x10a8
/* 027ED0 800272D0 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 027ED4 800272D4 01216024 */ and $t4, $t1, $at
/* 027ED8 800272D8 018D3821 */ addu $a3, $t4, $t5
/* 027EDC 800272DC 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 027EE0 800272E0 AFAE0018 */ sw $t6, 0x18($sp)
/* 027EE4 800272E4 AFB00010 */ sw $s0, 0x10($sp)
/* 027EE8 800272E8 00002825 */ move $a1, $zero
/* 027EEC 800272EC 00003025 */ move $a2, $zero
/* 027EF0 800272F0 0C03370C */ jal osPiStartDma
/* 027EF4 800272F4 AFAF0014 */ sw $t7, 0x14($sp)
/* 027EF8 800272F8 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 027EFC 800272FC 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 027F00 80027300 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 027F04 80027304 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 027F08 80027308 0C0335D4 */ jal osRecvMesg
/* 027F0C 8002730C 24060001 */ li $a2, 1
/* 027F10 80027310 1000008F */ b .L80027550
/* 027F14 80027314 8FBF002C */ lw $ra, 0x2c($sp)
.L80027318:
/* 027F18 80027318 1101000A */ beq $t0, $at, .L80027344
/* 027F1C 8002731C 3C030100 */ lui $v1, 0x100
/* 027F20 80027320 0043C024 */ and $t8, $v0, $v1
/* 027F24 80027324 10780007 */ beq $v1, $t8, .L80027344
/* 027F28 80027328 3C030200 */ lui $v1, 0x200
/* 027F2C 8002732C 0043C824 */ and $t9, $v0, $v1
/* 027F30 80027330 10790004 */ beq $v1, $t9, .L80027344
/* 027F34 80027334 3C030001 */ lui $v1, 1
/* 027F38 80027338 00435024 */ and $t2, $v0, $v1
/* 027F3C 8002733C 146A003D */ bne $v1, $t2, .L80027434
/* 027F40 80027340 83AC004B */ lb $t4, 0x4b($sp)
.L80027344:
/* 027F44 80027344 83A9004B */ lb $t1, 0x4b($sp)
/* 027F48 80027348 83AF003F */ lb $t7, 0x3f($sp)
/* 027F4C 8002734C 000768C0 */ sll $t5, $a3, 3
/* 027F50 80027350 000960C0 */ sll $t4, $t1, 3
/* 027F54 80027354 01A76821 */ addu $t5, $t5, $a3
/* 027F58 80027358 01896021 */ addu $t4, $t4, $t1
/* 027F5C 8002735C 000F70C0 */ sll $t6, $t7, 3
/* 027F60 80027360 000C60C0 */ sll $t4, $t4, 3
/* 027F64 80027364 000D68C0 */ sll $t5, $t5, 3
/* 027F68 80027368 01CF7021 */ addu $t6, $t6, $t7
/* 027F6C 8002736C 000E70C0 */ sll $t6, $t6, 3
/* 027F70 80027370 01A76821 */ addu $t5, $t5, $a3
/* 027F74 80027374 01896021 */ addu $t4, $t4, $t1
/* 027F78 80027378 000C6240 */ sll $t4, $t4, 9
/* 027F7C 8002737C 000D6A00 */ sll $t5, $t5, 8
/* 027F80 80027380 01CF7021 */ addu $t6, $t6, $t7
/* 027F84 80027384 000E7140 */ sll $t6, $t6, 5
/* 027F88 80027388 018D5821 */ addu $t3, $t4, $t5
/* 027F8C 8002738C 3C18802E */ lui $t8, %hi(D_802DFB80) # $t8, 0x802e
/* 027F90 80027390 2718FB80 */ addiu $t8, %lo(D_802DFB80) # addiu $t8, $t8, -0x480
/* 027F94 80027394 016E4021 */ addu $t0, $t3, $t6
/* 027F98 80027398 01188021 */ addu $s0, $t0, $t8
/* 027F9C 8002739C 02002025 */ move $a0, $s0
/* 027FA0 800273A0 0C0336E0 */ jal osInvalDCache
/* 027FA4 800273A4 24050780 */ li $a1, 1920
/* 027FA8 800273A8 96390254 */ lhu $t9, 0x254($s1)
/* 027FAC 800273AC 862C00A8 */ lh $t4, 0xa8($s1)
/* 027FB0 800273B0 3C09800E */ lui $t1, %hi(gKartTextureGroup18s)
/* 027FB4 800273B4 00195080 */ sll $t2, $t9, 2
/* 027FB8 800273B8 012A4821 */ addu $t1, $t1, $t2
/* 027FBC 800273BC 8D292320 */ lw $t1, %lo(gKartTextureGroup18s)($t1)
/* 027FC0 800273C0 000C6A03 */ sra $t5, $t4, 8
/* 027FC4 800273C4 000D7880 */ sll $t7, $t5, 2
/* 027FC8 800273C8 012F5821 */ addu $t3, $t1, $t7
/* 027FCC 800273CC 8D6E0000 */ lw $t6, ($t3)
/* 027FD0 800273D0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 027FD4 800273D4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 027FD8 800273D8 3C0A8015 */ lui $t2, %hi(D_8014EF58) # $t2, 0x8015
/* 027FDC 800273DC 3C180014 */ lui $t8, %hi(_kart_texturesSegmentRomStart) # $t8, 0x14
/* 027FE0 800273E0 27185470 */ addiu $t8, %lo(_kart_texturesSegmentRomStart) # addiu $t8, $t8, 0x5470
/* 027FE4 800273E4 254AEF58 */ addiu $t2, %lo(D_8014EF58) # addiu $t2, $t2, -0x10a8
/* 027FE8 800273E8 24190900 */ li $t9, 2304
/* 027FEC 800273EC 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 027FF0 800273F0 01C14024 */ and $t0, $t6, $at
/* 027FF4 800273F4 01183821 */ addu $a3, $t0, $t8
/* 027FF8 800273F8 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 027FFC 800273FC AFB90014 */ sw $t9, 0x14($sp)
/* 028000 80027400 AFAA0018 */ sw $t2, 0x18($sp)
/* 028004 80027404 AFB00010 */ sw $s0, 0x10($sp)
/* 028008 80027408 00002825 */ move $a1, $zero
/* 02800C 8002740C 0C03370C */ jal osPiStartDma
/* 028010 80027410 00003025 */ move $a2, $zero
/* 028014 80027414 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 028018 80027418 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 02801C 8002741C 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 028020 80027420 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 028024 80027424 0C0335D4 */ jal osRecvMesg
/* 028028 80027428 24060001 */ li $a2, 1
/* 02802C 8002742C 10000048 */ b .L80027550
/* 028030 80027430 8FBF002C */ lw $ra, 0x2c($sp)
.L80027434:
/* 028034 80027434 83AB003F */ lb $t3, 0x3f($sp)
/* 028038 80027438 000C68C0 */ sll $t5, $t4, 3
/* 02803C 8002743C 000748C0 */ sll $t1, $a3, 3
/* 028040 80027440 01274821 */ addu $t1, $t1, $a3
/* 028044 80027444 01AC6821 */ addu $t5, $t5, $t4
/* 028048 80027448 000B70C0 */ sll $t6, $t3, 3
/* 02804C 8002744C 000D68C0 */ sll $t5, $t5, 3
/* 028050 80027450 000948C0 */ sll $t1, $t1, 3
/* 028054 80027454 01CB7021 */ addu $t6, $t6, $t3
/* 028058 80027458 96390254 */ lhu $t9, 0x254($s1)
/* 02805C 8002745C 000E70C0 */ sll $t6, $t6, 3
/* 028060 80027460 01274821 */ addu $t1, $t1, $a3
/* 028064 80027464 01AC6821 */ addu $t5, $t5, $t4
/* 028068 80027468 000D6A40 */ sll $t5, $t5, 9
/* 02806C 8002746C 00094A00 */ sll $t1, $t1, 8
/* 028070 80027470 01CB7021 */ addu $t6, $t6, $t3
/* 028074 80027474 000E7140 */ sll $t6, $t6, 5
/* 028078 80027478 01A97821 */ addu $t7, $t5, $t1
/* 02807C 8002747C 3C18802E */ lui $t8, %hi(D_802DFB80) # $t8, 0x802e
/* 028080 80027480 2718FB80 */ addiu $t8, %lo(D_802DFB80) # addiu $t8, $t8, -0x480
/* 028084 80027484 01EE4021 */ addu $t0, $t7, $t6
/* 028088 80027488 3C05800E */ lui $a1, %hi(D_800DDEB0)
/* 02808C 8002748C 00195040 */ sll $t2, $t9, 1
/* 028090 80027490 00AA2821 */ addu $a1, $a1, $t2
/* 028094 80027494 01188021 */ addu $s0, $t0, $t8
/* 028098 80027498 02002025 */ move $a0, $s0
/* 02809C 8002749C 0C0336E0 */ jal osInvalDCache
/* 0280A0 800274A0 94A5DEB0 */ lhu $a1, %lo(D_800DDEB0)($a1)
/* 0280A4 800274A4 83AC0043 */ lb $t4, 0x43($sp)
/* 0280A8 800274A8 96220254 */ lhu $v0, 0x254($s1)
/* 0280AC 800274AC 3C0B800E */ lui $t3, %hi(gKartTextureTable0)
/* 0280B0 800274B0 000C6840 */ sll $t5, $t4, 1
/* 0280B4 800274B4 022D1821 */ addu $v1, $s1, $t5
/* 0280B8 800274B8 00024880 */ sll $t1, $v0, 2
/* 0280BC 800274BC 946F024C */ lhu $t7, 0x24c($v1)
/* 0280C0 800274C0 01695821 */ addu $t3, $t3, $t1
/* 0280C4 800274C4 8D6B1EE0 */ lw $t3, %lo(gKartTextureTable0)($t3)
/* 0280C8 800274C8 000F7080 */ sll $t6, $t7, 2
/* 0280CC 800274CC 94790244 */ lhu $t9, 0x244($v1)
/* 0280D0 800274D0 016E4021 */ addu $t0, $t3, $t6
/* 0280D4 800274D4 8D180000 */ lw $t8, ($t0)
/* 0280D8 800274D8 00195080 */ sll $t2, $t9, 2
/* 0280DC 800274DC 3C0E800E */ lui $t6, %hi(D_800DDEB0)
/* 0280E0 800274E0 030A6021 */ addu $t4, $t8, $t2
/* 0280E4 800274E4 8D8D0000 */ lw $t5, ($t4)
/* 0280E8 800274E8 00025840 */ sll $t3, $v0, 1
/* 0280EC 800274EC 01CB7021 */ addu $t6, $t6, $t3
/* 0280F0 800274F0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0280F4 800274F4 95CEDEB0 */ lhu $t6, %lo(D_800DDEB0)($t6)
/* 0280F8 800274F8 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0280FC 800274FC 3C088015 */ lui $t0, %hi(D_8014EF58) # $t0, 0x8015
/* 028100 80027500 3C0F0014 */ lui $t7, %hi(_kart_texturesSegmentRomStart) # $t7, 0x14
/* 028104 80027504 25EF5470 */ addiu $t7, %lo(_kart_texturesSegmentRomStart) # addiu $t7, $t7, 0x5470
/* 028108 80027508 2508EF58 */ addiu $t0, %lo(D_8014EF58) # addiu $t0, $t0, -0x10a8
/* 02810C 8002750C 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 028110 80027510 01A14824 */ and $t1, $t5, $at
/* 028114 80027514 012F3821 */ addu $a3, $t1, $t7
/* 028118 80027518 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 02811C 8002751C AFA80018 */ sw $t0, 0x18($sp)
/* 028120 80027520 AFB00010 */ sw $s0, 0x10($sp)
/* 028124 80027524 00002825 */ move $a1, $zero
/* 028128 80027528 00003025 */ move $a2, $zero
/* 02812C 8002752C 0C03370C */ jal osPiStartDma
/* 028130 80027530 AFAE0014 */ sw $t6, 0x14($sp)
/* 028134 80027534 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 028138 80027538 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 02813C 8002753C 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 028140 80027540 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 028144 80027544 0C0335D4 */ jal osRecvMesg
/* 028148 80027548 24060001 */ li $a2, 1
/* 02814C 8002754C 8FBF002C */ lw $ra, 0x2c($sp)
.L80027550:
/* 028150 80027550 8FB00024 */ lw $s0, 0x24($sp)
/* 028154 80027554 8FB10028 */ lw $s1, 0x28($sp)
/* 028158 80027558 03E00008 */ jr $ra
/* 02815C 8002755C 27BD0038 */ addiu $sp, $sp, 0x38
glabel func_80027560
/* 028160 80027560 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 028164 80027564 AFBF002C */ sw $ra, 0x2c($sp)
/* 028168 80027568 AFB10028 */ sw $s1, 0x28($sp)
/* 02816C 8002756C AFB00024 */ sw $s0, 0x24($sp)
/* 028170 80027570 AFA5003C */ sw $a1, 0x3c($sp)
/* 028174 80027574 AFA60040 */ sw $a2, 0x40($sp)
/* 028178 80027578 AFA70044 */ sw $a3, 0x44($sp)
/* 02817C 8002757C 8C8200BC */ lw $v0, 0xbc($a0)
/* 028180 80027580 00077600 */ sll $t6, $a3, 0x18
/* 028184 80027584 24010080 */ li $at, 128
/* 028188 80027588 30580080 */ andi $t8, $v0, 0x80
/* 02818C 8002758C 000E3E03 */ sra $a3, $t6, 0x18
/* 028190 80027590 13010014 */ beq $t8, $at, .L800275E4
/* 028194 80027594 00808825 */ move $s1, $a0
/* 028198 80027598 30590040 */ andi $t9, $v0, 0x40
/* 02819C 8002759C 24010040 */ li $at, 64
/* 0281A0 800275A0 13210010 */ beq $t9, $at, .L800275E4
/* 0281A4 800275A4 3C030008 */ lui $v1, 8
/* 0281A8 800275A8 00434024 */ and $t0, $v0, $v1
/* 0281AC 800275AC 1068000D */ beq $v1, $t0, .L800275E4
/* 0281B0 800275B0 3C030080 */ lui $v1, 0x80
/* 0281B4 800275B4 00434824 */ and $t1, $v0, $v1
/* 0281B8 800275B8 1069000A */ beq $v1, $t1, .L800275E4
/* 0281BC 800275BC 3C030002 */ lui $v1, 2
/* 0281C0 800275C0 00435024 */ and $t2, $v0, $v1
/* 0281C4 800275C4 506A0008 */ beql $v1, $t2, .L800275E8
/* 0281C8 800275C8 83AD0043 */ lb $t5, 0x43($sp)
/* 0281CC 800275CC 848B0044 */ lh $t3, 0x44($a0)
/* 0281D0 800275D0 30480400 */ andi $t0, $v0, 0x400
/* 0281D4 800275D4 24010400 */ li $at, 1024
/* 0281D8 800275D8 316C0800 */ andi $t4, $t3, 0x800
/* 0281DC 800275DC 1180008A */ beqz $t4, .L80027808
/* 0281E0 800275E0 00000000 */ nop
.L800275E4:
/* 0281E4 800275E4 83AD0043 */ lb $t5, 0x43($sp)
.L800275E8:
/* 0281E8 800275E8 83AC004B */ lb $t4, 0x4b($sp)
/* 0281EC 800275EC 3C19802E */ lui $t9, 0x802e
/* 0281F0 800275F0 000D7040 */ sll $t6, $t5, 1
/* 0281F4 800275F4 022E1821 */ addu $v1, $s1, $t6
/* 0281F8 800275F8 946F0244 */ lhu $t7, 0x244($v1)
/* 0281FC 800275FC 000C58C0 */ sll $t3, $t4, 3
/* 028200 80027600 016C5821 */ addu $t3, $t3, $t4
/* 028204 80027604 11E00043 */ beqz $t7, .L80027714
/* 028208 80027608 000B58C0 */ sll $t3, $t3, 3
/* 02820C 8002760C 83B8004B */ lb $t8, 0x4b($sp)
/* 028210 80027610 83AA003F */ lb $t2, 0x3f($sp)
/* 028214 80027614 000740C0 */ sll $t0, $a3, 3
/* 028218 80027618 0018C8C0 */ sll $t9, $t8, 3
/* 02821C 8002761C 01074021 */ addu $t0, $t0, $a3
/* 028220 80027620 0338C821 */ addu $t9, $t9, $t8
/* 028224 80027624 000A58C0 */ sll $t3, $t2, 3
/* 028228 80027628 0019C8C0 */ sll $t9, $t9, 3
/* 02822C 8002762C 000840C0 */ sll $t0, $t0, 3
/* 028230 80027630 016A5821 */ addu $t3, $t3, $t2
/* 028234 80027634 962E0254 */ lhu $t6, 0x254($s1)
/* 028238 80027638 000B58C0 */ sll $t3, $t3, 3
/* 02823C 8002763C 01074021 */ addu $t0, $t0, $a3
/* 028240 80027640 0338C821 */ addu $t9, $t9, $t8
/* 028244 80027644 0019CA40 */ sll $t9, $t9, 9
/* 028248 80027648 00084200 */ sll $t0, $t0, 8
/* 02824C 8002764C 016A5821 */ addu $t3, $t3, $t2
/* 028250 80027650 000B5940 */ sll $t3, $t3, 5
/* 028254 80027654 03284821 */ addu $t1, $t9, $t0
/* 028258 80027658 3C0D802E */ lui $t5, %hi(D_802DFB80) # $t5, 0x802e
/* 02825C 8002765C 25ADFB80 */ addiu $t5, %lo(D_802DFB80) # addiu $t5, $t5, -0x480
/* 028260 80027660 012B6021 */ addu $t4, $t1, $t3
/* 028264 80027664 3C05800E */ lui $a1, %hi(D_800DDEB0)
/* 028268 80027668 000E7840 */ sll $t7, $t6, 1
/* 02826C 8002766C 00AF2821 */ addu $a1, $a1, $t7
/* 028270 80027670 018D8021 */ addu $s0, $t4, $t5
/* 028274 80027674 02002025 */ move $a0, $s0
/* 028278 80027678 94A5DEB0 */ lhu $a1, %lo(D_800DDEB0)($a1)
/* 02827C 8002767C 0C0336E0 */ jal osInvalDCache
/* 028280 80027680 AFA30030 */ sw $v1, 0x30($sp)
/* 028284 80027684 96220254 */ lhu $v0, 0x254($s1)
/* 028288 80027688 8FA30030 */ lw $v1, 0x30($sp)
/* 02828C 8002768C 3C19800E */ lui $t9, %hi(gKartTextureTable1)
/* 028290 80027690 0002C080 */ sll $t8, $v0, 2
/* 028294 80027694 9468024C */ lhu $t0, 0x24c($v1)
/* 028298 80027698 0338C821 */ addu $t9, $t9, $t8
/* 02829C 8002769C 8F391F00 */ lw $t9, %lo(gKartTextureTable1)($t9)
/* 0282A0 800276A0 00085080 */ sll $t2, $t0, 2
/* 0282A4 800276A4 946C0244 */ lhu $t4, 0x244($v1)
/* 0282A8 800276A8 032A4821 */ addu $t1, $t9, $t2
/* 0282AC 800276AC 8D2B0000 */ lw $t3, ($t1)
/* 0282B0 800276B0 000C6880 */ sll $t5, $t4, 2
/* 0282B4 800276B4 3C0A800E */ lui $t2, %hi(D_800DDEB0)
/* 0282B8 800276B8 016D7021 */ addu $t6, $t3, $t5
/* 0282BC 800276BC 8DCF0000 */ lw $t7, ($t6)
/* 0282C0 800276C0 0002C840 */ sll $t9, $v0, 1
/* 0282C4 800276C4 01595021 */ addu $t2, $t2, $t9
/* 0282C8 800276C8 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0282CC 800276CC 954ADEB0 */ lhu $t2, %lo(D_800DDEB0)($t2)
/* 0282D0 800276D0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0282D4 800276D4 3C098015 */ lui $t1, %hi(D_8014EF58) # $t1, 0x8015
/* 0282D8 800276D8 3C080014 */ lui $t0, %hi(_kart_texturesSegmentRomStart) # $t0, 0x14
/* 0282DC 800276DC 25085470 */ addiu $t0, %lo(_kart_texturesSegmentRomStart) # addiu $t0, $t0, 0x5470
/* 0282E0 800276E0 2529EF58 */ addiu $t1, %lo(D_8014EF58) # addiu $t1, $t1, -0x10a8
/* 0282E4 800276E4 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 0282E8 800276E8 01E1C024 */ and $t8, $t7, $at
/* 0282EC 800276EC 03083821 */ addu $a3, $t8, $t0
/* 0282F0 800276F0 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 0282F4 800276F4 AFA90018 */ sw $t1, 0x18($sp)
/* 0282F8 800276F8 AFB00010 */ sw $s0, 0x10($sp)
/* 0282FC 800276FC 00002825 */ move $a1, $zero
/* 028300 80027700 00003025 */ move $a2, $zero
/* 028304 80027704 0C03370C */ jal osPiStartDma
/* 028308 80027708 AFAA0014 */ sw $t2, 0x14($sp)
/* 02830C 8002770C 100000C0 */ b .L80027A10
/* 028310 80027710 8FBF002C */ lw $ra, 0x2c($sp)
.L80027714:
/* 028314 80027714 83AF003F */ lb $t7, 0x3f($sp)
/* 028318 80027718 000768C0 */ sll $t5, $a3, 3
/* 02831C 8002771C 01A76821 */ addu $t5, $t5, $a3
/* 028320 80027720 000FC0C0 */ sll $t8, $t7, 3
/* 028324 80027724 000D68C0 */ sll $t5, $t5, 3
/* 028328 80027728 030FC021 */ addu $t8, $t8, $t7
/* 02832C 8002772C 962A0254 */ lhu $t2, 0x254($s1)
/* 028330 80027730 0018C0C0 */ sll $t8, $t8, 3
/* 028334 80027734 01A76821 */ addu $t5, $t5, $a3
/* 028338 80027738 016C5821 */ addu $t3, $t3, $t4
/* 02833C 8002773C 000B5A40 */ sll $t3, $t3, 9
/* 028340 80027740 000D6A00 */ sll $t5, $t5, 8
/* 028344 80027744 030FC021 */ addu $t8, $t8, $t7
/* 028348 80027748 0018C140 */ sll $t8, $t8, 5
/* 02834C 8002774C 016D7021 */ addu $t6, $t3, $t5
/* 028350 80027750 01D84021 */ addu $t0, $t6, $t8
/* 028354 80027754 2739FB80 */ addiu $t9, $t9, -0x480
/* 028358 80027758 3C05800E */ lui $a1, %hi(D_800DDEB0)
/* 02835C 8002775C 000A4840 */ sll $t1, $t2, 1
/* 028360 80027760 00A92821 */ addu $a1, $a1, $t1
/* 028364 80027764 01198021 */ addu $s0, $t0, $t9
/* 028368 80027768 02002025 */ move $a0, $s0
/* 02836C 8002776C 94A5DEB0 */ lhu $a1, %lo(D_800DDEB0)($a1)
/* 028370 80027770 0C0336E0 */ jal osInvalDCache
/* 028374 80027774 AFA30030 */ sw $v1, 0x30($sp)
/* 028378 80027778 96220254 */ lhu $v0, 0x254($s1)
/* 02837C 8002777C 8FA30030 */ lw $v1, 0x30($sp)
/* 028380 80027780 3C0B800E */ lui $t3, %hi(gKartTextureTable0)
/* 028384 80027784 00026080 */ sll $t4, $v0, 2
/* 028388 80027788 946D024C */ lhu $t5, 0x24c($v1)
/* 02838C 8002778C 016C5821 */ addu $t3, $t3, $t4
/* 028390 80027790 8D6B1EE0 */ lw $t3, %lo(gKartTextureTable0)($t3)
/* 028394 80027794 000D7880 */ sll $t7, $t5, 2
/* 028398 80027798 94680244 */ lhu $t0, 0x244($v1)
/* 02839C 8002779C 016F7021 */ addu $t6, $t3, $t7
/* 0283A0 800277A0 8DD80000 */ lw $t8, ($t6)
/* 0283A4 800277A4 0008C880 */ sll $t9, $t0, 2
/* 0283A8 800277A8 3C0F800E */ lui $t7, %hi(D_800DDEB0)
/* 0283AC 800277AC 03195021 */ addu $t2, $t8, $t9
/* 0283B0 800277B0 8D490000 */ lw $t1, ($t2)
/* 0283B4 800277B4 00025840 */ sll $t3, $v0, 1
/* 0283B8 800277B8 01EB7821 */ addu $t7, $t7, $t3
/* 0283BC 800277BC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0283C0 800277C0 95EFDEB0 */ lhu $t7, %lo(D_800DDEB0)($t7)
/* 0283C4 800277C4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0283C8 800277C8 3C0E8015 */ lui $t6, %hi(D_8014EF58) # $t6, 0x8015
/* 0283CC 800277CC 3C0D0014 */ lui $t5, %hi(_kart_texturesSegmentRomStart) # $t5, 0x14
/* 0283D0 800277D0 25AD5470 */ addiu $t5, %lo(_kart_texturesSegmentRomStart) # addiu $t5, $t5, 0x5470
/* 0283D4 800277D4 25CEEF58 */ addiu $t6, %lo(D_8014EF58) # addiu $t6, $t6, -0x10a8
/* 0283D8 800277D8 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 0283DC 800277DC 01216024 */ and $t4, $t1, $at
/* 0283E0 800277E0 018D3821 */ addu $a3, $t4, $t5
/* 0283E4 800277E4 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 0283E8 800277E8 AFAE0018 */ sw $t6, 0x18($sp)
/* 0283EC 800277EC AFB00010 */ sw $s0, 0x10($sp)
/* 0283F0 800277F0 00002825 */ move $a1, $zero
/* 0283F4 800277F4 00003025 */ move $a2, $zero
/* 0283F8 800277F8 0C03370C */ jal osPiStartDma
/* 0283FC 800277FC AFAF0014 */ sw $t7, 0x14($sp)
/* 028400 80027800 10000083 */ b .L80027A10
/* 028404 80027804 8FBF002C */ lw $ra, 0x2c($sp)
.L80027808:
/* 028408 80027808 1101000A */ beq $t0, $at, .L80027834
/* 02840C 8002780C 3C030100 */ lui $v1, 0x100
/* 028410 80027810 0043C024 */ and $t8, $v0, $v1
/* 028414 80027814 10780007 */ beq $v1, $t8, .L80027834
/* 028418 80027818 3C030200 */ lui $v1, 0x200
/* 02841C 8002781C 0043C824 */ and $t9, $v0, $v1
/* 028420 80027820 10790004 */ beq $v1, $t9, .L80027834
/* 028424 80027824 3C030001 */ lui $v1, 1
/* 028428 80027828 00435024 */ and $t2, $v0, $v1
/* 02842C 8002782C 146A0037 */ bne $v1, $t2, .L8002790C
/* 028430 80027830 83AC004B */ lb $t4, 0x4b($sp)
.L80027834:
/* 028434 80027834 83A9004B */ lb $t1, 0x4b($sp)
/* 028438 80027838 83AF003F */ lb $t7, 0x3f($sp)
/* 02843C 8002783C 000768C0 */ sll $t5, $a3, 3
/* 028440 80027840 000960C0 */ sll $t4, $t1, 3
/* 028444 80027844 01A76821 */ addu $t5, $t5, $a3
/* 028448 80027848 01896021 */ addu $t4, $t4, $t1
/* 02844C 8002784C 000F70C0 */ sll $t6, $t7, 3
/* 028450 80027850 000C60C0 */ sll $t4, $t4, 3
/* 028454 80027854 000D68C0 */ sll $t5, $t5, 3
/* 028458 80027858 01CF7021 */ addu $t6, $t6, $t7
/* 02845C 8002785C 000E70C0 */ sll $t6, $t6, 3
/* 028460 80027860 01A76821 */ addu $t5, $t5, $a3
/* 028464 80027864 01896021 */ addu $t4, $t4, $t1
/* 028468 80027868 000C6240 */ sll $t4, $t4, 9
/* 02846C 8002786C 000D6A00 */ sll $t5, $t5, 8
/* 028470 80027870 01CF7021 */ addu $t6, $t6, $t7
/* 028474 80027874 000E7140 */ sll $t6, $t6, 5
/* 028478 80027878 018D5821 */ addu $t3, $t4, $t5
/* 02847C 8002787C 3C18802E */ lui $t8, %hi(D_802DFB80) # $t8, 0x802e
/* 028480 80027880 2718FB80 */ addiu $t8, %lo(D_802DFB80) # addiu $t8, $t8, -0x480
/* 028484 80027884 016E4021 */ addu $t0, $t3, $t6
/* 028488 80027888 01188021 */ addu $s0, $t0, $t8
/* 02848C 8002788C 02002025 */ move $a0, $s0
/* 028490 80027890 0C0336E0 */ jal osInvalDCache
/* 028494 80027894 24050780 */ li $a1, 1920
/* 028498 80027898 96390254 */ lhu $t9, 0x254($s1)
/* 02849C 8002789C 862C00A8 */ lh $t4, 0xa8($s1)
/* 0284A0 800278A0 3C09800E */ lui $t1, %hi(gKartTextureGroup18s)
/* 0284A4 800278A4 00195080 */ sll $t2, $t9, 2
/* 0284A8 800278A8 012A4821 */ addu $t1, $t1, $t2
/* 0284AC 800278AC 8D292320 */ lw $t1, %lo(gKartTextureGroup18s)($t1)
/* 0284B0 800278B0 000C6A03 */ sra $t5, $t4, 8
/* 0284B4 800278B4 000D7880 */ sll $t7, $t5, 2
/* 0284B8 800278B8 012F5821 */ addu $t3, $t1, $t7
/* 0284BC 800278BC 8D6E0000 */ lw $t6, ($t3)
/* 0284C0 800278C0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0284C4 800278C4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0284C8 800278C8 3C0A8015 */ lui $t2, %hi(D_8014EF58) # $t2, 0x8015
/* 0284CC 800278CC 3C180014 */ lui $t8, %hi(_kart_texturesSegmentRomStart) # $t8, 0x14
/* 0284D0 800278D0 27185470 */ addiu $t8, %lo(_kart_texturesSegmentRomStart) # addiu $t8, $t8, 0x5470
/* 0284D4 800278D4 254AEF58 */ addiu $t2, %lo(D_8014EF58) # addiu $t2, $t2, -0x10a8
/* 0284D8 800278D8 24190900 */ li $t9, 2304
/* 0284DC 800278DC 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 0284E0 800278E0 01C14024 */ and $t0, $t6, $at
/* 0284E4 800278E4 01183821 */ addu $a3, $t0, $t8
/* 0284E8 800278E8 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 0284EC 800278EC AFB90014 */ sw $t9, 0x14($sp)
/* 0284F0 800278F0 AFAA0018 */ sw $t2, 0x18($sp)
/* 0284F4 800278F4 AFB00010 */ sw $s0, 0x10($sp)
/* 0284F8 800278F8 00002825 */ move $a1, $zero
/* 0284FC 800278FC 0C03370C */ jal osPiStartDma
/* 028500 80027900 00003025 */ move $a2, $zero
/* 028504 80027904 10000042 */ b .L80027A10
/* 028508 80027908 8FBF002C */ lw $ra, 0x2c($sp)
.L8002790C:
/* 02850C 8002790C 83AB003F */ lb $t3, 0x3f($sp)
/* 028510 80027910 000C68C0 */ sll $t5, $t4, 3
/* 028514 80027914 000748C0 */ sll $t1, $a3, 3
/* 028518 80027918 01274821 */ addu $t1, $t1, $a3
/* 02851C 8002791C 01AC6821 */ addu $t5, $t5, $t4
/* 028520 80027920 000B70C0 */ sll $t6, $t3, 3
/* 028524 80027924 000D68C0 */ sll $t5, $t5, 3
/* 028528 80027928 000948C0 */ sll $t1, $t1, 3
/* 02852C 8002792C 01CB7021 */ addu $t6, $t6, $t3
/* 028530 80027930 96390254 */ lhu $t9, 0x254($s1)
/* 028534 80027934 000E70C0 */ sll $t6, $t6, 3
/* 028538 80027938 01274821 */ addu $t1, $t1, $a3
/* 02853C 8002793C 01AC6821 */ addu $t5, $t5, $t4
/* 028540 80027940 000D6A40 */ sll $t5, $t5, 9
/* 028544 80027944 00094A00 */ sll $t1, $t1, 8
/* 028548 80027948 01CB7021 */ addu $t6, $t6, $t3
/* 02854C 8002794C 000E7140 */ sll $t6, $t6, 5
/* 028550 80027950 01A97821 */ addu $t7, $t5, $t1
/* 028554 80027954 3C18802E */ lui $t8, %hi(D_802DFB80) # $t8, 0x802e
/* 028558 80027958 2718FB80 */ addiu $t8, %lo(D_802DFB80) # addiu $t8, $t8, -0x480
/* 02855C 8002795C 01EE4021 */ addu $t0, $t7, $t6
/* 028560 80027960 3C05800E */ lui $a1, %hi(D_800DDEB0)
/* 028564 80027964 00195040 */ sll $t2, $t9, 1
/* 028568 80027968 00AA2821 */ addu $a1, $a1, $t2
/* 02856C 8002796C 01188021 */ addu $s0, $t0, $t8
/* 028570 80027970 02002025 */ move $a0, $s0
/* 028574 80027974 0C0336E0 */ jal osInvalDCache
/* 028578 80027978 94A5DEB0 */ lhu $a1, %lo(D_800DDEB0)($a1)
/* 02857C 8002797C 83AC0043 */ lb $t4, 0x43($sp)
/* 028580 80027980 96220254 */ lhu $v0, 0x254($s1)
/* 028584 80027984 3C0B800E */ lui $t3, %hi(gKartTextureTable0)
/* 028588 80027988 000C6840 */ sll $t5, $t4, 1
/* 02858C 8002798C 022D1821 */ addu $v1, $s1, $t5
/* 028590 80027990 00024880 */ sll $t1, $v0, 2
/* 028594 80027994 946F024C */ lhu $t7, 0x24c($v1)
/* 028598 80027998 01695821 */ addu $t3, $t3, $t1
/* 02859C 8002799C 8D6B1EE0 */ lw $t3, %lo(gKartTextureTable0)($t3)
/* 0285A0 800279A0 000F7080 */ sll $t6, $t7, 2
/* 0285A4 800279A4 94790244 */ lhu $t9, 0x244($v1)
/* 0285A8 800279A8 016E4021 */ addu $t0, $t3, $t6
/* 0285AC 800279AC 8D180000 */ lw $t8, ($t0)
/* 0285B0 800279B0 00195080 */ sll $t2, $t9, 2
/* 0285B4 800279B4 3C0E800E */ lui $t6, %hi(D_800DDEB0)
/* 0285B8 800279B8 030A6021 */ addu $t4, $t8, $t2
/* 0285BC 800279BC 8D8D0000 */ lw $t5, ($t4)
/* 0285C0 800279C0 00025840 */ sll $t3, $v0, 1
/* 0285C4 800279C4 01CB7021 */ addu $t6, $t6, $t3
/* 0285C8 800279C8 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0285CC 800279CC 95CEDEB0 */ lhu $t6, %lo(D_800DDEB0)($t6)
/* 0285D0 800279D0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0285D4 800279D4 3C088015 */ lui $t0, %hi(D_8014EF58) # $t0, 0x8015
/* 0285D8 800279D8 3C0F0014 */ lui $t7, %hi(_kart_texturesSegmentRomStart) # $t7, 0x14
/* 0285DC 800279DC 25EF5470 */ addiu $t7, %lo(_kart_texturesSegmentRomStart) # addiu $t7, $t7, 0x5470
/* 0285E0 800279E0 2508EF58 */ addiu $t0, %lo(D_8014EF58) # addiu $t0, $t0, -0x10a8
/* 0285E4 800279E4 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 0285E8 800279E8 01A14824 */ and $t1, $t5, $at
/* 0285EC 800279EC 012F3821 */ addu $a3, $t1, $t7
/* 0285F0 800279F0 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 0285F4 800279F4 AFA80018 */ sw $t0, 0x18($sp)
/* 0285F8 800279F8 AFB00010 */ sw $s0, 0x10($sp)
/* 0285FC 800279FC 00002825 */ move $a1, $zero
/* 028600 80027A00 00003025 */ move $a2, $zero
/* 028604 80027A04 0C03370C */ jal osPiStartDma
/* 028608 80027A08 AFAE0014 */ sw $t6, 0x14($sp)
/* 02860C 80027A0C 8FBF002C */ lw $ra, 0x2c($sp)
.L80027A10:
/* 028610 80027A10 8FB00024 */ lw $s0, 0x24($sp)
/* 028614 80027A14 8FB10028 */ lw $s1, 0x28($sp)
/* 028618 80027A18 03E00008 */ jr $ra
/* 02861C 80027A1C 27BD0038 */ addiu $sp, $sp, 0x38
glabel func_80027A20
/* 028620 80027A20 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 028624 80027A24 3C02800E */ lui $v0, %hi(D_800DC52C) # $v0, 0x800e
/* 028628 80027A28 8C42C52C */ lw $v0, %lo(D_800DC52C)($v0)
/* 02862C 80027A2C AFA60038 */ sw $a2, 0x38($sp)
/* 028630 80027A30 AFA7003C */ sw $a3, 0x3c($sp)
/* 028634 80027A34 00067600 */ sll $t6, $a2, 0x18
/* 028638 80027A38 0007C600 */ sll $t8, $a3, 0x18
/* 02863C 80027A3C 00183E03 */ sra $a3, $t8, 0x18
/* 028640 80027A40 000E3603 */ sra $a2, $t6, 0x18
/* 028644 80027A44 AFBF002C */ sw $ra, 0x2c($sp)
/* 028648 80027A48 AFB00028 */ sw $s0, 0x28($sp)
/* 02864C 80027A4C AFA40030 */ sw $a0, 0x30($sp)
/* 028650 80027A50 1040000A */ beqz $v0, .L80027A7C
/* 028654 80027A54 AFA50034 */ sw $a1, 0x34($sp)
/* 028658 80027A58 24010001 */ li $at, 1
/* 02865C 80027A5C 10410007 */ beq $v0, $at, .L80027A7C
/* 028660 80027A60 24010002 */ li $at, 2
/* 028664 80027A64 10410005 */ beq $v0, $at, .L80027A7C
/* 028668 80027A68 24010003 */ li $at, 3
/* 02866C 80027A6C 1041002E */ beq $v0, $at, .L80027B28
/* 028670 80027A70 00077380 */ sll $t6, $a3, 0xe
/* 028674 80027A74 10000055 */ b .L80027BCC
/* 028678 80027A78 8FBF002C */ lw $ra, 0x2c($sp)
.L80027A7C:
/* 02867C 80027A7C 83AC0037 */ lb $t4, 0x37($sp)
/* 028680 80027A80 00074380 */ sll $t0, $a3, 0xe
/* 028684 80027A84 00064B00 */ sll $t1, $a2, 0xc
/* 028688 80027A88 01095021 */ addu $t2, $t0, $t1
/* 02868C 80027A8C 3C0F802F */ lui $t7, %hi(D_802F1F80) # $t7, 0x802f
/* 028690 80027A90 000C6A40 */ sll $t5, $t4, 9
/* 028694 80027A94 014D7021 */ addu $t6, $t2, $t5
/* 028698 80027A98 25EF1F80 */ addiu $t7, %lo(D_802F1F80) # addiu $t7, $t7, 0x1f80
/* 02869C 80027A9C 01CF8021 */ addu $s0, $t6, $t7
/* 0286A0 80027AA0 02002025 */ move $a0, $s0
/* 0286A4 80027AA4 0C0336E0 */ jal osInvalDCache
/* 0286A8 80027AA8 24050200 */ li $a1, 512
/* 0286AC 80027AAC 8FB80030 */ lw $t8, 0x30($sp)
/* 0286B0 80027AB0 3C09800E */ lui $t1, %hi(gKartPalettes)
/* 0286B4 80027AB4 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0286B8 80027AB8 97190254 */ lhu $t9, 0x254($t8)
/* 0286BC 80027ABC 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0286C0 80027AC0 3C0C0014 */ lui $t4, %hi(_kart_texturesSegmentRomStart) # $t4, 0x14
/* 0286C4 80027AC4 00194080 */ sll $t0, $t9, 2
/* 0286C8 80027AC8 01284821 */ addu $t1, $t1, $t0
/* 0286CC 80027ACC 8D292340 */ lw $t1, %lo(gKartPalettes)($t1)
/* 0286D0 80027AD0 3C0D8015 */ lui $t5, %hi(D_8014EF58) # $t5, 0x8015
/* 0286D4 80027AD4 25ADEF58 */ addiu $t5, %lo(D_8014EF58) # addiu $t5, $t5, -0x10a8
/* 0286D8 80027AD8 258C5470 */ addiu $t4, %lo(_kart_texturesSegmentRomStart) # addiu $t4, $t4, 0x5470
/* 0286DC 80027ADC 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 0286E0 80027AE0 240A0200 */ li $t2, 512
/* 0286E4 80027AE4 01215824 */ and $t3, $t1, $at
/* 0286E8 80027AE8 016C3821 */ addu $a3, $t3, $t4
/* 0286EC 80027AEC AFAA0014 */ sw $t2, 0x14($sp)
/* 0286F0 80027AF0 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 0286F4 80027AF4 AFAD0018 */ sw $t5, 0x18($sp)
/* 0286F8 80027AF8 AFB00010 */ sw $s0, 0x10($sp)
/* 0286FC 80027AFC 00002825 */ move $a1, $zero
/* 028700 80027B00 0C03370C */ jal osPiStartDma
/* 028704 80027B04 00003025 */ move $a2, $zero
/* 028708 80027B08 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 02870C 80027B0C 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 028710 80027B10 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 028714 80027B14 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 028718 80027B18 0C0335D4 */ jal osRecvMesg
/* 02871C 80027B1C 24060001 */ li $a2, 1
/* 028720 80027B20 1000002A */ b .L80027BCC
/* 028724 80027B24 8FBF002C */ lw $ra, 0x2c($sp)
.L80027B28:
/* 028728 80027B28 83A80037 */ lb $t0, 0x37($sp)
/* 02872C 80027B2C 00067B00 */ sll $t7, $a2, 0xc
/* 028730 80027B30 01CFC021 */ addu $t8, $t6, $t7
/* 028734 80027B34 3C0C802F */ lui $t4, %hi(D_802F1F80) # $t4, 0x802f
/* 028738 80027B38 00084A40 */ sll $t1, $t0, 9
/* 02873C 80027B3C 03095821 */ addu $t3, $t8, $t1
/* 028740 80027B40 258C1F80 */ addiu $t4, %lo(D_802F1F80) # addiu $t4, $t4, 0x1f80
/* 028744 80027B44 016C8021 */ addu $s0, $t3, $t4
/* 028748 80027B48 02002025 */ move $a0, $s0
/* 02874C 80027B4C 0C0336E0 */ jal osInvalDCache
/* 028750 80027B50 24050200 */ li $a1, 512
/* 028754 80027B54 8FAA0030 */ lw $t2, 0x30($sp)
/* 028758 80027B58 3C0F800E */ lui $t7, %hi(gKartPalettes)
/* 02875C 80027B5C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 028760 80027B60 954D0254 */ lhu $t5, 0x254($t2)
/* 028764 80027B64 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 028768 80027B68 3C080014 */ lui $t0, %hi(_kart_texturesSegmentRomStart) # $t0, 0x14
/* 02876C 80027B6C 000D7080 */ sll $t6, $t5, 2
/* 028770 80027B70 01EE7821 */ addu $t7, $t7, $t6
/* 028774 80027B74 8DEF2340 */ lw $t7, %lo(gKartPalettes)($t7)
/* 028778 80027B78 3C098015 */ lui $t1, %hi(D_8014EF58) # $t1, 0x8015
/* 02877C 80027B7C 2529EF58 */ addiu $t1, %lo(D_8014EF58) # addiu $t1, $t1, -0x10a8
/* 028780 80027B80 25085470 */ addiu $t0, %lo(_kart_texturesSegmentRomStart) # addiu $t0, $t0, 0x5470
/* 028784 80027B84 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 028788 80027B88 24180200 */ li $t8, 512
/* 02878C 80027B8C 01E1C824 */ and $t9, $t7, $at
/* 028790 80027B90 03283821 */ addu $a3, $t9, $t0
/* 028794 80027B94 AFB80014 */ sw $t8, 0x14($sp)
/* 028798 80027B98 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 02879C 80027B9C AFA90018 */ sw $t1, 0x18($sp)
/* 0287A0 80027BA0 AFB00010 */ sw $s0, 0x10($sp)
/* 0287A4 80027BA4 00002825 */ move $a1, $zero
/* 0287A8 80027BA8 0C03370C */ jal osPiStartDma
/* 0287AC 80027BAC 00003025 */ move $a2, $zero
/* 0287B0 80027BB0 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 0287B4 80027BB4 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 0287B8 80027BB8 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 0287BC 80027BBC 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 0287C0 80027BC0 0C0335D4 */ jal osRecvMesg
/* 0287C4 80027BC4 24060001 */ li $a2, 1
/* 0287C8 80027BC8 8FBF002C */ lw $ra, 0x2c($sp)
.L80027BCC:
/* 0287CC 80027BCC 8FB00028 */ lw $s0, 0x28($sp)
/* 0287D0 80027BD0 27BD0030 */ addiu $sp, $sp, 0x30
/* 0287D4 80027BD4 03E00008 */ jr $ra
/* 0287D8 80027BD8 00000000 */ nop
/* 0287DC 80027BDC 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0287E0 80027BE0 AFBF0024 */ sw $ra, 0x24($sp)
/* 0287E4 80027BE4 AFA40028 */ sw $a0, 0x28($sp)
/* 0287E8 80027BE8 AFA5002C */ sw $a1, 0x2c($sp)
/* 0287EC 80027BEC AFA70034 */ sw $a3, 0x34($sp)
/* 0287F0 80027BF0 AFA60030 */ sw $a2, 0x30($sp)
/* 0287F4 80027BF4 97A50036 */ lhu $a1, 0x36($sp)
/* 0287F8 80027BF8 0C0336E0 */ jal osInvalDCache
/* 0287FC 80027BFC 00C02025 */ move $a0, $a2
/* 028800 80027C00 8FAE002C */ lw $t6, 0x2c($sp)
/* 028804 80027C04 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 028808 80027C08 8FB90030 */ lw $t9, 0x30($sp)
/* 02880C 80027C0C 97A80036 */ lhu $t0, 0x36($sp)
/* 028810 80027C10 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 028814 80027C14 3C180014 */ lui $t8, %hi(_kart_texturesSegmentRomStart) # $t8, 0x14
/* 028818 80027C18 3C098015 */ lui $t1, %hi(D_8014EF58) # $t1, 0x8015
/* 02881C 80027C1C 2529EF58 */ addiu $t1, %lo(D_8014EF58) # addiu $t1, $t1, -0x10a8
/* 028820 80027C20 27185470 */ addiu $t8, %lo(_kart_texturesSegmentRomStart) # addiu $t8, $t8, 0x5470
/* 028824 80027C24 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 028828 80027C28 01C17824 */ and $t7, $t6, $at
/* 02882C 80027C2C 01F83821 */ addu $a3, $t7, $t8
/* 028830 80027C30 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 028834 80027C34 AFA90018 */ sw $t1, 0x18($sp)
/* 028838 80027C38 00002825 */ move $a1, $zero
/* 02883C 80027C3C 00003025 */ move $a2, $zero
/* 028840 80027C40 AFB90010 */ sw $t9, 0x10($sp)
/* 028844 80027C44 0C03370C */ jal osPiStartDma
/* 028848 80027C48 AFA80014 */ sw $t0, 0x14($sp)
/* 02884C 80027C4C 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 028850 80027C50 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 028854 80027C54 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 028858 80027C58 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 02885C 80027C5C 0C0335D4 */ jal osRecvMesg
/* 028860 80027C60 24060001 */ li $a2, 1
/* 028864 80027C64 8FBF0024 */ lw $ra, 0x24($sp)
/* 028868 80027C68 27BD0028 */ addiu $sp, $sp, 0x28
/* 02886C 80027C6C 03E00008 */ jr $ra
/* 028870 80027C70 00000000 */ nop
glabel func_80027C74
/* 028874 80027C74 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 028878 80027C78 AFBF0024 */ sw $ra, 0x24($sp)
/* 02887C 80027C7C AFA40028 */ sw $a0, 0x28($sp)
/* 028880 80027C80 AFA5002C */ sw $a1, 0x2c($sp)
/* 028884 80027C84 AFA70034 */ sw $a3, 0x34($sp)
/* 028888 80027C88 AFA60030 */ sw $a2, 0x30($sp)
/* 02888C 80027C8C 97A50036 */ lhu $a1, 0x36($sp)
/* 028890 80027C90 0C0336E0 */ jal osInvalDCache
/* 028894 80027C94 00C02025 */ move $a0, $a2
/* 028898 80027C98 8FAE002C */ lw $t6, 0x2c($sp)
/* 02889C 80027C9C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0288A0 80027CA0 8FB90030 */ lw $t9, 0x30($sp)
/* 0288A4 80027CA4 97A80036 */ lhu $t0, 0x36($sp)
/* 0288A8 80027CA8 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0288AC 80027CAC 3C180014 */ lui $t8, %hi(_kart_texturesSegmentRomStart) # $t8, 0x14
/* 0288B0 80027CB0 3C098015 */ lui $t1, %hi(D_8014EF58) # $t1, 0x8015
/* 0288B4 80027CB4 2529EF58 */ addiu $t1, %lo(D_8014EF58) # addiu $t1, $t1, -0x10a8
/* 0288B8 80027CB8 27185470 */ addiu $t8, %lo(_kart_texturesSegmentRomStart) # addiu $t8, $t8, 0x5470
/* 0288BC 80027CBC 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 0288C0 80027CC0 01C17824 */ and $t7, $t6, $at
/* 0288C4 80027CC4 01F83821 */ addu $a3, $t7, $t8
/* 0288C8 80027CC8 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 0288CC 80027CCC AFA90018 */ sw $t1, 0x18($sp)
/* 0288D0 80027CD0 00002825 */ move $a1, $zero
/* 0288D4 80027CD4 00003025 */ move $a2, $zero
/* 0288D8 80027CD8 AFB90010 */ sw $t9, 0x10($sp)
/* 0288DC 80027CDC 0C03370C */ jal osPiStartDma
/* 0288E0 80027CE0 AFA80014 */ sw $t0, 0x14($sp)
/* 0288E4 80027CE4 8FBF0024 */ lw $ra, 0x24($sp)
/* 0288E8 80027CE8 27BD0028 */ addiu $sp, $sp, 0x28
/* 0288EC 80027CEC 03E00008 */ jr $ra
/* 0288F0 80027CF0 00000000 */ nop
/* 0288F4 80027CF4 00000000 */ nop
/* 0288F8 80027CF8 00000000 */ nop
/* 0288FC 80027CFC 00000000 */ nop

19277
asm/code_80027D00.s Normal file

File diff suppressed because it is too large Load Diff

4823
asm/code_800393C0.s Normal file

File diff suppressed because it is too large Load Diff

2501
asm/code_8003DC40.s Normal file

File diff suppressed because it is too large Load Diff

59
asm/code_80040030.s Normal file
View File

@ -0,0 +1,59 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_80040030
/* 040C30 80040030 8C980008 */ lw $t8, 8($a0)
/* 040C34 80040034 8C99000C */ lw $t9, 0xc($a0)
/* 040C38 80040038 20840010 */ addi $a0, $a0, 0x10
/* 040C3C 8004003C 00003025 */ move $a2, $zero
/* 040C40 80040040 0305C020 */ add $t8, $t8, $a1
/* 040C44 80040044 0324C820 */ add $t9, $t9, $a0
.L80040048:
/* 040C48 80040048 54C00006 */ bnel $a2, $zero, .L80040064
/* 040C4C 8004004C 0100482A */ slt $t1, $t0, $zero
/* 040C50 80040050 84880000 */ lh $t0, ($a0)
/* 040C54 80040054 24060010 */ li $a2, 16
/* 040C58 80040058 20840002 */ addi $a0, $a0, 2
/* 040C5C 8004005C 00C84004 */ sllv $t0, $t0, $a2
/* 040C60 80040060 0100482A */ slt $t1, $t0, $zero
.L80040064:
/* 040C64 80040064 51200007 */ beql $t1, $zero, .L80040084
/* 040C68 80040068 948A0000 */ lhu $t2, ($a0)
/* 040C6C 8004006C 832A0000 */ lb $t2, ($t9)
/* 040C70 80040070 23390001 */ addi $t9, $t9, 1
/* 040C74 80040074 20A50001 */ addi $a1, $a1, 1
/* 040C78 80040078 1000000D */ b .L800400B0
/* 040C7C 8004007C A0AAFFFF */ sb $t2, -1($a1)
/* 040C80 80040080 948A0000 */ lhu $t2, ($a0)
.L80040084:
/* 040C84 80040084 20840002 */ addi $a0, $a0, 2
/* 040C88 80040088 000A5B02 */ srl $t3, $t2, 0xc
/* 040C8C 8004008C 314A0FFF */ andi $t2, $t2, 0xfff
/* 040C90 80040090 00AA4822 */ sub $t1, $a1, $t2
/* 040C94 80040094 216B0003 */ addi $t3, $t3, 3
.L80040098:
/* 040C98 80040098 812AFFFF */ lb $t2, -1($t1)
/* 040C9C 8004009C 216BFFFF */ addi $t3, $t3, -1
/* 040CA0 800400A0 21290001 */ addi $t1, $t1, 1
/* 040CA4 800400A4 20A50001 */ addi $a1, $a1, 1
/* 040CA8 800400A8 1560FFFB */ bnez $t3, .L80040098
/* 040CAC 800400AC A0AAFFFF */ sb $t2, -1($a1)
.L800400B0:
/* 040CB0 800400B0 00B8082A */ slt $at, $a1, $t8
/* 040CB4 800400B4 00084040 */ sll $t0, $t0, 1
/* 040CB8 800400B8 1420FFE3 */ bnez $at, .L80040048
/* 040CBC 800400BC 20C6FFFF */ addi $a2, $a2, -1
/* 040CC0 800400C0 03E00008 */ jr $ra
/* 040CC4 800400C4 00000000 */ nop
/* 040CC8 800400C8 00000000 */ nop
/* 040CCC 800400CC 00000000 */ nop

383
asm/code_800400D0.s Normal file
View File

@ -0,0 +1,383 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel mio0decode
/* 040CD0 800400D0 8C870008 */ lw $a3, 8($a0)
/* 040CD4 800400D4 8C99000C */ lw $t9, 0xc($a0)
/* 040CD8 800400D8 8C980004 */ lw $t8, 4($a0)
/* 040CDC 800400DC 00E43820 */ add $a3, $a3, $a0
/* 040CE0 800400E0 0324C820 */ add $t9, $t9, $a0
/* 040CE4 800400E4 00003025 */ move $a2, $zero
/* 040CE8 800400E8 20840010 */ addi $a0, $a0, 0x10
/* 040CEC 800400EC 0305C020 */ add $t8, $t8, $a1
.L800400F0:
/* 040CF0 800400F0 54C00005 */ bnel $a2, $zero, .L80040108
/* 040CF4 800400F4 0100482A */ slt $t1, $t0, $zero
/* 040CF8 800400F8 8C880000 */ lw $t0, ($a0)
/* 040CFC 800400FC 24060020 */ li $a2, 32
/* 040D00 80040100 20840004 */ addi $a0, $a0, 4
/* 040D04 80040104 0100482A */ slt $t1, $t0, $zero
.L80040108:
/* 040D08 80040108 51200007 */ beql $t1, $zero, .L80040128
/* 040D0C 8004010C 94EA0000 */ lhu $t2, ($a3)
/* 040D10 80040110 832A0000 */ lb $t2, ($t9)
/* 040D14 80040114 23390001 */ addi $t9, $t9, 1
/* 040D18 80040118 20A50001 */ addi $a1, $a1, 1
/* 040D1C 8004011C 1000000D */ b .L80040154
/* 040D20 80040120 A0AAFFFF */ sb $t2, -1($a1)
/* 040D24 80040124 94EA0000 */ lhu $t2, ($a3)
.L80040128:
/* 040D28 80040128 20E70002 */ addi $a3, $a3, 2
/* 040D2C 8004012C 000A5B02 */ srl $t3, $t2, 0xc
/* 040D30 80040130 314A0FFF */ andi $t2, $t2, 0xfff
/* 040D34 80040134 00AA4822 */ sub $t1, $a1, $t2
/* 040D38 80040138 216B0003 */ addi $t3, $t3, 3
.L8004013C:
/* 040D3C 8004013C 812AFFFF */ lb $t2, -1($t1)
/* 040D40 80040140 216BFFFF */ addi $t3, $t3, -1
/* 040D44 80040144 21290001 */ addi $t1, $t1, 1
/* 040D48 80040148 20A50001 */ addi $a1, $a1, 1
/* 040D4C 8004014C 1560FFFB */ bnez $t3, .L8004013C
/* 040D50 80040150 A0AAFFFF */ sb $t2, -1($a1)
.L80040154:
/* 040D54 80040154 00084040 */ sll $t0, $t0, 1
/* 040D58 80040158 14B8FFE5 */ bne $a1, $t8, .L800400F0
/* 040D5C 8004015C 20C6FFFF */ addi $a2, $a2, -1
/* 040D60 80040160 03E00008 */ jr $ra
/* 040D64 80040164 00000000 */ nop
/* 040D68 80040168 00000000 */ nop
/* 040D6C 8004016C 00000000 */ nop
glabel D_80040170
/* 040D70 80040170 00000000 */ .word 0x00000000
glabel func_80040174
/* 040D74 80040174 23BDFED0 */ addi $sp, $sp, -0x130
/* 040D78 80040178 AFA60128 */ sw $a2, 0x128($sp)
/* 040D7C 8004017C AFBE0104 */ sw $fp, 0x104($sp)
/* 040D80 80040180 00C07025 */ move $t6, $a2
/* 040D84 80040184 AFB00124 */ sw $s0, 0x124($sp)
/* 040D88 80040188 AFB10120 */ sw $s1, 0x120($sp)
/* 040D8C 8004018C AFB2011C */ sw $s2, 0x11c($sp)
/* 040D90 80040190 AFB30118 */ sw $s3, 0x118($sp)
/* 040D94 80040194 AFB40114 */ sw $s4, 0x114($sp)
/* 040D98 80040198 AFB50110 */ sw $s5, 0x110($sp)
/* 040D9C 8004019C AFB6010C */ sw $s6, 0x10c($sp)
/* 040DA0 800401A0 AFB70108 */ sw $s7, 0x108($sp)
/* 040DA4 800401A4 AFBF0100 */ sw $ra, 0x100($sp)
/* 040DA8 800401A8 00004825 */ move $t1, $zero
/* 040DAC 800401AC 00005825 */ move $t3, $zero
/* 040DB0 800401B0 240A0080 */ li $t2, 128
/* 040DB4 800401B4 20C60001 */ addi $a2, $a2, 1
/* 040DB8 800401B8 00804025 */ move $t0, $a0
/* 040DBC 800401BC 0000F025 */ move $fp, $zero
.L800401C0:
/* 040DC0 800401C0 01057820 */ add $t7, $t0, $a1
/* 040DC4 800401C4 008F082A */ slt $at, $a0, $t7
/* 040DC8 800401C8 50200038 */ beql $at, $zero, .L800402AC
/* 040DCC 800401CC 24010080 */ li $at, 128
/* 040DD0 800401D0 0411004A */ bal func_800402FC
/* 040DD4 800401D4 0080C825 */ move $t9, $a0
/* 040DD8 800401D8 28610003 */ slti $at, $v1, 3
/* 040DDC 800401DC 00406025 */ move $t4, $v0
/* 040DE0 800401E0 14200023 */ bnez $at, .L80040270
/* 040DE4 800401E4 00606825 */ move $t5, $v1
/* 040DE8 800401E8 04110044 */ bal func_800402FC
/* 040DEC 800401EC 20990001 */ addi $t9, $a0, 1
/* 040DF0 800401F0 21B90001 */ addi $t9, $t5, 1
/* 040DF4 800401F4 0323082A */ slt $at, $t9, $v1
/* 040DF8 800401F8 50200011 */ beql $at, $zero, .L80040240
/* 040DFC 800401FC 008CC822 */ sub $t9, $a0, $t4
/* 040E00 80040200 80980000 */ lb $t8, ($a0)
/* 040E04 80040204 012A4825 */ or $t1, $t1, $t2
/* 040E08 80040208 000A5042 */ srl $t2, $t2, 1
/* 040E0C 8004020C 20840001 */ addi $a0, $a0, 1
/* 040E10 80040210 20C60001 */ addi $a2, $a2, 1
/* 040E14 80040214 216B0001 */ addi $t3, $t3, 1
/* 040E18 80040218 15400006 */ bnez $t2, .L80040234
/* 040E1C 8004021C A0D8FFFF */ sb $t8, -1($a2)
/* 040E20 80040220 A1C90000 */ sb $t1, ($t6)
/* 040E24 80040224 00C07025 */ move $t6, $a2
/* 040E28 80040228 20C60001 */ addi $a2, $a2, 1
/* 040E2C 8004022C 00004825 */ move $t1, $zero
/* 040E30 80040230 240A0080 */ li $t2, 128
.L80040234:
/* 040E34 80040234 00606825 */ move $t5, $v1
/* 040E38 80040238 00406025 */ move $t4, $v0
/* 040E3C 8004023C 008CC822 */ sub $t9, $a0, $t4
.L80040240:
/* 040E40 80040240 0328C822 */ sub $t9, $t9, $t0
/* 040E44 80040244 232CFFFF */ addi $t4, $t9, -1
/* 040E48 80040248 A0CC0000 */ sb $t4, ($a2)
/* 040E4C 8004024C 21B9FFFD */ addi $t9, $t5, -3
/* 040E50 80040250 000C6202 */ srl $t4, $t4, 8
/* 040E54 80040254 0019C900 */ sll $t9, $t9, 4
/* 040E58 80040258 318C000F */ andi $t4, $t4, 0xf
/* 040E5C 8004025C 032CC825 */ or $t9, $t9, $t4
/* 040E60 80040260 A0D90001 */ sb $t9, 1($a2)
/* 040E64 80040264 20C60002 */ addi $a2, $a2, 2
/* 040E68 80040268 10000006 */ b .L80040284
/* 040E6C 8004026C 008D2020 */ add $a0, $a0, $t5
.L80040270:
/* 040E70 80040270 80980000 */ lb $t8, ($a0)
/* 040E74 80040274 012A4825 */ or $t1, $t1, $t2
/* 040E78 80040278 20840001 */ addi $a0, $a0, 1
/* 040E7C 8004027C 20C60001 */ addi $a2, $a2, 1
/* 040E80 80040280 A0D8FFFF */ sb $t8, -1($a2)
.L80040284:
/* 040E84 80040284 000A5042 */ srl $t2, $t2, 1
/* 040E88 80040288 1540FFCD */ bnez $t2, .L800401C0
/* 040E8C 8004028C 216B0001 */ addi $t3, $t3, 1
/* 040E90 80040290 A1C90000 */ sb $t1, ($t6)
/* 040E94 80040294 00C07025 */ move $t6, $a2
/* 040E98 80040298 20C60001 */ addi $a2, $a2, 1
/* 040E9C 8004029C 00004825 */ move $t1, $zero
/* 040EA0 800402A0 1000FFC7 */ b .L800401C0
/* 040EA4 800402A4 240A0080 */ li $t2, 128
/* 040EA8 800402A8 24010080 */ li $at, 128
.L800402AC:
/* 040EAC 800402AC 11410002 */ beq $t2, $at, .L800402B8
/* 040EB0 800402B0 00000000 */ nop
/* 040EB4 800402B4 A1C90000 */ sb $t1, ($t6)
.L800402B8:
/* 040EB8 800402B8 3C088004 */ lui $t0, %hi(D_80040170) # $t0, 0x8004
/* 040EBC 800402BC 25080170 */ addiu $t0, %lo(D_80040170) # addiu $t0, $t0, 0x170
/* 040EC0 800402C0 AD0B0000 */ sw $t3, ($t0)
/* 040EC4 800402C4 8FBF0100 */ lw $ra, 0x100($sp)
/* 040EC8 800402C8 8FA70128 */ lw $a3, 0x128($sp)
/* 040ECC 800402CC 8FBE0104 */ lw $fp, 0x104($sp)
/* 040ED0 800402D0 8FB70108 */ lw $s7, 0x108($sp)
/* 040ED4 800402D4 8FB6010C */ lw $s6, 0x10c($sp)
/* 040ED8 800402D8 8FB50110 */ lw $s5, 0x110($sp)
/* 040EDC 800402DC 8FB40114 */ lw $s4, 0x114($sp)
/* 040EE0 800402E0 8FB30118 */ lw $s3, 0x118($sp)
/* 040EE4 800402E4 8FB2011C */ lw $s2, 0x11c($sp)
/* 040EE8 800402E8 8FB10120 */ lw $s1, 0x120($sp)
/* 040EEC 800402EC 8FB00124 */ lw $s0, 0x124($sp)
/* 040EF0 800402F0 23BD0130 */ addi $sp, $sp, 0x130
/* 040EF4 800402F4 03E00008 */ jr $ra
/* 040EF8 800402F8 00C71022 */ sub $v0, $a2, $a3
glabel func_800402FC
/* 040EFC 800402FC 0328C022 */ sub $t8, $t9, $t0
/* 040F00 80040300 2B011001 */ slti $at, $t8, 0x1001
/* 040F04 80040304 14200002 */ bnez $at, .L80040310
/* 040F08 80040308 0000A025 */ move $s4, $zero
/* 040F0C 8004030C 2314F000 */ addi $s4, $t8, -0x1000
.L80040310:
/* 040F10 80040310 00B8A822 */ sub $s5, $a1, $t8
/* 040F14 80040314 2AA10013 */ slti $at, $s5, 0x13
/* 040F18 80040318 54200003 */ bnel $at, $zero, .L80040328
/* 040F1C 8004031C 2AA10003 */ slti $at, $s5, 3
/* 040F20 80040320 24150012 */ li $s5, 18
/* 040F24 80040324 2AA10003 */ slti $at, $s5, 3
.L80040328:
/* 040F28 80040328 50200005 */ beql $at, $zero, .L80040340
/* 040F2C 8004032C 24160003 */ li $s6, 3
/* 040F30 80040330 00001025 */ move $v0, $zero
/* 040F34 80040334 03E00008 */ jr $ra
/* 040F38 80040338 00001825 */ move $v1, $zero
/* 040F3C 8004033C 24160003 */ li $s6, 3
.L80040340:
/* 040F40 80040340 0298082A */ slt $at, $s4, $t8
/* 040F44 80040344 50200058 */ beql $at, $zero, .L800404A8
/* 040F48 80040348 2AC10004 */ slti $at, $s6, 4
/* 040F4C 8004034C 0316B820 */ add $s7, $t8, $s6
/* 040F50 80040350 01189020 */ add $s2, $t0, $t8
/* 040F54 80040354 01149820 */ add $s3, $t0, $s4
/* 040F58 80040358 02F4B822 */ sub $s7, $s7, $s4
/* 040F5C 8004035C 02F6082A */ slt $at, $s7, $s6
/* 040F60 80040360 5420000E */ bnel $at, $zero, .L8004039C
/* 040F64 80040364 92110000 */ lbu $s1, ($s0)
/* 040F68 80040368 00168A00 */ sll $s1, $s6, 8
/* 040F6C 8004036C 02368025 */ or $s0, $s1, $s6
/* 040F70 80040370 00108C00 */ sll $s1, $s0, 0x10
/* 040F74 80040374 02118025 */ or $s0, $s0, $s1
/* 040F78 80040378 03A08825 */ move $s1, $sp
/* 040F7C 8004037C 24020040 */ li $v0, 64
.L80040380:
/* 040F80 80040380 2042FFFF */ addi $v0, $v0, -1
/* 040F84 80040384 AE300000 */ sw $s0, ($s1)
/* 040F88 80040388 1440FFFD */ bnez $v0, .L80040380
/* 040F8C 8004038C 22310004 */ addi $s1, $s1, 4
/* 040F90 80040390 02408025 */ move $s0, $s2
/* 040F94 80040394 22C3FFFF */ addi $v1, $s6, -1
/* 040F98 80040398 92110000 */ lbu $s1, ($s0)
.L8004039C:
/* 040F9C 8004039C 22100001 */ addi $s0, $s0, 1
/* 040FA0 800403A0 023D1020 */ add $v0, $s1, $sp
/* 040FA4 800403A4 A0430000 */ sb $v1, ($v0)
/* 040FA8 800403A8 2063FFFF */ addi $v1, $v1, -1
/* 040FAC 800403AC 0463FFFB */ bgezl $v1, .L8004039C
/* 040FB0 800403B0 92110000 */ lbu $s1, ($s0)
/* 040FB4 800403B4 02769820 */ add $s3, $s3, $s6
/* 040FB8 800403B8 2273FFFF */ addi $s3, $s3, -1
/* 040FBC 800403BC 02201025 */ move $v0, $s1
.L800403C0:
/* 040FC0 800403C0 92630000 */ lbu $v1, ($s3)
/* 040FC4 800403C4 50620006 */ beql $v1, $v0, .L800403E0
/* 040FC8 800403C8 22CFFFFE */ addi $t7, $s6, -2
/* 040FCC 800403CC 007D8820 */ add $s1, $v1, $sp
/* 040FD0 800403D0 92300000 */ lbu $s0, ($s1)
/* 040FD4 800403D4 1000FFFA */ b .L800403C0
/* 040FD8 800403D8 02709820 */ add $s3, $s3, $s0
/* 040FDC 800403DC 22CFFFFE */ addi $t7, $s6, -2
.L800403E0:
/* 040FE0 800403E0 01F23820 */ add $a3, $t7, $s2
.L800403E4:
/* 040FE4 800403E4 05E00011 */ bltz $t7, .L8004042C
/* 040FE8 800403E8 2273FFFF */ addi $s3, $s3, -1
/* 040FEC 800403EC 92630000 */ lbu $v1, ($s3)
/* 040FF0 800403F0 90F00000 */ lbu $s0, ($a3)
/* 040FF4 800403F4 5070000B */ beql $v1, $s0, .L80040424
/* 040FF8 800403F8 20E7FFFF */ addi $a3, $a3, -1
/* 040FFC 800403FC 007D8820 */ add $s1, $v1, $sp
/* 041000 80040400 92300000 */ lbu $s0, ($s1)
/* 041004 80040404 02CF1822 */ sub $v1, $s6, $t7
/* 041008 80040408 0203082A */ slt $at, $s0, $v1
/* 04100C 8004040C 10200002 */ beqz $at, .L80040418
/* 041010 80040410 00000000 */ nop
/* 041014 80040414 00608025 */ move $s0, $v1
.L80040418:
/* 041018 80040418 1000FFE9 */ b .L800403C0
/* 04101C 8004041C 02709820 */ add $s3, $s3, $s0
/* 041020 80040420 20E7FFFF */ addi $a3, $a3, -1
.L80040424:
/* 041024 80040424 1000FFEF */ b .L800403E4
/* 041028 80040428 21EFFFFF */ addi $t7, $t7, -1
.L8004042C:
/* 04102C 8004042C 22730001 */ addi $s3, $s3, 1
/* 041030 80040430 02748022 */ sub $s0, $s3, $s4
/* 041034 80040434 03147822 */ sub $t7, $t8, $s4
/* 041038 80040438 02088022 */ sub $s0, $s0, $t0
/* 04103C 8004043C 020F082A */ slt $at, $s0, $t7
/* 041040 80040440 50200019 */ beql $at, $zero, .L800404A8
/* 041044 80040444 2AC10004 */ slti $at, $s6, 4
/* 041048 80040448 01148820 */ add $s1, $t0, $s4
/* 04104C 8004044C 02368820 */ add $s1, $s1, $s6
/* 041050 80040450 03367820 */ add $t7, $t9, $s6
/* 041054 80040454 02308820 */ add $s1, $s1, $s0
.L80040458:
/* 041058 80040458 02D5082A */ slt $at, $s6, $s5
/* 04105C 8004045C 5020000A */ beql $at, $zero, .L80040488
/* 041060 80040460 02901020 */ add $v0, $s4, $s0
/* 041064 80040464 91F20000 */ lbu $s2, ($t7)
/* 041068 80040468 92330000 */ lbu $s3, ($s1)
/* 04106C 8004046C 56530009 */ bnel $s2, $s3, .L80040494
/* 041070 80040470 0290F020 */ add $fp, $s4, $s0
/* 041074 80040474 21EF0001 */ addi $t7, $t7, 1
/* 041078 80040478 22310001 */ addi $s1, $s1, 1
/* 04107C 8004047C 1000FFF6 */ b .L80040458
/* 041080 80040480 22D60001 */ addi $s6, $s6, 1
/* 041084 80040484 02901020 */ add $v0, $s4, $s0
.L80040488:
/* 041088 80040488 03E00008 */ jr $ra
/* 04108C 8004048C 02A01825 */ move $v1, $s5
/* 041090 80040490 0290F020 */ add $fp, $s4, $s0
.L80040494:
/* 041094 80040494 0290A020 */ add $s4, $s4, $s0
/* 041098 80040498 22D60001 */ addi $s6, $s6, 1
/* 04109C 8004049C 1000FFA8 */ b .L80040340
/* 0410A0 800404A0 22940001 */ addi $s4, $s4, 1
/* 0410A4 800404A4 2AC10004 */ slti $at, $s6, 4
.L800404A8:
/* 0410A8 800404A8 03C01025 */ move $v0, $fp
/* 0410AC 800404AC 14200002 */ bnez $at, .L800404B8
/* 0410B0 800404B0 00001825 */ move $v1, $zero
/* 0410B4 800404B4 22C3FFFF */ addi $v1, $s6, -1
.L800404B8:
/* 0410B8 800404B8 03E00008 */ jr $ra
/* 0410BC 800404BC 00000000 */ nop
glabel mio0encode
/* 0410C0 800404C0 3C084D49 */ lui $t0, (0x4D494F30 >> 16) # lui $t0, 0x4d49
/* 0410C4 800404C4 35084F30 */ ori $t0, (0x4D494F30 & 0xFFFF) # ori $t0, $t0, 0x4f30
/* 0410C8 800404C8 ACC80000 */ sw $t0, ($a2)
/* 0410CC 800404CC 3C088004 */ lui $t0, %hi(D_80040170) # $t0, 0x8004
/* 0410D0 800404D0 ACC50004 */ sw $a1, 4($a2)
/* 0410D4 800404D4 25080170 */ addiu $t0, %lo(D_80040170) # addiu $t0, $t0, 0x170
/* 0410D8 800404D8 8D0B0000 */ lw $t3, ($t0)
/* 0410DC 800404DC 20D80010 */ addi $t8, $a2, 0x10
/* 0410E0 800404E0 00806025 */ move $t4, $a0
/* 0410E4 800404E4 00005025 */ move $t2, $zero
/* 0410E8 800404E8 00007025 */ move $t6, $zero
/* 0410EC 800404EC 01603825 */ move $a3, $t3
/* 0410F0 800404F0 91880000 */ lbu $t0, ($t4)
.L800404F4:
/* 0410F4 800404F4 218C0001 */ addi $t4, $t4, 1
/* 0410F8 800404F8 214A0001 */ addi $t2, $t2, 1
/* 0410FC 800404FC 23180001 */ addi $t8, $t8, 1
/* 041100 80040500 24090080 */ li $t1, 128
/* 041104 80040504 A308FFFF */ sb $t0, -1($t8)
/* 041108 80040508 01091024 */ and $v0, $t0, $t1
.L8004050C:
/* 04110C 8004050C 50400004 */ beql $v0, $zero, .L80040520
/* 041110 80040510 21CE0002 */ addi $t6, $t6, 2
/* 041114 80040514 10000003 */ b .L80040524
/* 041118 80040518 218C0001 */ addi $t4, $t4, 1
/* 04111C 8004051C 21CE0002 */ addi $t6, $t6, 2
.L80040520:
/* 041120 80040520 218C0002 */ addi $t4, $t4, 2
.L80040524:
/* 041124 80040524 216BFFFF */ addi $t3, $t3, -1
/* 041128 80040528 11600005 */ beqz $t3, .L80040540
/* 04112C 8004052C 00094842 */ srl $t1, $t1, 1
/* 041130 80040530 5520FFF6 */ bnel $t1, $zero, .L8004050C
/* 041134 80040534 01091024 */ and $v0, $t0, $t1
/* 041138 80040538 1000FFEE */ b .L800404F4
/* 04113C 8004053C 91880000 */ lbu $t0, ($t4)
.L80040540:
/* 041140 80040540 21420013 */ addi $v0, $t2, 0x13
/* 041144 80040544 2401FFFC */ li $at, -4
/* 041148 80040548 00411024 */ and $v0, $v0, $at
/* 04114C 8004054C ACC20008 */ sw $v0, 8($a2)
/* 041150 80040550 00C21820 */ add $v1, $a2, $v0
/* 041154 80040554 004E1020 */ add $v0, $v0, $t6
/* 041158 80040558 ACC2000C */ sw $v0, 0xc($a2)
/* 04115C 8004055C 00C2C820 */ add $t9, $a2, $v0
/* 041160 80040560 90880000 */ lbu $t0, ($a0)
.L80040564:
/* 041164 80040564 20840001 */ addi $a0, $a0, 1
/* 041168 80040568 24090080 */ li $t1, 128
/* 04116C 8004056C 01091024 */ and $v0, $t0, $t1
.L80040570:
/* 041170 80040570 50400007 */ beql $v0, $zero, .L80040590
/* 041174 80040574 90820001 */ lbu $v0, 1($a0)
/* 041178 80040578 908D0000 */ lbu $t5, ($a0)
/* 04117C 8004057C 20840001 */ addi $a0, $a0, 1
/* 041180 80040580 23390001 */ addi $t9, $t9, 1
/* 041184 80040584 10000008 */ b .L800405A8
/* 041188 80040588 A32DFFFF */ sb $t5, -1($t9)
/* 04118C 8004058C 90820001 */ lbu $v0, 1($a0)
.L80040590:
/* 041190 80040590 908D0000 */ lbu $t5, ($a0)
/* 041194 80040594 20630002 */ addi $v1, $v1, 2
/* 041198 80040598 00021200 */ sll $v0, $v0, 8
/* 04119C 8004059C 004D1025 */ or $v0, $v0, $t5
/* 0411A0 800405A0 A462FFFE */ sh $v0, -2($v1)
/* 0411A4 800405A4 20840002 */ addi $a0, $a0, 2
.L800405A8:
/* 0411A8 800405A8 20E7FFFF */ addi $a3, $a3, -1
/* 0411AC 800405AC 10E00005 */ beqz $a3, .L800405C4
/* 0411B0 800405B0 00094842 */ srl $t1, $t1, 1
/* 0411B4 800405B4 5520FFEE */ bnel $t1, $zero, .L80040570
/* 0411B8 800405B8 01091024 */ and $v0, $t0, $t1
/* 0411BC 800405BC 1000FFE9 */ b .L80040564
/* 0411C0 800405C0 90880000 */ lbu $t0, ($a0)
.L800405C4:
/* 0411C4 800405C4 03E00008 */ jr $ra
/* 0411C8 800405C8 03261022 */ sub $v0, $t9, $a2
/* 0411CC 800405CC 00000000 */ nop

544
asm/code_800405D0.s Normal file
View File

@ -0,0 +1,544 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel tkmk00decode
/* 0411D0 800405D0 23BDFC00 */ addi $sp, $sp, -0x400
/* 0411D4 800405D4 AFB0019C */ sw $s0, 0x19c($sp)
/* 0411D8 800405D8 AFB10198 */ sw $s1, 0x198($sp)
/* 0411DC 800405DC AFB20194 */ sw $s2, 0x194($sp)
/* 0411E0 800405E0 AFB30190 */ sw $s3, 0x190($sp)
/* 0411E4 800405E4 AFB4018C */ sw $s4, 0x18c($sp)
/* 0411E8 800405E8 AFB50188 */ sw $s5, 0x188($sp)
/* 0411EC 800405EC AFB60184 */ sw $s6, 0x184($sp)
/* 0411F0 800405F0 AFB70180 */ sw $s7, 0x180($sp)
/* 0411F4 800405F4 AFBF017C */ sw $ra, 0x17c($sp)
/* 0411F8 800405F8 948C0008 */ lhu $t4, 8($a0)
/* 0411FC 800405FC 948B000A */ lhu $t3, 0xa($a0)
/* 041200 80040600 00E09025 */ move $s2, $a3
/* 041204 80040604 908A0006 */ lbu $t2, 6($a0)
/* 041208 80040608 2418FFFF */ li $t8, -1
/* 04120C 8004060C 03A0C825 */ move $t9, $sp
/* 041210 80040610 24170020 */ li $s7, 32
/* 041214 80040614 018B0018 */ mult $t4, $t3
.L80040618:
/* 041218 80040618 22F7FFFF */ addi $s7, $s7, -1
/* 04121C 8004061C AF380000 */ sw $t8, ($t9)
/* 041220 80040620 16E0FFFD */ bnez $s7, .L80040618
/* 041224 80040624 23390004 */ addi $t9, $t9, 4
/* 041228 80040628 00004012 */ mflo $t0
/* 04122C 8004062C 0100A025 */ move $s4, $t0
/* 041230 80040630 00C0B025 */ move $s6, $a2
.L80040634:
/* 041234 80040634 2294FFFE */ addi $s4, $s4, -2
/* 041238 80040638 AEC00000 */ sw $zero, ($s6)
/* 04123C 8004063C 1E80FFFD */ bgtz $s4, .L80040634
/* 041240 80040640 22D60004 */ addi $s6, $s6, 4
/* 041244 80040644 0100B825 */ move $s7, $t0
/* 041248 80040648 00A0C025 */ move $t8, $a1
.L8004064C:
/* 04124C 8004064C 22F7FFFC */ addi $s7, $s7, -4
/* 041250 80040650 AF000000 */ sw $zero, ($t8)
/* 041254 80040654 1EE0FFFD */ bgtz $s7, .L8004064C
/* 041258 80040658 23180004 */ addi $t8, $t8, 4
/* 04125C 8004065C 23B401C0 */ addi $s4, $sp, 0x1c0
/* 041260 80040660 24160008 */ li $s6, 8
/* 041264 80040664 2087000C */ addi $a3, $a0, 0xc
/* 041268 80040668 0140A825 */ move $s5, $t2
.L8004066C:
/* 04126C 8004066C 8CF70000 */ lw $s7, ($a3)
/* 041270 80040670 32A20001 */ andi $v0, $s5, 1
/* 041274 80040674 14400002 */ bnez $v0, .L80040680
/* 041278 80040678 02E4B820 */ add $s7, $s7, $a0
/* 04127C 8004067C 22F7FFFC */ addi $s7, $s7, -4
.L80040680:
/* 041280 80040680 22D6FFFF */ addi $s6, $s6, -1
/* 041284 80040684 0015A842 */ srl $s5, $s5, 1
/* 041288 80040688 AE970000 */ sw $s7, ($s4)
/* 04128C 8004068C 20E70004 */ addi $a3, $a3, 4
/* 041290 80040690 16C0FFF6 */ bnez $s6, .L8004066C
/* 041294 80040694 22940004 */ addi $s4, $s4, 4
/* 041298 80040698 AFA001E0 */ sw $zero, 0x1e0($sp)
/* 04129C 8004069C AFA001E4 */ sw $zero, 0x1e4($sp)
/* 0412A0 800406A0 AFA001E8 */ sw $zero, 0x1e8($sp)
/* 0412A4 800406A4 AFA001EC */ sw $zero, 0x1ec($sp)
/* 0412A8 800406A8 03A09825 */ move $s3, $sp
/* 0412AC 800406AC 00003825 */ move $a3, $zero
/* 0412B0 800406B0 8C88002C */ lw $t0, 0x2c($a0)
/* 0412B4 800406B4 20840030 */ addi $a0, $a0, 0x30
/* 0412B8 800406B8 227303F0 */ addi $s3, $s3, 0x3f0
/* 0412BC 800406BC 04110140 */ bal func_80040BC0
/* 0412C0 800406C0 24140020 */ li $s4, 32
/* 0412C4 800406C4 00404825 */ move $t1, $v0
/* 0412C8 800406C8 00006825 */ move $t5, $zero
/* 0412CC 800406CC 00007025 */ move $t6, $zero
/* 0412D0 800406D0 00007825 */ move $t7, $zero
.L800406D4:
/* 0412D4 800406D4 94D90000 */ lhu $t9, ($a2)
/* 0412D8 800406D8 53200008 */ beql $t9, $zero, .L800406FC
/* 0412DC 800406DC 80A30000 */ lb $v1, ($a1)
/* 0412E0 800406E0 3333FFFE */ andi $s3, $t9, 0xfffe
/* 0412E4 800406E4 167200CC */ bne $s3, $s2, .L80040A18
/* 0412E8 800406E8 03207825 */ move $t7, $t9
/* 0412EC 800406EC A4D30000 */ sh $s3, ($a2)
/* 0412F0 800406F0 100000C9 */ b .L80040A18
/* 0412F4 800406F4 02607825 */ move $t7, $s3
/* 0412F8 800406F8 80A30000 */ lb $v1, ($a1)
.L800406FC:
/* 0412FC 800406FC 041100F2 */ bal func_80040AC8
/* 041300 80040700 20630001 */ addi $v1, $v1, 1
/* 041304 80040704 14400003 */ bnez $v0, .L80040714
/* 041308 80040708 00000000 */ nop
/* 04130C 8004070C 100000C2 */ b .L80040A18
/* 041310 80040710 A4CF0000 */ sh $t7, ($a2)
.L80040714:
/* 041314 80040714 041100D2 */ bal func_80040A60
/* 041318 80040718 24030001 */ li $v1, 1
/* 04131C 8004071C 10400050 */ beqz $v0, .L80040860
/* 041320 80040720 00000000 */ nop
/* 041324 80040724 0411014B */ bal func_80040C54
/* 041328 80040728 00000000 */ nop
/* 04132C 8004072C 04110149 */ bal func_80040C54
/* 041330 80040730 02808025 */ move $s0, $s4
/* 041334 80040734 04110147 */ bal func_80040C54
/* 041338 80040738 02808825 */ move $s1, $s4
/* 04133C 8004073C 0000A825 */ move $s5, $zero
/* 041340 80040740 11C00006 */ beqz $t6, .L8004075C
/* 041344 80040744 0000B025 */ move $s6, $zero
/* 041348 80040748 000C9840 */ sll $s3, $t4, 1
/* 04134C 8004074C 00D3C822 */ sub $t9, $a2, $s3
/* 041350 80040750 97350000 */ lhu $s5, ($t9)
/* 041354 80040754 10000004 */ b .L80040768
/* 041358 80040758 94D6FFFE */ lhu $s6, -2($a2)
.L8004075C:
/* 04135C 8004075C 51A00003 */ beql $t5, $zero, .L8004076C
/* 041360 80040760 32B807C0 */ andi $t8, $s5, 0x7c0
/* 041364 80040764 94D6FFFE */ lhu $s6, -2($a2)
.L80040768:
/* 041368 80040768 32B807C0 */ andi $t8, $s5, 0x7c0
.L8004076C:
/* 04136C 8004076C 32D907C0 */ andi $t9, $s6, 0x7c0
/* 041370 80040770 0018C182 */ srl $t8, $t8, 6
/* 041374 80040774 0019C982 */ srl $t9, $t9, 6
/* 041378 80040778 0319C020 */ add $t8, $t8, $t9
/* 04137C 8004077C 0018C042 */ srl $t8, $t8, 1
/* 041380 80040780 04110144 */ bal func_80040C94
/* 041384 80040784 0200C825 */ move $t9, $s0
/* 041388 80040788 03381822 */ sub $v1, $t9, $t8
/* 04138C 8004078C 03208025 */ move $s0, $t9
/* 041390 80040790 32B8F800 */ andi $t8, $s5, 0xf800
/* 041394 80040794 32D9F800 */ andi $t9, $s6, 0xf800
/* 041398 80040798 0018C2C2 */ srl $t8, $t8, 0xb
/* 04139C 8004079C 0019CAC2 */ srl $t9, $t9, 0xb
/* 0413A0 800407A0 0319C020 */ add $t8, $t8, $t9
/* 0413A4 800407A4 0018C042 */ srl $t8, $t8, 1
/* 0413A8 800407A8 0303C020 */ add $t8, $t8, $v1
/* 0413AC 800407AC 2B010020 */ slti $at, $t8, 0x20
/* 0413B0 800407B0 14200003 */ bnez $at, .L800407C0
/* 0413B4 800407B4 00000000 */ nop
/* 0413B8 800407B8 10000004 */ b .L800407CC
/* 0413BC 800407BC 2418001F */ li $t8, 31
.L800407C0:
/* 0413C0 800407C0 07010002 */ bgez $t8, .L800407CC
/* 0413C4 800407C4 00000000 */ nop
/* 0413C8 800407C8 0000C025 */ move $t8, $zero
.L800407CC:
/* 0413CC 800407CC 04110131 */ bal func_80040C94
/* 0413D0 800407D0 0220C825 */ move $t9, $s1
/* 0413D4 800407D4 03208825 */ move $s1, $t9
/* 0413D8 800407D8 32B8003E */ andi $t8, $s5, 0x3e
/* 0413DC 800407DC 32D9003E */ andi $t9, $s6, 0x3e
/* 0413E0 800407E0 0018C042 */ srl $t8, $t8, 1
/* 0413E4 800407E4 0019C842 */ srl $t9, $t9, 1
/* 0413E8 800407E8 0319C020 */ add $t8, $t8, $t9
/* 0413EC 800407EC 0018C042 */ srl $t8, $t8, 1
/* 0413F0 800407F0 0303C020 */ add $t8, $t8, $v1
/* 0413F4 800407F4 2B010020 */ slti $at, $t8, 0x20
/* 0413F8 800407F8 14200003 */ bnez $at, .L80040808
/* 0413FC 800407FC 00000000 */ nop
/* 041400 80040800 10000004 */ b .L80040814
/* 041404 80040804 2418001F */ li $t8, 31
.L80040808:
/* 041408 80040808 07010002 */ bgez $t8, .L80040814
/* 04140C 8004080C 00000000 */ nop
/* 041410 80040810 0000C025 */ move $t8, $zero
.L80040814:
/* 041414 80040814 0411011F */ bal func_80040C94
/* 041418 80040818 0280C825 */ move $t9, $s4
/* 04141C 8004081C 00108180 */ sll $s0, $s0, 6
/* 041420 80040820 00118AC0 */ sll $s1, $s1, 0xb
/* 041424 80040824 0019C840 */ sll $t9, $t9, 1
/* 041428 80040828 0211C025 */ or $t8, $s0, $s1
/* 04142C 8004082C 03197825 */ or $t7, $t8, $t9
/* 041430 80040830 51F20003 */ beql $t7, $s2, .L80040840
/* 041434 80040834 2415003F */ li $s5, 63
/* 041438 80040838 35EF0001 */ ori $t7, $t7, 1
/* 04143C 8004083C 2415003F */ li $s5, 63
.L80040840:
/* 041440 80040840 23B6007C */ addi $s6, $sp, 0x7c
.L80040844:
/* 041444 80040844 86D70000 */ lh $s7, ($s6)
/* 041448 80040848 22B5FFFF */ addi $s5, $s5, -1
/* 04144C 8004084C 22D6FFFE */ addi $s6, $s6, -2
/* 041450 80040850 16A0FFFC */ bnez $s5, .L80040844
/* 041454 80040854 A6D70004 */ sh $s7, 4($s6)
/* 041458 80040858 1000000C */ b .L8004088C
/* 04145C 8004085C A6CF0002 */ sh $t7, 2($s6)
.L80040860:
/* 041460 80040860 0411007F */ bal func_80040A60
/* 041464 80040864 24030006 */ li $v1, 6
/* 041468 80040868 00021040 */ sll $v0, $v0, 1
/* 04146C 8004086C 03A2B020 */ add $s6, $sp, $v0
/* 041470 80040870 10400006 */ beqz $v0, .L8004088C
/* 041474 80040874 96CF0000 */ lhu $t7, ($s6)
.L80040878:
/* 041478 80040878 86D7FFFE */ lh $s7, -2($s6)
/* 04147C 8004087C 22D6FFFE */ addi $s6, $s6, -2
/* 041480 80040880 16DDFFFD */ bne $s6, $sp, .L80040878
/* 041484 80040884 A6D70002 */ sh $s7, 2($s6)
/* 041488 80040888 A6CF0000 */ sh $t7, ($s6)
.L8004088C:
/* 04148C 8004088C A4CF0000 */ sh $t7, ($a2)
/* 041490 80040890 11A00002 */ beqz $t5, .L8004089C
/* 041494 80040894 0000C825 */ move $t9, $zero
/* 041498 80040898 37390001 */ ori $t9, $t9, 1
.L8004089C:
/* 04149C 8004089C 2195FFFF */ addi $s5, $t4, -1
/* 0414A0 800408A0 01B5082A */ slt $at, $t5, $s5
/* 0414A4 800408A4 50200003 */ beql $at, $zero, .L800408B4
/* 0414A8 800408A8 2196FFFE */ addi $s6, $t4, -2
/* 0414AC 800408AC 37390002 */ ori $t9, $t9, 2
/* 0414B0 800408B0 2196FFFE */ addi $s6, $t4, -2
.L800408B4:
/* 0414B4 800408B4 01B6082A */ slt $at, $t5, $s6
/* 0414B8 800408B8 50200003 */ beql $at, $zero, .L800408C8
/* 0414BC 800408BC 2175FFFF */ addi $s5, $t3, -1
/* 0414C0 800408C0 37390004 */ ori $t9, $t9, 4
/* 0414C4 800408C4 2175FFFF */ addi $s5, $t3, -1
.L800408C8:
/* 0414C8 800408C8 01D5082A */ slt $at, $t6, $s5
/* 0414CC 800408CC 50200003 */ beql $at, $zero, .L800408DC
/* 0414D0 800408D0 2176FFFE */ addi $s6, $t3, -2
/* 0414D4 800408D4 37390008 */ ori $t9, $t9, 8
/* 0414D8 800408D8 2176FFFE */ addi $s6, $t3, -2
.L800408DC:
/* 0414DC 800408DC 01D6082A */ slt $at, $t6, $s6
/* 0414E0 800408E0 50200003 */ beql $at, $zero, .L800408F0
/* 0414E4 800408E4 33370002 */ andi $s7, $t9, 2
/* 0414E8 800408E8 37390010 */ ori $t9, $t9, 0x10
/* 0414EC 800408EC 33370002 */ andi $s7, $t9, 2
.L800408F0:
/* 0414F0 800408F0 24010002 */ li $at, 2
/* 0414F4 800408F4 56E10005 */ bnel $s7, $at, .L8004090C
/* 0414F8 800408F8 33360004 */ andi $s6, $t9, 4
/* 0414FC 800408FC 90B40001 */ lbu $s4, 1($a1)
/* 041500 80040900 22940001 */ addi $s4, $s4, 1
/* 041504 80040904 A0B40001 */ sb $s4, 1($a1)
/* 041508 80040908 33360004 */ andi $s6, $t9, 4
.L8004090C:
/* 04150C 8004090C 24010004 */ li $at, 4
/* 041510 80040910 56C10005 */ bnel $s6, $at, .L80040928
/* 041514 80040914 33370009 */ andi $s7, $t9, 9
/* 041518 80040918 90B40002 */ lbu $s4, 2($a1)
/* 04151C 8004091C 22940001 */ addi $s4, $s4, 1
/* 041520 80040920 A0B40002 */ sb $s4, 2($a1)
/* 041524 80040924 33370009 */ andi $s7, $t9, 9
.L80040928:
/* 041528 80040928 24010009 */ li $at, 9
/* 04152C 8004092C 16E10004 */ bne $s7, $at, .L80040940
/* 041530 80040930 00ACA820 */ add $s5, $a1, $t4
/* 041534 80040934 92B4FFFF */ lbu $s4, -1($s5)
/* 041538 80040938 22940001 */ addi $s4, $s4, 1
/* 04153C 8004093C A2B4FFFF */ sb $s4, -1($s5)
.L80040940:
/* 041540 80040940 33360008 */ andi $s6, $t9, 8
/* 041544 80040944 24010008 */ li $at, 8
/* 041548 80040948 56C10005 */ bnel $s6, $at, .L80040960
/* 04154C 8004094C 3337000A */ andi $s7, $t9, 0xa
/* 041550 80040950 92B40000 */ lbu $s4, ($s5)
/* 041554 80040954 22940001 */ addi $s4, $s4, 1
/* 041558 80040958 A2B40000 */ sb $s4, ($s5)
/* 04155C 8004095C 3337000A */ andi $s7, $t9, 0xa
.L80040960:
/* 041560 80040960 2401000A */ li $at, 10
/* 041564 80040964 56E10005 */ bnel $s7, $at, .L8004097C
/* 041568 80040968 33370010 */ andi $s7, $t9, 0x10
/* 04156C 8004096C 92B40001 */ lbu $s4, 1($s5)
/* 041570 80040970 22940001 */ addi $s4, $s4, 1
/* 041574 80040974 A2B40001 */ sb $s4, 1($s5)
/* 041578 80040978 33370010 */ andi $s7, $t9, 0x10
.L8004097C:
/* 04157C 8004097C 24010010 */ li $at, 16
/* 041580 80040980 16E10004 */ bne $s7, $at, .L80040994
/* 041584 80040984 02ACB020 */ add $s6, $s5, $t4
/* 041588 80040988 92D40000 */ lbu $s4, ($s6)
/* 04158C 8004098C 22940001 */ addi $s4, $s4, 1
/* 041590 80040990 A2D40000 */ sb $s4, ($s6)
.L80040994:
/* 041594 80040994 04110032 */ bal func_80040A60
/* 041598 80040998 24030001 */ li $v1, 1
/* 04159C 8004099C 5040001F */ beql $v0, $zero, .L80040A1C
/* 0415A0 800409A0 21AD0001 */ addi $t5, $t5, 1
/* 0415A4 800409A4 00C08825 */ move $s1, $a2
/* 0415A8 800409A8 000C8040 */ sll $s0, $t4, 1
/* 0415AC 800409AC 35F30001 */ ori $s3, $t7, 1
.L800409B0:
/* 0415B0 800409B0 0411002B */ bal func_80040A60
/* 0415B4 800409B4 24030002 */ li $v1, 2
/* 0415B8 800409B8 5440000C */ bnel $v0, $zero, .L800409EC
/* 0415BC 800409BC 24010001 */ li $at, 1
/* 0415C0 800409C0 04110027 */ bal func_80040A60
/* 0415C4 800409C4 24030001 */ li $v1, 1
/* 0415C8 800409C8 50400014 */ beql $v0, $zero, .L80040A1C
/* 0415CC 800409CC 21AD0001 */ addi $t5, $t5, 1
/* 0415D0 800409D0 04110023 */ bal func_80040A60
/* 0415D4 800409D4 24030001 */ li $v1, 1
/* 0415D8 800409D8 1440000C */ bnez $v0, .L80040A0C
/* 0415DC 800409DC 22310004 */ addi $s1, $s1, 4
/* 0415E0 800409E0 1000000A */ b .L80040A0C
/* 0415E4 800409E4 2231FFF8 */ addi $s1, $s1, -8
/* 0415E8 800409E8 24010001 */ li $at, 1
.L800409EC:
/* 0415EC 800409EC 54410004 */ bnel $v0, $at, .L80040A00
/* 0415F0 800409F0 24010003 */ li $at, 3
/* 0415F4 800409F4 10000005 */ b .L80040A0C
/* 0415F8 800409F8 2231FFFE */ addi $s1, $s1, -2
/* 0415FC 800409FC 24010003 */ li $at, 3
.L80040A00:
/* 041600 80040A00 54410003 */ bnel $v0, $at, .L80040A10
/* 041604 80040A04 02308820 */ add $s1, $s1, $s0
/* 041608 80040A08 22310002 */ addi $s1, $s1, 2
.L80040A0C:
/* 04160C 80040A0C 02308820 */ add $s1, $s1, $s0
.L80040A10:
/* 041610 80040A10 1000FFE7 */ b .L800409B0
/* 041614 80040A14 A6330000 */ sh $s3, ($s1)
.L80040A18:
/* 041618 80040A18 21AD0001 */ addi $t5, $t5, 1
.L80040A1C:
/* 04161C 80040A1C 20A50001 */ addi $a1, $a1, 1
/* 041620 80040A20 15ACFF2C */ bne $t5, $t4, .L800406D4
/* 041624 80040A24 20C60002 */ addi $a2, $a2, 2
/* 041628 80040A28 21CE0001 */ addi $t6, $t6, 1
/* 04162C 80040A2C 15CBFF29 */ bne $t6, $t3, .L800406D4
/* 041630 80040A30 00006825 */ move $t5, $zero
/* 041634 80040A34 8FBF017C */ lw $ra, 0x17c($sp)
/* 041638 80040A38 8FB70180 */ lw $s7, 0x180($sp)
/* 04163C 80040A3C 8FB60184 */ lw $s6, 0x184($sp)
/* 041640 80040A40 8FB50188 */ lw $s5, 0x188($sp)
/* 041644 80040A44 8FB4018C */ lw $s4, 0x18c($sp)
/* 041648 80040A48 8FB30190 */ lw $s3, 0x190($sp)
/* 04164C 80040A4C 8FB20194 */ lw $s2, 0x194($sp)
/* 041650 80040A50 8FB10198 */ lw $s1, 0x198($sp)
/* 041654 80040A54 8FB0019C */ lw $s0, 0x19c($sp)
/* 041658 80040A58 03E00008 */ jr $ra
/* 04165C 80040A5C 23BD0400 */ addi $sp, $sp, 0x400
glabel func_80040A60
/* 041660 80040A60 00E3C820 */ add $t9, $a3, $v1
/* 041664 80040A64 24180020 */ li $t8, 32
/* 041668 80040A68 0303C022 */ sub $t8, $t8, $v1
/* 04166C 80040A6C 2B210021 */ slti $at, $t9, 0x21
/* 041670 80040A70 1020000B */ beqz $at, .L80040AA0
/* 041674 80040A74 03081006 */ srlv $v0, $t0, $t8
/* 041678 80040A78 24010020 */ li $at, 32
/* 04167C 80040A7C 53210005 */ beql $t9, $at, .L80040A94
/* 041680 80040A80 8C880000 */ lw $t0, ($a0)
/* 041684 80040A84 00684004 */ sllv $t0, $t0, $v1
/* 041688 80040A88 03E00008 */ jr $ra
/* 04168C 80040A8C 00E33820 */ add $a3, $a3, $v1
/* 041690 80040A90 8C880000 */ lw $t0, ($a0)
.L80040A94:
/* 041694 80040A94 00003825 */ move $a3, $zero
/* 041698 80040A98 03E00008 */ jr $ra
/* 04169C 80040A9C 20840004 */ addi $a0, $a0, 4
.L80040AA0:
/* 0416A0 80040AA0 24190040 */ li $t9, 64
/* 0416A4 80040AA4 8C880000 */ lw $t0, ($a0)
/* 0416A8 80040AA8 0323C822 */ sub $t9, $t9, $v1
/* 0416AC 80040AAC 0327C822 */ sub $t9, $t9, $a3
/* 0416B0 80040AB0 00F83822 */ sub $a3, $a3, $t8
/* 0416B4 80040AB4 0328C006 */ srlv $t8, $t0, $t9
/* 0416B8 80040AB8 00581025 */ or $v0, $v0, $t8
/* 0416BC 80040ABC 20840004 */ addi $a0, $a0, 4
/* 0416C0 80040AC0 03E00008 */ jr $ra
/* 0416C4 80040AC4 00E84004 */ sllv $t0, $t0, $a3
glabel func_80040AC8
/* 0416C8 80040AC8 006AC006 */ srlv $t8, $t2, $v1
/* 0416CC 80040ACC 33190001 */ andi $t9, $t8, 1
/* 0416D0 80040AD0 0003B840 */ sll $s7, $v1, 1
/* 0416D4 80040AD4 03B7C020 */ add $t8, $sp, $s7
/* 0416D8 80040AD8 1720000E */ bnez $t9, .L80040B14
/* 0416DC 80040ADC 971701E0 */ lhu $s7, 0x1e0($t8)
/* 0416E0 80040AE0 0003C880 */ sll $t9, $v1, 2
/* 0416E4 80040AE4 033DC820 */ add $t9, $t9, $sp
/* 0416E8 80040AE8 16E00004 */ bnez $s7, .L80040AFC
/* 0416EC 80040AEC 8F3601C0 */ lw $s6, 0x1c0($t9)
/* 0416F0 80040AF0 22D60004 */ addi $s6, $s6, 4
/* 0416F4 80040AF4 24170020 */ li $s7, 32
/* 0416F8 80040AF8 AF3601C0 */ sw $s6, 0x1c0($t9)
.L80040AFC:
/* 0416FC 80040AFC 8ED90000 */ lw $t9, ($s6)
/* 041700 80040B00 22F7FFFF */ addi $s7, $s7, -1
/* 041704 80040B04 A71701E0 */ sh $s7, 0x1e0($t8)
/* 041708 80040B08 02F91006 */ srlv $v0, $t9, $s7
/* 04170C 80040B0C 03E00008 */ jr $ra
/* 041710 80040B10 30420001 */ andi $v0, $v0, 1
.L80040B14:
/* 041714 80040B14 0003C880 */ sll $t9, $v1, 2
/* 041718 80040B18 033DC820 */ add $t9, $t9, $sp
/* 04171C 80040B1C 03A3A820 */ add $s5, $sp, $v1
/* 041720 80040B20 16E00013 */ bnez $s7, .L80040B70
/* 041724 80040B24 8F3601C0 */ lw $s6, 0x1c0($t9)
/* 041728 80040B28 82D70000 */ lb $s7, ($s6)
/* 04172C 80040B2C 24020100 */ li $v0, 256
/* 041730 80040B30 06E20007 */ bltzl $s7, .L80040B50
/* 041734 80040B34 00621004 */ sllv $v0, $v0, $v1
/* 041738 80040B38 00621004 */ sllv $v0, $v0, $v1
/* 04173C 80040B3C 00401027 */ not $v0, $v0
/* 041740 80040B40 22F70003 */ addi $s7, $s7, 3
/* 041744 80040B44 10000005 */ b .L80040B5C
/* 041748 80040B48 01425024 */ and $t2, $t2, $v0
/* 04174C 80040B4C 00621004 */ sllv $v0, $v0, $v1
.L80040B50:
/* 041750 80040B50 32F7007F */ andi $s7, $s7, 0x7f
/* 041754 80040B54 22F70001 */ addi $s7, $s7, 1
/* 041758 80040B58 01425025 */ or $t2, $t2, $v0
.L80040B5C:
/* 04175C 80040B5C 92C20001 */ lbu $v0, 1($s6)
/* 041760 80040B60 22D60002 */ addi $s6, $s6, 2
/* 041764 80040B64 0017B8C0 */ sll $s7, $s7, 3
/* 041768 80040B68 A2A201A0 */ sb $v0, 0x1a0($s5)
/* 04176C 80040B6C AF3601C0 */ sw $s6, 0x1c0($t9)
.L80040B70:
/* 041770 80040B70 92A201A0 */ lbu $v0, 0x1a0($s5)
/* 041774 80040B74 22F7FFFF */ addi $s7, $s7, -1
/* 041778 80040B78 A71701E0 */ sh $s7, 0x1e0($t8)
/* 04177C 80040B7C 32F80007 */ andi $t8, $s7, 7
/* 041780 80040B80 03021006 */ srlv $v0, $v0, $t8
/* 041784 80040B84 1700000C */ bnez $t8, .L80040BB8
/* 041788 80040B88 30420001 */ andi $v0, $v0, 1
/* 04178C 80040B8C 12E0000A */ beqz $s7, .L80040BB8
/* 041790 80040B90 00000000 */ nop
/* 041794 80040B94 24180100 */ li $t8, 256
/* 041798 80040B98 0078B804 */ sllv $s7, $t8, $v1
/* 04179C 80040B9C 02EAB824 */ and $s7, $s7, $t2
/* 0417A0 80040BA0 12E00005 */ beqz $s7, .L80040BB8
/* 0417A4 80040BA4 00000000 */ nop
/* 0417A8 80040BA8 92D70000 */ lbu $s7, ($s6)
/* 0417AC 80040BAC 22D60001 */ addi $s6, $s6, 1
/* 0417B0 80040BB0 A2B701A0 */ sb $s7, 0x1a0($s5)
/* 0417B4 80040BB4 AF3601C0 */ sw $s6, 0x1c0($t9)
.L80040BB8:
/* 0417B8 80040BB8 03E00008 */ jr $ra
/* 0417BC 80040BBC 00000000 */ nop
glabel func_80040BC0
/* 0417C0 80040BC0 AE7FFFF8 */ sw $ra, -8($s3)
/* 0417C4 80040BC4 2273FFF8 */ addi $s3, $s3, -8
/* 0417C8 80040BC8 0411FFBF */ bal func_80040AC8
/* 0417CC 80040BCC 00001825 */ move $v1, $zero
/* 0417D0 80040BD0 50400014 */ beql $v0, $zero, .L80040C24
/* 0417D4 80040BD4 00008025 */ move $s0, $zero
/* 0417D8 80040BD8 AE740004 */ sw $s4, 4($s3)
/* 0417DC 80040BDC 0411FFF8 */ bal func_80040BC0
/* 0417E0 80040BE0 22940001 */ addi $s4, $s4, 1
/* 0417E4 80040BE4 8E750004 */ lw $s5, 4($s3)
/* 0417E8 80040BE8 0015A840 */ sll $s5, $s5, 1
/* 0417EC 80040BEC 02BDA820 */ add $s5, $s5, $sp
/* 0417F0 80040BF0 0411FFF3 */ bal func_80040BC0
/* 0417F4 80040BF4 A6A20080 */ sh $v0, 0x80($s5)
/* 0417F8 80040BF8 8E750004 */ lw $s5, 4($s3)
/* 0417FC 80040BFC 22730008 */ addi $s3, $s3, 8
/* 041800 80040C00 02A0B025 */ move $s6, $s5
/* 041804 80040C04 0015A840 */ sll $s5, $s5, 1
/* 041808 80040C08 02BDA820 */ add $s5, $s5, $sp
/* 04180C 80040C0C A6A200FE */ sh $v0, 0xfe($s5)
/* 041810 80040C10 8E7FFFF8 */ lw $ra, -8($s3)
/* 041814 80040C14 02C01025 */ move $v0, $s6
/* 041818 80040C18 03E00008 */ jr $ra
/* 04181C 80040C1C 00000000 */ nop
/* 041820 80040C20 00008025 */ move $s0, $zero
.L80040C24:
/* 041824 80040C24 24110005 */ li $s1, 5
.L80040C28:
/* 041828 80040C28 0411FFA7 */ bal func_80040AC8
/* 04182C 80040C2C 00001825 */ move $v1, $zero
/* 041830 80040C30 00108040 */ sll $s0, $s0, 1
/* 041834 80040C34 2231FFFF */ addi $s1, $s1, -1
/* 041838 80040C38 1620FFFB */ bnez $s1, .L80040C28
/* 04183C 80040C3C 02028020 */ add $s0, $s0, $v0
/* 041840 80040C40 8E7F0000 */ lw $ra, ($s3)
/* 041844 80040C44 22730008 */ addi $s3, $s3, 8
/* 041848 80040C48 02001025 */ move $v0, $s0
/* 04184C 80040C4C 03E00008 */ jr $ra
/* 041850 80040C50 00000000 */ nop
glabel func_80040C54
/* 041854 80040C54 0120A025 */ move $s4, $t1
/* 041858 80040C58 03E09825 */ move $s3, $ra
.L80040C5C:
/* 04185C 80040C5C 2A810020 */ slti $at, $s4, 0x20
/* 041860 80040C60 1420000A */ bnez $at, .L80040C8C
/* 041864 80040C64 00000000 */ nop
/* 041868 80040C68 0411FF97 */ bal func_80040AC8
/* 04186C 80040C6C 00001825 */ move $v1, $zero
/* 041870 80040C70 00141840 */ sll $v1, $s4, 1
/* 041874 80040C74 14400003 */ bnez $v0, .L80040C84
/* 041878 80040C78 03A3C020 */ add $t8, $sp, $v1
/* 04187C 80040C7C 1000FFF7 */ b .L80040C5C
/* 041880 80040C80 87140080 */ lh $s4, 0x80($t8)
.L80040C84:
/* 041884 80040C84 1000FFF5 */ b .L80040C5C
/* 041888 80040C88 871400FE */ lh $s4, 0xfe($t8)
.L80040C8C:
/* 04188C 80040C8C 02600008 */ jr $s3
/* 041890 80040C90 00000000 */ nop
glabel func_80040C94
/* 041894 80040C94 2B010010 */ slti $at, $t8, 0x10
/* 041898 80040C98 54200013 */ bnel $at, $zero, .L80040CE8
/* 04189C 80040C9C 00181040 */ sll $v0, $t8, 1
/* 0418A0 80040CA0 2402001F */ li $v0, 31
/* 0418A4 80040CA4 00581022 */ sub $v0, $v0, $t8
/* 0418A8 80040CA8 00021040 */ sll $v0, $v0, 1
/* 0418AC 80040CAC 0059082A */ slt $at, $v0, $t9
/* 0418B0 80040CB0 50200005 */ beql $at, $zero, .L80040CC8
/* 0418B4 80040CB4 33220001 */ andi $v0, $t9, 1
/* 0418B8 80040CB8 2402001F */ li $v0, 31
/* 0418BC 80040CBC 03E00008 */ jr $ra
/* 0418C0 80040CC0 0059C822 */ sub $t9, $v0, $t9
/* 0418C4 80040CC4 33220001 */ andi $v0, $t9, 1
.L80040CC8:
/* 0418C8 80040CC8 10400004 */ beqz $v0, .L80040CDC
/* 0418CC 80040CCC 0019C842 */ srl $t9, $t9, 1
/* 0418D0 80040CD0 0338C820 */ add $t9, $t9, $t8
/* 0418D4 80040CD4 03E00008 */ jr $ra
/* 0418D8 80040CD8 23390001 */ addi $t9, $t9, 1
.L80040CDC:
/* 0418DC 80040CDC 03E00008 */ jr $ra
/* 0418E0 80040CE0 0319C822 */ sub $t9, $t8, $t9
/* 0418E4 80040CE4 00181040 */ sll $v0, $t8, 1
.L80040CE8:
/* 0418E8 80040CE8 0059082A */ slt $at, $v0, $t9
/* 0418EC 80040CEC 5020FFF6 */ beql $at, $zero, .L80040CC8
/* 0418F0 80040CF0 33220001 */ andi $v0, $t9, 1
/* 0418F4 80040CF4 03E00008 */ jr $ra
/* 0418F8 80040CF8 00000000 */ nop
/* 0418FC 80040CFC 00000000 */ nop

97
asm/code_80040D00.s Normal file
View File

@ -0,0 +1,97 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
/* 041900 80040D00 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 041904 80040D04 44811000 */ mtc1 $at, $f2
/* 041908 80040D08 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 04190C 80040D0C 3C01800E */ lui $at, %hi(D_800E43A8) # $at, 0x800e
/* 041910 80040D10 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 041914 80040D14 A42043A8 */ sh $zero, %lo(D_800E43A8)($at)
/* 041918 80040D18 8C620000 */ lw $v0, ($v1)
/* 04191C 80040D1C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 041920 80040D20 AFBF0024 */ sw $ra, 0x24($sp)
/* 041924 80040D24 244E0008 */ addiu $t6, $v0, 8
/* 041928 80040D28 AC6E0000 */ sw $t6, ($v1)
/* 04192C 80040D2C 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff
/* 041930 80040D30 3C18FFFE */ lui $t8, (0xFFFE793C >> 16) # lui $t8, 0xfffe
/* 041934 80040D34 3718793C */ ori $t8, (0xFFFE793C & 0xFFFF) # ori $t8, $t8, 0x793c
/* 041938 80040D38 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff
/* 04193C 80040D3C AC4F0000 */ sw $t7, ($v0)
/* 041940 80040D40 AC580004 */ sw $t8, 4($v0)
/* 041944 80040D44 8C620000 */ lw $v0, ($v1)
/* 041948 80040D48 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900
/* 04194C 80040D4C 3C0C0055 */ lui $t4, (0x00552078 >> 16) # lui $t4, 0x55
/* 041950 80040D50 24590008 */ addiu $t9, $v0, 8
/* 041954 80040D54 AC790000 */ sw $t9, ($v1)
/* 041958 80040D58 358C2078 */ ori $t4, (0x00552078 & 0xFFFF) # ori $t4, $t4, 0x2078
/* 04195C 80040D5C 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d
/* 041960 80040D60 AC4B0000 */ sw $t3, ($v0)
/* 041964 80040D64 AC4C0004 */ sw $t4, 4($v0)
/* 041968 80040D68 8C620000 */ lw $v0, ($v1)
/* 04196C 80040D6C 44800000 */ mtc1 $zero, $f0
/* 041970 80040D70 3C0F0002 */ lui $t7, 2
/* 041974 80040D74 244D0008 */ addiu $t5, $v0, 8
/* 041978 80040D78 AC6D0000 */ sw $t5, ($v1)
/* 04197C 80040D7C 3C0EB600 */ lui $t6, 0xb600
/* 041980 80040D80 3C014370 */ li $at, 0x43700000 # 240.000000
/* 041984 80040D84 44812000 */ mtc1 $at, $f4
/* 041988 80040D88 AC4E0000 */ sw $t6, ($v0)
/* 04198C 80040D8C AC4F0004 */ sw $t7, 4($v0)
/* 041990 80040D90 3C01BF80 */ li $at, 0xBF800000 # -1.000000
/* 041994 80040D94 44813000 */ mtc1 $at, $f6
/* 041998 80040D98 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 04199C 80040D9C 44050000 */ mfc1 $a1, $f0
/* 0419A0 80040DA0 44070000 */ mfc1 $a3, $f0
/* 0419A4 80040DA4 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 0419A8 80040DA8 3C0643A0 */ li $a2, 0x43A00000 # 320.000000
/* 0419AC 80040DAC E7A2001C */ swc1 $f2, 0x1c($sp)
/* 0419B0 80040DB0 E7A20018 */ swc1 $f2, 0x18($sp)
/* 0419B4 80040DB4 E7A40010 */ swc1 $f4, 0x10($sp)
/* 0419B8 80040DB8 0C0338A9 */ jal guFrustum
/* 0419BC 80040DBC E7A60014 */ swc1 $f6, 0x14($sp)
/* 0419C0 80040DC0 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 0419C4 80040DC4 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 0419C8 80040DC8 8C620000 */ lw $v0, ($v1)
/* 0419CC 80040DCC 3C19B400 */ lui $t9, 0xb400
/* 0419D0 80040DD0 340BFFFF */ li $t3, 65535
/* 0419D4 80040DD4 24580008 */ addiu $t8, $v0, 8
/* 0419D8 80040DD8 AC780000 */ sw $t8, ($v1)
/* 0419DC 80040DDC AC4B0004 */ sw $t3, 4($v0)
/* 0419E0 80040DE0 AC590000 */ sw $t9, ($v0)
/* 0419E4 80040DE4 8C620000 */ lw $v0, ($v1)
/* 0419E8 80040DE8 3C0D0103 */ lui $t5, (0x01030040 >> 16) # lui $t5, 0x103
/* 0419EC 80040DEC 35AD0040 */ ori $t5, (0x01030040 & 0xFFFF) # ori $t5, $t5, 0x40
/* 0419F0 80040DF0 244C0008 */ addiu $t4, $v0, 8
/* 0419F4 80040DF4 AC6C0000 */ sw $t4, ($v1)
/* 0419F8 80040DF8 3C0E8015 */ lui $t6, %hi(gGfxPool) # $t6, 0x8015
/* 0419FC 80040DFC AC4D0000 */ sw $t5, ($v0)
/* 041A00 80040E00 8DCEEF40 */ lw $t6, %lo(gGfxPool)($t6)
/* 041A04 80040E04 3C071FFF */ lui $a3, (0x1FFFFFFF >> 16) # lui $a3, 0x1fff
/* 041A08 80040E08 34E7FFFF */ ori $a3, (0x1FFFFFFF & 0xFFFF) # ori $a3, $a3, 0xffff
/* 041A0C 80040E0C 01C77824 */ and $t7, $t6, $a3
/* 041A10 80040E10 AC4F0004 */ sw $t7, 4($v0)
/* 041A14 80040E14 8C620000 */ lw $v0, ($v1)
/* 041A18 80040E18 3C0B0D01 */ lui $t3, %hi(D_0D008E98) # $t3, 0xd01
/* 041A1C 80040E1C 256B8E98 */ addiu $t3, %lo(D_0D008E98) # addiu $t3, $t3, -0x7168
/* 041A20 80040E20 24580008 */ addiu $t8, $v0, 8
/* 041A24 80040E24 AC780000 */ sw $t8, ($v1)
/* 041A28 80040E28 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102
/* 041A2C 80040E2C 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40
/* 041A30 80040E30 01676024 */ and $t4, $t3, $a3
/* 041A34 80040E34 AC4C0004 */ sw $t4, 4($v0)
/* 041A38 80040E38 AC590000 */ sw $t9, ($v0)
/* 041A3C 80040E3C 8FBF0024 */ lw $ra, 0x24($sp)
/* 041A40 80040E40 27BD0028 */ addiu $sp, $sp, 0x28
/* 041A44 80040E44 03E00008 */ jr $ra
/* 041A48 80040E48 00000000 */ nop
/* 041A4C 80040E4C 00000000 */ nop

2455
asm/code_80040E50.s Normal file

File diff suppressed because it is too large Load Diff

22518
asm/code_800431B0.s Normal file

File diff suppressed because it is too large Load Diff

24952
asm/code_80057C60.s Normal file

File diff suppressed because it is too large Load Diff

3641
asm/code_8006E9C0.s Normal file

File diff suppressed because it is too large Load Diff

23618
asm/code_80071F00.s Normal file

File diff suppressed because it is too large Load Diff

5842
asm/code_80086E70.s Normal file

File diff suppressed because it is too large Load Diff

5968
asm/code_8008C1D0.s Normal file

File diff suppressed because it is too large Load Diff

33825
asm/code_80091750.s Normal file

File diff suppressed because it is too large Load Diff

431
asm/code_80280000.s Normal file
View File

@ -0,0 +1,431 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_80280000
/* 123640 80280000 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 123644 80280004 AFBF0014 */ sw $ra, 0x14($sp)
/* 123648 80280008 0C0A59A8 */ jal func_802966A0
/* 12364C 8028000C 00000000 */ nop
/* 123650 80280010 0C0166B2 */ jal func_80059AC8
/* 123654 80280014 00000000 */ nop
/* 123658 80280018 0C0166B2 */ jal func_80059AC8
/* 12365C 8028001C 00000000 */ nop
/* 123660 80280020 0C01681C */ jal func_8005A070
/* 123664 80280024 00000000 */ nop
/* 123668 80280028 8FBF0014 */ lw $ra, 0x14($sp)
/* 12366C 8028002C 27BD0018 */ addiu $sp, $sp, 0x18
/* 123670 80280030 03E00008 */ jr $ra
/* 123674 80280034 00000000 */ nop
glabel func_80280038
/* 123678 80280038 3C018015 */ lui $at, %hi(D_80150112) # $at, 0x8015
/* 12367C 8028003C A4200112 */ sh $zero, %lo(D_80150112)($at)
/* 123680 80280040 3C018016 */ lui $at, %hi(D_80164AF0) # $at, 0x8016
/* 123684 80280044 27BDFF70 */ addiu $sp, $sp, -0x90
/* 123688 80280048 A4204AF0 */ sh $zero, %lo(D_80164AF0)($at)
/* 12368C 8028004C AFBF002C */ sw $ra, 0x2c($sp)
/* 123690 80280050 3C018019 */ lui $at, %hi(D_8018D120) # $at, 0x8019
/* 123694 80280054 0C0A8F8F */ jal func_802A3E3C
/* 123698 80280058 AC20D120 */ sw $zero, %lo(D_8018D120)($at)
/* 12369C 8028005C 0C0A94E9 */ jal func_802A53A4
/* 1236A0 80280060 00000000 */ nop
/* 1236A4 80280064 0C0A8F8F */ jal func_802A3E3C
/* 1236A8 80280068 00000000 */ nop
/* 1236AC 8028006C 0C015FF1 */ jal func_80057FC4
/* 1236B0 80280070 00002025 */ move $a0, $zero
/* 1236B4 80280074 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 1236B8 80280078 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 1236BC 8028007C 8C620000 */ lw $v0, ($v1)
/* 1236C0 80280080 3C0FB700 */ lui $t7, 0xb700
/* 1236C4 80280084 24182205 */ li $t8, 8709
/* 1236C8 80280088 244E0008 */ addiu $t6, $v0, 8
/* 1236CC 8028008C AC6E0000 */ sw $t6, ($v1)
/* 1236D0 80280090 3C018015 */ lui $at, %hi(D_80150150) # $at, 0x8015
/* 1236D4 80280094 AC580004 */ sw $t8, 4($v0)
/* 1236D8 80280098 AC4F0000 */ sw $t7, ($v0)
/* 1236DC 8028009C C4240150 */ lwc1 $f4, %lo(D_80150150)($at)
/* 1236E0 802800A0 3C018015 */ lui $at, %hi(D_8015014C) # $at, 0x8015
/* 1236E4 802800A4 C426014C */ lwc1 $f6, %lo(D_8015014C)($at)
/* 1236E8 802800A8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 1236EC 802800AC 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 1236F0 802800B0 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 1236F4 802800B4 44814000 */ mtc1 $at, $f8
/* 1236F8 802800B8 3C068015 */ lui $a2, %hi(D_80150130) # $a2, 0x8015
/* 1236FC 802800BC 3C078015 */ lui $a3, %hi(D_80150148) # $a3, 0x8015
/* 123700 802800C0 8CE70148 */ lw $a3, %lo(D_80150148)($a3)
/* 123704 802800C4 8CC60130 */ lw $a2, %lo(D_80150130)($a2)
/* 123708 802800C8 27A5008E */ addiu $a1, $sp, 0x8e
/* 12370C 802800CC E7A40010 */ swc1 $f4, 0x10($sp)
/* 123710 802800D0 E7A60014 */ swc1 $f6, 0x14($sp)
/* 123714 802800D4 24840040 */ addiu $a0, $a0, 0x40
/* 123718 802800D8 0C033CCC */ jal guPerspective
/* 12371C 802800DC E7A80018 */ swc1 $f8, 0x18($sp)
/* 123720 802800E0 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 123724 802800E4 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 123728 802800E8 8C620000 */ lw $v0, ($v1)
/* 12372C 802800EC 3C0BB400 */ lui $t3, 0xb400
/* 123730 802800F0 3C0E0103 */ lui $t6, (0x01030040 >> 16) # lui $t6, 0x103
/* 123734 802800F4 24590008 */ addiu $t9, $v0, 8
/* 123738 802800F8 AC790000 */ sw $t9, ($v1)
/* 12373C 802800FC AC4B0000 */ sw $t3, ($v0)
/* 123740 80280100 97AC008E */ lhu $t4, 0x8e($sp)
/* 123744 80280104 3C0A8015 */ lui $t2, %hi(gGfxPool) # $t2, 0x8015
/* 123748 80280108 35CE0040 */ ori $t6, (0x01030040 & 0xFFFF) # ori $t6, $t6, 0x40
/* 12374C 8028010C AC4C0004 */ sw $t4, 4($v0)
/* 123750 80280110 8C620000 */ lw $v0, ($v1)
/* 123754 80280114 254AEF40 */ addiu $t2, %lo(gGfxPool) # addiu $t2, $t2, -0x10c0
/* 123758 80280118 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 12375C 8028011C 244D0008 */ addiu $t5, $v0, 8
/* 123760 80280120 AC6D0000 */ sw $t5, ($v1)
/* 123764 80280124 AC4E0000 */ sw $t6, ($v0)
/* 123768 80280128 8D4F0000 */ lw $t7, ($t2)
/* 12376C 8028012C 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 123770 80280130 3C058016 */ lui $a1, %hi(D_801646F0) # $a1, 0x8016
/* 123774 80280134 25F80040 */ addiu $t8, $t7, 0x40
/* 123778 80280138 0301C824 */ and $t9, $t8, $at
/* 12377C 8028013C AC590004 */ sw $t9, 4($v0)
/* 123780 80280140 3C018016 */ lui $at, %hi(D_801646FC) # $at, 0x8016
/* 123784 80280144 C42A46FC */ lwc1 $f10, %lo(D_801646FC)($at)
/* 123788 80280148 3C018016 */ lui $at, %hi(D_80164700) # $at, 0x8016
/* 12378C 8028014C C4304700 */ lwc1 $f16, %lo(D_80164700)($at)
/* 123790 80280150 3C018016 */ lui $at, %hi(D_80164704) # $at, 0x8016
/* 123794 80280154 C4324704 */ lwc1 $f18, %lo(D_80164704)($at)
/* 123798 80280158 3C018016 */ lui $at, %hi(D_80164708) # $at, 0x8016
/* 12379C 8028015C C4244708 */ lwc1 $f4, %lo(D_80164708)($at)
/* 1237A0 80280160 3C018016 */ lui $at, %hi(D_8016470C) # $at, 0x8016
/* 1237A4 80280164 C426470C */ lwc1 $f6, %lo(D_8016470C)($at)
/* 1237A8 80280168 3C018016 */ lui $at, %hi(D_80164710) # $at, 0x8016
/* 1237AC 8028016C C4284710 */ lwc1 $f8, %lo(D_80164710)($at)
/* 1237B0 80280170 8D440000 */ lw $a0, ($t2)
/* 1237B4 80280174 3C068016 */ lui $a2, %hi(D_801646F4) # $a2, 0x8016
/* 1237B8 80280178 3C078016 */ lui $a3, %hi(D_801646F8) # $a3, 0x8016
/* 1237BC 8028017C 8CE746F8 */ lw $a3, %lo(D_801646F8)($a3)
/* 1237C0 80280180 8CC646F4 */ lw $a2, %lo(D_801646F4)($a2)
/* 1237C4 80280184 8CA546F0 */ lw $a1, %lo(D_801646F0)($a1)
/* 1237C8 80280188 E7AA0010 */ swc1 $f10, 0x10($sp)
/* 1237CC 8028018C E7B00014 */ swc1 $f16, 0x14($sp)
/* 1237D0 80280190 E7B20018 */ swc1 $f18, 0x18($sp)
/* 1237D4 80280194 E7A4001C */ swc1 $f4, 0x1c($sp)
/* 1237D8 80280198 E7A60020 */ swc1 $f6, 0x20($sp)
/* 1237DC 8028019C E7A80024 */ swc1 $f8, 0x24($sp)
/* 1237E0 802801A0 0C033D92 */ jal guLookAt
/* 1237E4 802801A4 248401C0 */ addiu $a0, $a0, 0x1c0
/* 1237E8 802801A8 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 1237EC 802801AC 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 1237F0 802801B0 8C620000 */ lw $v0, ($v1)
/* 1237F4 802801B4 3C0C0101 */ lui $t4, (0x01010040 >> 16) # lui $t4, 0x101
/* 1237F8 802801B8 358C0040 */ ori $t4, (0x01010040 & 0xFFFF) # ori $t4, $t4, 0x40
/* 1237FC 802801BC 244B0008 */ addiu $t3, $v0, 8
/* 123800 802801C0 AC6B0000 */ sw $t3, ($v1)
/* 123804 802801C4 3C0D8015 */ lui $t5, %hi(gGfxPool) # $t5, 0x8015
/* 123808 802801C8 AC4C0000 */ sw $t4, ($v0)
/* 12380C 802801CC 8DADEF40 */ lw $t5, %lo(gGfxPool)($t5)
/* 123810 802801D0 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 123814 802801D4 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 123818 802801D8 25AE01C0 */ addiu $t6, $t5, 0x1c0
/* 12381C 802801DC 01C17824 */ and $t7, $t6, $at
/* 123820 802801E0 3C18800E */ lui $t8, %hi(D_800DC644) # $t8, 0x800e
/* 123824 802801E4 AC4F0004 */ sw $t7, 4($v0)
/* 123828 802801E8 8718C644 */ lh $t8, %lo(D_800DC644)($t8)
/* 12382C 802801EC 3C01800E */ lui $at, %hi(gCurrentCourseId) # $at, 0x800e
/* 123830 802801F0 27A40044 */ addiu $a0, $sp, 0x44
/* 123834 802801F4 0C0AD4F2 */ jal func_802B53C8
/* 123838 802801F8 A438C5A0 */ sh $t8, %lo(gCurrentCourseId)($at)
/* 12383C 802801FC 27A40044 */ addiu $a0, $sp, 0x44
/* 123840 80280200 0C0AD3FE */ jal func_802B4FF8
/* 123844 80280204 00002825 */ move $a1, $zero
/* 123848 80280208 3C04800E */ lui $a0, %hi(D_800DC5EC) # $a0, 0x800e
/* 12384C 8028020C 0C0A568E */ jal func_80295A38
/* 123850 80280210 8C84C5EC */ lw $a0, %lo(D_800DC5EC)($a0)
/* 123854 80280214 3C04800E */ lui $a0, %hi(D_800DC5EC) # $a0, 0x800e
/* 123858 80280218 0C0A8C02 */ jal func_802A3008
/* 12385C 8028021C 8C84C5EC */ lw $a0, %lo(D_800DC5EC)($a0)
/* 123860 80280220 0C016024 */ jal func_80058090
/* 123864 80280224 00002025 */ move $a0, $zero
/* 123868 80280228 0C01614E */ jal func_80058538
/* 12386C 8028022C 00002025 */ move $a0, $zero
/* 123870 80280230 0C0A1330 */ jal func_80284CC0
/* 123874 80280234 00000000 */ nop
/* 123878 80280238 0C0A0710 */ jal func_80281C40
/* 12387C 8028023C 00000000 */ nop
/* 123880 80280240 0C0A8F8F */ jal func_802A3E3C
/* 123884 80280244 00000000 */ nop
/* 123888 80280248 0C024FC4 */ jal func_80093F10
/* 12388C 8028024C 00000000 */ nop
/* 123890 80280250 0C0A8F8F */ jal func_802A3E3C
/* 123894 80280254 00000000 */ nop
/* 123898 80280258 8FBF002C */ lw $ra, 0x2c($sp)
/* 12389C 8028025C 27BD0090 */ addiu $sp, $sp, 0x90
/* 1238A0 80280260 03E00008 */ jr $ra
/* 1238A4 80280264 00000000 */ nop
glabel func_80280268
/* 1238A8 80280268 240E0001 */ li $t6, 1
/* 1238AC 8028026C 3C01800E */ lui $at, %hi(D_800DC5C0) # $at, 0x800e
/* 1238B0 80280270 A42EC5C0 */ sh $t6, %lo(D_800DC5C0)($at)
/* 1238B4 80280274 3C01800E */ lui $at, %hi(D_800DC5C4) # $at, 0x800e
/* 1238B8 80280278 240F0005 */ li $t7, 5
/* 1238BC 8028027C A42FC5C4 */ sh $t7, %lo(D_800DC5C4)($at)
/* 1238C0 80280280 3C018028 */ lui $at, %hi(D_802874A0) # $at, 0x8028
/* 1238C4 80280284 24180001 */ li $t8, 1
/* 1238C8 80280288 04800004 */ bltz $a0, .L8028029C
/* 1238CC 8028028C AC3874A0 */ sw $t8, %lo(D_802874A0)($at)
/* 1238D0 80280290 28810014 */ slti $at, $a0, 0x14
/* 1238D4 80280294 14200002 */ bnez $at, .L802802A0
/* 1238D8 80280298 00000000 */ nop
.L8028029C:
/* 1238DC 8028029C 00002025 */ move $a0, $zero
.L802802A0:
/* 1238E0 802802A0 3C01800E */ lui $at, 0x800e
/* 1238E4 802802A4 03E00008 */ jr $ra
/* 1238E8 802802A8 A424C644 */ sh $a0, -0x39bc($at)
glabel func_802802AC
/* 1238EC 802802AC 3C03800E */ lui $v1, %hi(D_800DC5C0) # $v1, 0x800e
/* 1238F0 802802B0 3C018028 */ lui $at, %hi(D_802874A0) # $at, 0x8028
/* 1238F4 802802B4 2463C5C0 */ addiu $v1, %lo(D_800DC5C0) # addiu $v1, $v1, -0x3a40
/* 1238F8 802802B8 AC2074A0 */ sw $zero, %lo(D_802874A0)($at)
/* 1238FC 802802BC 946E0000 */ lhu $t6, ($v1)
/* 123900 802802C0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 123904 802802C4 AFBF0014 */ sw $ra, 0x14($sp)
/* 123908 802802C8 11C00010 */ beqz $t6, .L8028030C
/* 12390C 802802CC 3C018028 */ lui $at, 0x8028
/* 123910 802802D0 3C02800E */ lui $v0, %hi(D_800DC5C4) # $v0, 0x800e
/* 123914 802802D4 2442C5C4 */ addiu $v0, %lo(D_800DC5C4) # addiu $v0, $v0, -0x3a3c
/* 123918 802802D8 944F0000 */ lhu $t7, ($v0)
/* 12391C 802802DC 24080009 */ li $t0, 9
/* 123920 802802E0 3C01800E */ lui $at, %hi(D_800DC524) # $at, 0x800e
/* 123924 802802E4 25F8FFFF */ addiu $t8, $t7, -1
/* 123928 802802E8 3319FFFF */ andi $t9, $t8, 0xffff
/* 12392C 802802EC 17200048 */ bnez $t9, .L80280410
/* 123930 802802F0 A4580000 */ sh $t8, ($v0)
/* 123934 802802F4 A4600000 */ sh $zero, ($v1)
/* 123938 802802F8 AC28C524 */ sw $t0, %lo(D_800DC524)($at)
/* 12393C 802802FC 3C01800E */ lui $at, %hi(D_800E74FC) # $at, 0x800e
/* 123940 80280300 240900FF */ li $t1, 255
/* 123944 80280304 10000042 */ b .L80280410
/* 123948 80280308 AC29C50C */ sw $t1, %lo(D_800DC50C)($at)
.L8028030C:
/* 12394C 8028030C 3C048016 */ lui $a0, %hi(D_801646F0) # $a0, 0x8016
/* 123950 80280310 AC2074FC */ sw $zero, %lo(D_800E74FC)($at)
/* 123954 80280314 0C0A0D92 */ jal func_80283648
/* 123958 80280318 248446F0 */ addiu $a0, %lo(D_801646F0) # addiu $a0, $a0, 0x46f0
/* 12395C 8028031C 3C018016 */ lui $at, %hi(D_801646FC) # $at, 0x8016
/* 123960 80280320 C42446FC */ lwc1 $f4, %lo(D_801646FC)($at)
/* 123964 80280324 3C018016 */ lui $at, %hi(D_801646F0) # $at, 0x8016
/* 123968 80280328 C42646F0 */ lwc1 $f6, %lo(D_801646F0)($at)
/* 12396C 8028032C 3C018016 */ lui $at, %hi(D_80164700) # $at, 0x8016
/* 123970 80280330 C4284700 */ lwc1 $f8, %lo(D_80164700)($at)
/* 123974 80280334 3C018016 */ lui $at, %hi(D_801646F4) # $at, 0x8016
/* 123978 80280338 C42A46F4 */ lwc1 $f10, %lo(D_801646F4)($at)
/* 12397C 8028033C 3C018016 */ lui $at, %hi(D_80164704) # $at, 0x8016
/* 123980 80280340 C4324704 */ lwc1 $f18, %lo(D_80164704)($at)
/* 123984 80280344 46062301 */ sub.s $f12, $f4, $f6
/* 123988 80280348 3C018016 */ lui $at, %hi(D_801646F8) # $at, 0x8016
/* 12398C 8028034C C42446F8 */ lwc1 $f4, %lo(D_801646F8)($at)
/* 123990 80280350 460A4401 */ sub.s $f16, $f8, $f10
/* 123994 80280354 E7AC0020 */ swc1 $f12, 0x20($sp)
/* 123998 80280358 46049381 */ sub.s $f14, $f18, $f4
/* 12399C 8028035C E7B0001C */ swc1 $f16, 0x1c($sp)
/* 1239A0 80280360 0C0ADE0C */ jal func_802B7830
/* 1239A4 80280364 E7AE0018 */ swc1 $f14, 0x18($sp)
/* 1239A8 80280368 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 1239AC 8028036C C7AE0018 */ lwc1 $f14, 0x18($sp)
/* 1239B0 80280370 3C018016 */ lui $at, %hi(D_80164716) # $at, 0x8016
/* 1239B4 80280374 46000182 */ mul.s $f6, $f0, $f0
/* 1239B8 80280378 A4224716 */ sh $v0, %lo(D_80164716)($at)
/* 1239BC 8028037C 460E7202 */ mul.s $f8, $f14, $f14
/* 1239C0 80280380 0C033850 */ jal sqrtf
/* 1239C4 80280384 46083300 */ add.s $f12, $f6, $f8
/* 1239C8 80280388 46000306 */ mov.s $f12, $f0
/* 1239CC 8028038C 0C0ADE0C */ jal func_802B7830
/* 1239D0 80280390 C7AE001C */ lwc1 $f14, 0x1c($sp)
/* 1239D4 80280394 3C0A8028 */ lui $t2, %hi(D_802874A0) # $t2, 0x8028
/* 1239D8 80280398 8D4A74A0 */ lw $t2, %lo(D_802874A0)($t2)
/* 1239DC 8028039C 3C018016 */ lui $at, %hi(D_80164714) # $at, 0x8016
/* 1239E0 802803A0 A4224714 */ sh $v0, %lo(D_80164714)($at)
/* 1239E4 802803A4 3C018016 */ lui $at, %hi(D_80164718) # $at, 0x8016
/* 1239E8 802803A8 11400007 */ beqz $t2, .L802803C8
/* 1239EC 802803AC A4204718 */ sh $zero, %lo(D_80164718)($at)
/* 1239F0 802803B0 3C02800E */ lui $v0, %hi(D_800DC5E4) # $v0, 0x800e
/* 1239F4 802803B4 2442C5E4 */ addiu $v0, %lo(D_800DC5E4) # addiu $v0, $v0, -0x3a1c
/* 1239F8 802803B8 944B0000 */ lhu $t3, ($v0)
/* 1239FC 802803BC 256C0001 */ addiu $t4, $t3, 1
/* 123A00 802803C0 10000013 */ b .L80280410
/* 123A04 802803C4 A44C0000 */ sh $t4, ($v0)
.L802803C8:
/* 123A08 802803C8 0C0A0000 */ jal func_80280000
/* 123A0C 802803CC 00000000 */ nop
/* 123A10 802803D0 0C0A000E */ jal func_80280038
/* 123A14 802803D4 00000000 */ nop
/* 123A18 802803D8 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015
/* 123A1C 802803DC 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298
/* 123A20 802803E0 8CA20000 */ lw $v0, ($a1)
/* 123A24 802803E4 3C0EE900 */ lui $t6, 0xe900
/* 123A28 802803E8 3C18B800 */ lui $t8, 0xb800
/* 123A2C 802803EC 244D0008 */ addiu $t5, $v0, 8
/* 123A30 802803F0 ACAD0000 */ sw $t5, ($a1)
/* 123A34 802803F4 AC400004 */ sw $zero, 4($v0)
/* 123A38 802803F8 AC4E0000 */ sw $t6, ($v0)
/* 123A3C 802803FC 8CA20000 */ lw $v0, ($a1)
/* 123A40 80280400 244F0008 */ addiu $t7, $v0, 8
/* 123A44 80280404 ACAF0000 */ sw $t7, ($a1)
/* 123A48 80280408 AC400004 */ sw $zero, 4($v0)
/* 123A4C 8028040C AC580000 */ sw $t8, ($v0)
.L80280410:
/* 123A50 80280410 8FBF0014 */ lw $ra, 0x14($sp)
/* 123A54 80280414 27BD0028 */ addiu $sp, $sp, 0x28
/* 123A58 80280418 03E00008 */ jr $ra
/* 123A5C 8028041C 00000000 */ nop
glabel func_80280420
/* 123A60 80280420 3C0E800E */ lui $t6, %hi(D_800DC644) # $t6, 0x800e
/* 123A64 80280424 85CEC644 */ lh $t6, %lo(D_800DC644)($t6)
/* 123A68 80280428 3C01800E */ lui $at, %hi(gCurrentCourseId) # $at, 0x800e
/* 123A6C 8028042C 24020001 */ li $v0, 1
/* 123A70 80280430 A42EC5A0 */ sh $t6, %lo(gCurrentCourseId)($at)
/* 123A74 80280434 3C01800E */ lui $at, %hi(D_800DC5B4) # $at, 0x800e
/* 123A78 80280438 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 123A7C 8028043C A422C5B4 */ sh $v0, %lo(D_800DC5B4)($at)
/* 123A80 80280440 AFBF0014 */ sw $ra, 0x14($sp)
/* 123A84 80280444 3C01800E */ lui $at, %hi(D_800DC518) # $at, 0x800e
/* 123A88 80280448 0C0A9346 */ jal func_802A4D18
/* 123A8C 8028044C A422C518 */ sh $v0, %lo(D_800DC518)($at)
/* 123A90 80280450 0C0A9D2F */ jal func_802A74BC
/* 123A94 80280454 00000000 */ nop
/* 123A98 80280458 3C014270 */ li $at, 0x42700000 # 60.000000
/* 123A9C 8028045C 44810000 */ mtc1 $at, $f0
/* 123AA0 80280460 3C018016 */ lui $at, %hi(D_801647A4) # $at, 0x8016
/* 123AA4 80280464 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e
/* 123AA8 80280468 E42047A4 */ swc1 $f0, %lo(D_801647A4)($at)
/* 123AAC 8028046C 3C018015 */ lui $at, %hi(D_80150130) # $at, 0x8015
/* 123AB0 80280470 2442C5EC */ addiu $v0, %lo(D_800DC5EC) # addiu $v0, $v0, -0x3a14
/* 123AB4 80280474 E4200130 */ swc1 $f0, %lo(D_80150130)($at)
/* 123AB8 80280478 8C580000 */ lw $t8, ($v0)
/* 123ABC 8028047C 240F0140 */ li $t7, 320
/* 123AC0 80280480 241900F0 */ li $t9, 240
/* 123AC4 80280484 A70F002C */ sh $t7, 0x2c($t8)
/* 123AC8 80280488 8C480000 */ lw $t0, ($v0)
/* 123ACC 8028048C 240900A0 */ li $t1, 160
/* 123AD0 80280490 240B0078 */ li $t3, 120
/* 123AD4 80280494 A519002E */ sh $t9, 0x2e($t0)
/* 123AD8 80280498 8C4A0000 */ lw $t2, ($v0)
/* 123ADC 8028049C 3C01800E */ lui $at, %hi(D_800DC530) # $at, 0x800e
/* 123AE0 802804A0 3C0D8016 */ lui $t5, %hi(D_8015F734) # $t5, 0x8016
/* 123AE4 802804A4 A5490030 */ sh $t1, 0x30($t2)
/* 123AE8 802804A8 8C4C0000 */ lw $t4, ($v0)
/* 123AEC 802804AC 3C04800E */ lui $a0, %hi(gCurrentCourseId) # $a0, 0x800e
/* 123AF0 802804B0 A58B0032 */ sh $t3, 0x32($t4)
/* 123AF4 802804B4 AC20C530 */ sw $zero, %lo(D_800DC530)($at)
/* 123AF8 802804B8 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e
/* 123AFC 802804BC 8DADF734 */ lw $t5, %lo(D_8015F734)($t5)
/* 123B00 802804C0 AC20C52C */ sw $zero, %lo(D_800DC52C)($at)
/* 123B04 802804C4 3C018016 */ lui $at, %hi(D_8015F728) # $at, 0x8016
/* 123B08 802804C8 8484C5A0 */ lh $a0, %lo(gCurrentCourseId)($a0)
/* 123B0C 802804CC 0C0AAA46 */ jal load_course
/* 123B10 802804D0 AC2DF728 */ sw $t5, %lo(D_8015F728)($at)
/* 123B14 802804D4 3C0E8016 */ lui $t6, %hi(D_8015F728) # $t6, 0x8016
/* 123B18 802804D8 8DCEF728 */ lw $t6, %lo(D_8015F728)($t6)
/* 123B1C 802804DC 3C018016 */ lui $at, %hi(D_8015F730) # $at, 0x8016
/* 123B20 802804E0 3C040082 */ lui $a0, %hi(D_00821D10) # $a0, 0x82
/* 123B24 802804E4 3C050082 */ lui $a1, %hi(D_00825800) # $a1, 0x82
/* 123B28 802804E8 24A55800 */ addiu $a1, %lo(D_00825800) # addiu $a1, $a1, 0x5800
/* 123B2C 802804EC 24841D10 */ addiu $a0, %lo(D_00821D10) # addiu $a0, $a0, 0x1d10
/* 123B30 802804F0 0C0AAA23 */ jal func_802AA88C
/* 123B34 802804F4 AC2EF730 */ sw $t6, %lo(D_8015F730)($at)
/* 123B38 802804F8 2404000B */ li $a0, 11
/* 123B3C 802804FC 0C0A9EE5 */ jal set_segment_base_addr
/* 123B40 80280500 00402825 */ move $a1, $v0
/* 123B44 80280504 3C0144AF */ li $at, 0x44AF0000 # 1400.000000
/* 123B48 80280508 44811000 */ mtc1 $at, $f2
/* 123B4C 8028050C 2403EA5F */ li $v1, -5537
/* 123B50 80280510 3C018016 */ lui $at, %hi(D_8015F6EA) # $at, 0x8016
/* 123B54 80280514 A423F6EA */ sh $v1, %lo(D_8015F6EA)($at)
/* 123B58 80280518 3C018016 */ lui $at, %hi(D_8015F6EE) # $at, 0x8016
/* 123B5C 8028051C A423F6EE */ sh $v1, %lo(D_8015F6EE)($at)
/* 123B60 80280520 3C018016 */ lui $at, %hi(D_8015F6F2) # $at, 0x8016
/* 123B64 80280524 A423F6F2 */ sh $v1, %lo(D_8015F6F2)($at)
/* 123B68 80280528 240415A1 */ li $a0, 5537
/* 123B6C 8028052C 3C018016 */ lui $at, %hi(D_8015F6E8) # $at, 0x8016
/* 123B70 80280530 A424F6E8 */ sh $a0, %lo(D_8015F6E8)($at)
/* 123B74 80280534 3C018016 */ lui $at, %hi(D_8015F6EC) # $at, 0x8016
/* 123B78 80280538 A424F6EC */ sh $a0, %lo(D_8015F6EC)($at)
/* 123B7C 8028053C 3C018016 */ lui $at, %hi(D_8015F6F0) # $at, 0x8016
/* 123B80 80280540 A424F6F0 */ sh $a0, %lo(D_8015F6F0)($at)
/* 123B84 80280544 3C018016 */ lui $at, %hi(D_8015F59C) # $at, 0x8016
/* 123B88 80280548 AC20F59C */ sw $zero, %lo(D_8015F59C)($at)
/* 123B8C 8028054C 3C018016 */ lui $at, %hi(D_8015F5A0) # $at, 0x8016
/* 123B90 80280550 AC20F5A0 */ sw $zero, %lo(D_8015F5A0)($at)
/* 123B94 80280554 3C018016 */ lui $at, %hi(D_8015F58C) # $at, 0x8016
/* 123B98 80280558 AC20F58C */ sw $zero, %lo(D_8015F58C)($at)
/* 123B9C 8028055C 3C018016 */ lui $at, %hi(D_8015F588) # $at, 0x8016
/* 123BA0 80280560 A420F588 */ sh $zero, %lo(D_8015F588)($at)
/* 123BA4 80280564 3C01800E */ lui $at, %hi(D_800DC5BC) # $at, 0x800e
/* 123BA8 80280568 A420C5BC */ sh $zero, %lo(D_800DC5BC)($at)
/* 123BAC 8028056C 3C0F8016 */ lui $t7, %hi(D_8015F728) # $t7, 0x8016
/* 123BB0 80280570 8DEFF728 */ lw $t7, %lo(D_8015F728)($t7)
/* 123BB4 80280574 3C01800E */ lui $at, %hi(D_800DC5C8) # $at, 0x800e
/* 123BB8 80280578 A420C5C8 */ sh $zero, %lo(D_800DC5C8)($at)
/* 123BBC 8028057C 3C018016 */ lui $at, %hi(D_8015F580) # $at, 0x8016
/* 123BC0 80280580 AC2FF580 */ sw $t7, %lo(D_8015F580)($at)
/* 123BC4 80280584 3C018016 */ lui $at, %hi(D_801646F0) # $at, 0x8016
/* 123BC8 80280588 E42246F0 */ swc1 $f2, %lo(D_801646F0)($at)
/* 123BCC 8028058C 3C014396 */ li $at, 0x43960000 # 300.000000
/* 123BD0 80280590 44812000 */ mtc1 $at, $f4
/* 123BD4 80280594 3C018016 */ lui $at, %hi(D_801646F4) # $at, 0x8016
/* 123BD8 80280598 44800000 */ mtc1 $zero, $f0
/* 123BDC 8028059C E42446F4 */ swc1 $f4, %lo(D_801646F4)($at)
/* 123BE0 802805A0 3C018016 */ lui $at, %hi(D_801646F8) # $at, 0x8016
/* 123BE4 802805A4 E42246F8 */ swc1 $f2, %lo(D_801646F8)($at)
/* 123BE8 802805A8 3C018016 */ lui $at, %hi(D_801646FC) # $at, 0x8016
/* 123BEC 802805AC E42046FC */ swc1 $f0, %lo(D_801646FC)($at)
/* 123BF0 802805B0 3C018016 */ lui $at, %hi(D_80164700) # $at, 0x8016
/* 123BF4 802805B4 E4204700 */ swc1 $f0, %lo(D_80164700)($at)
/* 123BF8 802805B8 3C018016 */ lui $at, %hi(D_80164704) # $at, 0x8016
/* 123BFC 802805BC E4204704 */ swc1 $f0, %lo(D_80164704)($at)
/* 123C00 802805C0 3C018016 */ lui $at, %hi(D_80164708) # $at, 0x8016
/* 123C04 802805C4 E4204708 */ swc1 $f0, %lo(D_80164708)($at)
/* 123C08 802805C8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 123C0C 802805CC 44813000 */ mtc1 $at, $f6
/* 123C10 802805D0 3C018016 */ lui $at, %hi(D_8016470C) # $at, 0x8016
/* 123C14 802805D4 E426470C */ swc1 $f6, %lo(D_8016470C)($at)
/* 123C18 802805D8 3C018016 */ lui $at, %hi(D_80164710) # $at, 0x8016
/* 123C1C 802805DC 0C0A0D0C */ jal func_80283430
/* 123C20 802805E0 E4204710 */ swc1 $f0, %lo(D_80164710)($at)
/* 123C24 802805E4 0C000C10 */ jal func_80003040
/* 123C28 802805E8 00000000 */ nop
/* 123C2C 802805EC 0C01BA70 */ jal func_8006E9C0
/* 123C30 802805F0 00000000 */ nop
/* 123C34 802805F4 0C024F98 */ jal func_80093E60
/* 123C38 802805F8 00000000 */ nop
/* 123C3C 802805FC 0C0249A2 */ jal func_80092688
/* 123C40 80280600 00000000 */ nop
/* 123C44 80280604 3C188016 */ lui $t8, %hi(gHeapEndPtr) # $t8, 0x8016
/* 123C48 80280608 3C198016 */ lui $t9, %hi(D_8015F728) # $t9, 0x8016
/* 123C4C 8028060C 8F39F728 */ lw $t9, %lo(D_8015F728)($t9)
/* 123C50 80280610 8F18F72C */ lw $t8, %lo(gHeapEndPtr)($t8)
/* 123C54 80280614 3C01447A */ li $at, 0x447A0000 # 1000.000000
/* 123C58 80280618 44818000 */ mtc1 $at, $f16
/* 123C5C 8028061C 03194823 */ subu $t1, $t8, $t9
/* 123C60 80280620 44894000 */ mtc1 $t1, $f8
/* 123C64 80280624 8FBF0014 */ lw $ra, 0x14($sp)
/* 123C68 80280628 3C028016 */ lui $v0, %hi(D_801625F8) # $v0, 0x8016
/* 123C6C 8028062C 468042A0 */ cvt.s.w $f10, $f8
/* 123C70 80280630 244225F8 */ addiu $v0, %lo(D_801625F8) # addiu $v0, $v0, 0x25f8
/* 123C74 80280634 AC490000 */ sw $t1, ($v0)
/* 123C78 80280638 3C018016 */ lui $at, %hi(D_801625FC)
/* 123C7C 8028063C 27BD0018 */ addiu $sp, $sp, 0x18
/* 123C80 80280640 46105483 */ div.s $f18, $f10, $f16
/* 123C84 80280644 03E00008 */ jr $ra
/* 123C88 80280648 E43225FC */ swc1 $f18, %lo(D_801625FC)($at)
/* 123C8C 8028064C 00000000 */ nop

1109
asm/code_80280650.s Normal file

File diff suppressed because it is too large Load Diff

108
asm/code_80281610.s Normal file
View File

@ -0,0 +1,108 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_80281610
/* 124C50 80281610 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 124C54 80281614 AFBF0014 */ sw $ra, 0x14($sp)
/* 124C58 80281618 3C048016 */ lui $a0, %hi(D_801646F0) # $a0, 0x8016
/* 124C5C 8028161C 0C0A0D92 */ jal func_80283648
/* 124C60 80281620 248446F0 */ addiu $a0, %lo(D_801646F0) # addiu $a0, $a0, 0x46f0
/* 124C64 80281624 3C018016 */ lui $at, %hi(D_801646FC) # $at, 0x8016
/* 124C68 80281628 C42446FC */ lwc1 $f4, %lo(D_801646FC)($at)
/* 124C6C 8028162C 3C018016 */ lui $at, %hi(D_801646F0) # $at, 0x8016
/* 124C70 80281630 C42646F0 */ lwc1 $f6, %lo(D_801646F0)($at)
/* 124C74 80281634 3C018016 */ lui $at, %hi(D_80164700) # $at, 0x8016
/* 124C78 80281638 C4284700 */ lwc1 $f8, %lo(D_80164700)($at)
/* 124C7C 8028163C 3C018016 */ lui $at, %hi(D_801646F4) # $at, 0x8016
/* 124C80 80281640 C42A46F4 */ lwc1 $f10, %lo(D_801646F4)($at)
/* 124C84 80281644 3C018016 */ lui $at, %hi(D_80164704) # $at, 0x8016
/* 124C88 80281648 C4324704 */ lwc1 $f18, %lo(D_80164704)($at)
/* 124C8C 8028164C 46062301 */ sub.s $f12, $f4, $f6
/* 124C90 80281650 3C018016 */ lui $at, %hi(D_801646F8) # $at, 0x8016
/* 124C94 80281654 C42446F8 */ lwc1 $f4, %lo(D_801646F8)($at)
/* 124C98 80281658 460A4401 */ sub.s $f16, $f8, $f10
/* 124C9C 8028165C E7AC0020 */ swc1 $f12, 0x20($sp)
/* 124CA0 80281660 46049381 */ sub.s $f14, $f18, $f4
/* 124CA4 80281664 E7B0001C */ swc1 $f16, 0x1c($sp)
/* 124CA8 80281668 0C0ADE0C */ jal func_802B7830
/* 124CAC 8028166C E7AE0018 */ swc1 $f14, 0x18($sp)
/* 124CB0 80281670 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 124CB4 80281674 C7AE0018 */ lwc1 $f14, 0x18($sp)
/* 124CB8 80281678 3C018016 */ lui $at, %hi(D_80164716) # $at, 0x8016
/* 124CBC 8028167C 46000182 */ mul.s $f6, $f0, $f0
/* 124CC0 80281680 A4224716 */ sh $v0, %lo(D_80164716)($at)
/* 124CC4 80281684 460E7202 */ mul.s $f8, $f14, $f14
/* 124CC8 80281688 0C033850 */ jal sqrtf
/* 124CCC 8028168C 46083300 */ add.s $f12, $f6, $f8
/* 124CD0 80281690 46000306 */ mov.s $f12, $f0
/* 124CD4 80281694 0C0ADE0C */ jal func_802B7830
/* 124CD8 80281698 C7AE001C */ lwc1 $f14, 0x1c($sp)
/* 124CDC 8028169C 8FBF0014 */ lw $ra, 0x14($sp)
/* 124CE0 802816A0 3C018016 */ lui $at, %hi(D_80164714) # $at, 0x8016
/* 124CE4 802816A4 A4224714 */ sh $v0, %lo(D_80164714)($at)
/* 124CE8 802816A8 3C018016 */ lui $at, %hi(D_80164718) # $at, 0x8016
/* 124CEC 802816AC A4204718 */ sh $zero, %lo(D_80164718)($at)
/* 124CF0 802816B0 03E00008 */ jr $ra
/* 124CF4 802816B4 27BD0028 */ addiu $sp, $sp, 0x28
glabel func_802816B8
/* 124CF8 802816B8 3C018028 */ lui $at, %hi(D_80286B90) # $at, 0x8028
/* 124CFC 802816BC C4246B90 */ lwc1 $f4, %lo(D_80286B90)($at)
/* 124D00 802816C0 3C014198 */ li $at, 0x41980000 # 19.000000
/* 124D04 802816C4 44813000 */ mtc1 $at, $f6
/* 124D08 802816C8 3C028016 */ lui $v0, %hi(D_801646F0) # $v0, 0x8016
/* 124D0C 802816CC 244246F0 */ addiu $v0, %lo(D_801646F0) # addiu $v0, $v0, 0x46f0
/* 124D10 802816D0 3C018028 */ lui $at, %hi(D_80286B94) # $at, 0x8028
/* 124D14 802816D4 E4440000 */ swc1 $f4, ($v0)
/* 124D18 802816D8 E4460004 */ swc1 $f6, 4($v0)
/* 124D1C 802816DC C4286B94 */ lwc1 $f8, %lo(D_80286B94)($at)
/* 124D20 802816E0 3C018028 */ lui $at, %hi(D_80286B98) # $at, 0x8028
/* 124D24 802816E4 44800000 */ mtc1 $zero, $f0
/* 124D28 802816E8 E4480008 */ swc1 $f8, 8($v0)
/* 124D2C 802816EC C42A6B98 */ lwc1 $f10, %lo(D_80286B98)($at)
/* 124D30 802816F0 3C0141A8 */ li $at, 0x41A80000 # 21.000000
/* 124D34 802816F4 44818000 */ mtc1 $at, $f16
/* 124D38 802816F8 3C01C404 */ li $at, 0xC4040000 # -528.000000
/* 124D3C 802816FC 44819000 */ mtc1 $at, $f18
/* 124D40 80281700 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 124D44 80281704 44812000 */ mtc1 $at, $f4
/* 124D48 80281708 3C014220 */ li $at, 0x42200000 # 40.000000
/* 124D4C 8028170C 44813000 */ mtc1 $at, $f6
/* 124D50 80281710 3C018015 */ lui $at, %hi(D_80150130) # $at, 0x8015
/* 124D54 80281714 E4400018 */ swc1 $f0, 0x18($v0)
/* 124D58 80281718 E4400020 */ swc1 $f0, 0x20($v0)
/* 124D5C 8028171C E44A000C */ swc1 $f10, 0xc($v0)
/* 124D60 80281720 E4500010 */ swc1 $f16, 0x10($v0)
/* 124D64 80281724 E4520014 */ swc1 $f18, 0x14($v0)
/* 124D68 80281728 E444001C */ swc1 $f4, 0x1c($v0)
/* 124D6C 8028172C E4260130 */ swc1 $f6, %lo(D_80150130)($at)
/* 124D70 80281730 3C018028 */ lui $at, %hi(D_80286B9C) # $at, 0x8028
/* 124D74 80281734 C4286B9C */ lwc1 $f8, %lo(D_80286B9C)($at)
/* 124D78 80281738 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015
/* 124D7C 8028173C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 124D80 80281740 E4280148 */ swc1 $f8, %lo(D_80150148)($at)
/* 124D84 80281744 3C014040 */ li $at, 0x40400000 # 3.000000
/* 124D88 80281748 44815000 */ mtc1 $at, $f10
/* 124D8C 8028174C 3C018015 */ lui $at, %hi(D_80150150) # $at, 0x8015
/* 124D90 80281750 AFBF0014 */ sw $ra, 0x14($sp)
/* 124D94 80281754 E42A0150 */ swc1 $f10, %lo(D_80150150)($at)
/* 124D98 80281758 3C018028 */ lui $at, %hi(D_80286BA0) # $at, 0x8028
/* 124D9C 8028175C C4306BA0 */ lwc1 $f16, %lo(D_80286BA0)($at)
/* 124DA0 80281760 3C018015 */ lui $at, %hi(D_8015014C) # $at, 0x8015
/* 124DA4 80281764 0C0A0D0C */ jal func_80283430
/* 124DA8 80281768 E430014C */ swc1 $f16, %lo(D_8015014C)($at)
/* 124DAC 8028176C 8FBF0014 */ lw $ra, 0x14($sp)
/* 124DB0 80281770 27BD0018 */ addiu $sp, $sp, 0x18
/* 124DB4 80281774 03E00008 */ jr $ra
/* 124DB8 80281778 00000000 */ nop
/* 124DBC 8028177C 00000000 */ nop

240
asm/code_80281C40.s Normal file
View File

@ -0,0 +1,240 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_80281C40
/* 125280 80281C40 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 125284 80281C44 AFB20020 */ sw $s2, 0x20($sp)
/* 125288 80281C48 3C128028 */ lui $s2, %hi(D_802874FC) # $s2, 0x8028
/* 12528C 80281C4C 265274FC */ addiu $s2, %lo(D_802874FC) # addiu $s2, $s2, 0x74fc
/* 125290 80281C50 8E4E0000 */ lw $t6, ($s2)
/* 125294 80281C54 AFB1001C */ sw $s1, 0x1c($sp)
/* 125298 80281C58 AFBF0024 */ sw $ra, 0x24($sp)
/* 12529C 80281C5C AFB00018 */ sw $s0, 0x18($sp)
/* 1252A0 80281C60 19C0000E */ blez $t6, .L80281C9C
/* 1252A4 80281C64 00008825 */ move $s1, $zero
/* 1252A8 80281C68 3C108028 */ lui $s0, %hi(D_80287560) # $s0, 0x8028
/* 1252AC 80281C6C 26107560 */ addiu $s0, %lo(D_80287560) # addiu $s0, $s0, 0x7560
/* 1252B0 80281C70 86040000 */ lh $a0, ($s0)
.L80281C74:
/* 1252B4 80281C74 86050002 */ lh $a1, 2($s0)
/* 1252B8 80281C78 8E060008 */ lw $a2, 8($s0)
/* 1252BC 80281C7C 0C015E7E */ jal func_800579F8
/* 1252C0 80281C80 8E070004 */ lw $a3, 4($s0)
/* 1252C4 80281C84 8E4F0000 */ lw $t7, ($s2)
/* 1252C8 80281C88 26310001 */ addiu $s1, $s1, 1
/* 1252CC 80281C8C 2610000C */ addiu $s0, $s0, 0xc
/* 1252D0 80281C90 022F082A */ slt $at, $s1, $t7
/* 1252D4 80281C94 5420FFF7 */ bnel $at, $zero, .L80281C74
/* 1252D8 80281C98 86040000 */ lh $a0, ($s0)
.L80281C9C:
/* 1252DC 80281C9C 8FBF0024 */ lw $ra, 0x24($sp)
/* 1252E0 80281CA0 8FB00018 */ lw $s0, 0x18($sp)
/* 1252E4 80281CA4 8FB1001C */ lw $s1, 0x1c($sp)
/* 1252E8 80281CA8 8FB20020 */ lw $s2, 0x20($sp)
/* 1252EC 80281CAC 03E00008 */ jr $ra
/* 1252F0 80281CB0 27BD0028 */ addiu $sp, $sp, 0x28
glabel func_80281CB4
/* 1252F4 80281CB4 3C088028 */ lui $t0, %hi(D_802874FC) # $t0, 0x8028
/* 1252F8 80281CB8 250874FC */ addiu $t0, %lo(D_802874FC) # addiu $t0, $t0, 0x74fc
/* 1252FC 80281CBC 8D020000 */ lw $v0, ($t0)
/* 125300 80281CC0 3C0F8028 */ lui $t7, %hi(D_80287560) # $t7, 0x8028
/* 125304 80281CC4 25EF7560 */ addiu $t7, %lo(D_80287560) # addiu $t7, $t7, 0x7560
/* 125308 80281CC8 2841001E */ slti $at, $v0, 0x1e
/* 12530C 80281CCC 1020000A */ beqz $at, .L80281CF8
/* 125310 80281CD0 00027080 */ sll $t6, $v0, 2
/* 125314 80281CD4 01C27023 */ subu $t6, $t6, $v0
/* 125318 80281CD8 000E7080 */ sll $t6, $t6, 2
/* 12531C 80281CDC 01CF1821 */ addu $v1, $t6, $t7
/* 125320 80281CE0 24580001 */ addiu $t8, $v0, 1
/* 125324 80281CE4 A4640000 */ sh $a0, ($v1)
/* 125328 80281CE8 A4650002 */ sh $a1, 2($v1)
/* 12532C 80281CEC AC670004 */ sw $a3, 4($v1)
/* 125330 80281CF0 AC660008 */ sw $a2, 8($v1)
/* 125334 80281CF4 AD180000 */ sw $t8, ($t0)
.L80281CF8:
/* 125338 80281CF8 03E00008 */ jr $ra
/* 12533C 80281CFC 00000000 */ nop
glabel func_80281D00
/* 125340 80281D00 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 125344 80281D04 AFBF0034 */ sw $ra, 0x34($sp)
/* 125348 80281D08 AFB10030 */ sw $s1, 0x30($sp)
/* 12534C 80281D0C 0C0A94E9 */ jal func_802A53A4
/* 125350 80281D10 AFB0002C */ sw $s0, 0x2c($sp)
/* 125354 80281D14 0C0A8F8F */ jal func_802A3E3C
/* 125358 80281D18 00000000 */ nop
/* 12535C 80281D1C 3C108028 */ lui $s0, %hi(D_80287550) # $s0, 0x8028
/* 125360 80281D20 26107550 */ addiu $s0, %lo(D_80287550) # addiu $s0, $s0, 0x7550
/* 125364 80281D24 8E0E0000 */ lw $t6, ($s0)
/* 125368 80281D28 3401FFFF */ li $at, 65535
/* 12536C 80281D2C 11C10010 */ beq $t6, $at, .L80281D70
/* 125370 80281D30 00000000 */ nop
/* 125374 80281D34 0C00034F */ jal func_80000D3C
/* 125378 80281D38 00002025 */ move $a0, $zero
/* 12537C 80281D3C 3C038028 */ lui $v1, %hi(D_80287554) # $v1, 0x8028
/* 125380 80281D40 24637554 */ addiu $v1, %lo(D_80287554) # addiu $v1, $v1, 0x7554
/* 125384 80281D44 8C620000 */ lw $v0, ($v1)
/* 125388 80281D48 28410004 */ slti $at, $v0, 4
/* 12538C 80281D4C 14200006 */ bnez $at, .L80281D68
/* 125390 80281D50 24580001 */ addiu $t8, $v0, 1
/* 125394 80281D54 3C01800E */ lui $at, %hi(D_800DC5C0) # $at, 0x800e
/* 125398 80281D58 A420C5C0 */ sh $zero, %lo(D_800DC5C0)($at)
/* 12539C 80281D5C 8E0F0000 */ lw $t7, ($s0)
/* 1253A0 80281D60 3C01800E */ lui $at, %hi(D_800DC524) # $at, 0x800e
/* 1253A4 80281D64 AC2FC524 */ sw $t7, %lo(D_800DC524)($at)
.L80281D68:
/* 1253A8 80281D68 10000085 */ b .L80281F80
/* 1253AC 80281D6C AC780000 */ sw $t8, ($v1)
.L80281D70:
/* 1253B0 80281D70 0C0A0543 */ jal func_8028150C
/* 1253B4 80281D74 00000000 */ nop
/* 1253B8 80281D78 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015
/* 1253BC 80281D7C 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298
/* 1253C0 80281D80 8E300000 */ lw $s0, ($s1)
/* 1253C4 80281D84 3C09B700 */ lui $t1, 0xb700
/* 1253C8 80281D88 240A2205 */ li $t2, 8709
/* 1253CC 80281D8C 26190008 */ addiu $t9, $s0, 8
/* 1253D0 80281D90 AE390000 */ sw $t9, ($s1)
/* 1253D4 80281D94 3C018015 */ lui $at, %hi(D_80150150) # $at, 0x8015
/* 1253D8 80281D98 AE0A0004 */ sw $t2, 4($s0)
/* 1253DC 80281D9C AE090000 */ sw $t1, ($s0)
/* 1253E0 80281DA0 C4240150 */ lwc1 $f4, %lo(D_80150150)($at)
/* 1253E4 80281DA4 3C018015 */ lui $at, %hi(D_8015014C) # $at, 0x8015
/* 1253E8 80281DA8 C426014C */ lwc1 $f6, %lo(D_8015014C)($at)
/* 1253EC 80281DAC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 1253F0 80281DB0 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 1253F4 80281DB4 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 1253F8 80281DB8 44814000 */ mtc1 $at, $f8
/* 1253FC 80281DBC 3C068015 */ lui $a2, %hi(D_80150130) # $a2, 0x8015
/* 125400 80281DC0 3C078015 */ lui $a3, %hi(D_80150148) # $a3, 0x8015
/* 125404 80281DC4 8CE70148 */ lw $a3, %lo(D_80150148)($a3)
/* 125408 80281DC8 8CC60130 */ lw $a2, %lo(D_80150130)($a2)
/* 12540C 80281DCC 27A500A6 */ addiu $a1, $sp, 0xa6
/* 125410 80281DD0 E7A40010 */ swc1 $f4, 0x10($sp)
/* 125414 80281DD4 E7A60014 */ swc1 $f6, 0x14($sp)
/* 125418 80281DD8 24840040 */ addiu $a0, $a0, 0x40
/* 12541C 80281DDC 0C033CCC */ jal guPerspective
/* 125420 80281DE0 E7A80018 */ swc1 $f8, 0x18($sp)
/* 125424 80281DE4 8E300000 */ lw $s0, ($s1)
/* 125428 80281DE8 3C0CB400 */ lui $t4, 0xb400
/* 12542C 80281DEC 3C0F0103 */ lui $t7, (0x01030040 >> 16) # lui $t7, 0x103
/* 125430 80281DF0 260B0008 */ addiu $t3, $s0, 8
/* 125434 80281DF4 AE2B0000 */ sw $t3, ($s1)
/* 125438 80281DF8 AE0C0000 */ sw $t4, ($s0)
/* 12543C 80281DFC 97AD00A6 */ lhu $t5, 0xa6($sp)
/* 125440 80281E00 3C088015 */ lui $t0, %hi(gGfxPool) # $t0, 0x8015
/* 125444 80281E04 35EF0040 */ ori $t7, (0x01030040 & 0xFFFF) # ori $t7, $t7, 0x40
/* 125448 80281E08 AE0D0004 */ sw $t5, 4($s0)
/* 12544C 80281E0C 8E300000 */ lw $s0, ($s1)
/* 125450 80281E10 2508EF40 */ addiu $t0, %lo(gGfxPool) # addiu $t0, $t0, -0x10c0
/* 125454 80281E14 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 125458 80281E18 260E0008 */ addiu $t6, $s0, 8
/* 12545C 80281E1C AE2E0000 */ sw $t6, ($s1)
/* 125460 80281E20 AE0F0000 */ sw $t7, ($s0)
/* 125464 80281E24 8D180000 */ lw $t8, ($t0)
/* 125468 80281E28 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 12546C 80281E2C 3C058016 */ lui $a1, %hi(D_801646F0) # $a1, 0x8016
/* 125470 80281E30 27190040 */ addiu $t9, $t8, 0x40
/* 125474 80281E34 03214824 */ and $t1, $t9, $at
/* 125478 80281E38 AE090004 */ sw $t1, 4($s0)
/* 12547C 80281E3C 3C018016 */ lui $at, %hi(D_801646FC) # $at, 0x8016
/* 125480 80281E40 C42A46FC */ lwc1 $f10, %lo(D_801646FC)($at)
/* 125484 80281E44 3C018016 */ lui $at, %hi(D_80164700) # $at, 0x8016
/* 125488 80281E48 C4304700 */ lwc1 $f16, %lo(D_80164700)($at)
/* 12548C 80281E4C 3C018016 */ lui $at, %hi(D_80164704) # $at, 0x8016
/* 125490 80281E50 C4324704 */ lwc1 $f18, %lo(D_80164704)($at)
/* 125494 80281E54 3C018016 */ lui $at, %hi(D_80164708) # $at, 0x8016
/* 125498 80281E58 C4244708 */ lwc1 $f4, %lo(D_80164708)($at)
/* 12549C 80281E5C 3C018016 */ lui $at, %hi(D_8016470C) # $at, 0x8016
/* 1254A0 80281E60 C426470C */ lwc1 $f6, %lo(D_8016470C)($at)
/* 1254A4 80281E64 3C018016 */ lui $at, %hi(D_80164710) # $at, 0x8016
/* 1254A8 80281E68 C4284710 */ lwc1 $f8, %lo(D_80164710)($at)
/* 1254AC 80281E6C 8D040000 */ lw $a0, ($t0)
/* 1254B0 80281E70 3C068016 */ lui $a2, %hi(D_801646F4) # $a2, 0x8016
/* 1254B4 80281E74 3C078016 */ lui $a3, %hi(D_801646F8) # $a3, 0x8016
/* 1254B8 80281E78 8CE746F8 */ lw $a3, %lo(D_801646F8)($a3)
/* 1254BC 80281E7C 8CC646F4 */ lw $a2, %lo(D_801646F4)($a2)
/* 1254C0 80281E80 8CA546F0 */ lw $a1, %lo(D_801646F0)($a1)
/* 1254C4 80281E84 E7AA0010 */ swc1 $f10, 0x10($sp)
/* 1254C8 80281E88 E7B00014 */ swc1 $f16, 0x14($sp)
/* 1254CC 80281E8C E7B20018 */ swc1 $f18, 0x18($sp)
/* 1254D0 80281E90 E7A4001C */ swc1 $f4, 0x1c($sp)
/* 1254D4 80281E94 E7A60020 */ swc1 $f6, 0x20($sp)
/* 1254D8 80281E98 E7A80024 */ swc1 $f8, 0x24($sp)
/* 1254DC 80281E9C 0C033D92 */ jal guLookAt
/* 1254E0 80281EA0 248401C0 */ addiu $a0, $a0, 0x1c0
/* 1254E4 80281EA4 8E300000 */ lw $s0, ($s1)
/* 1254E8 80281EA8 3C0B0101 */ lui $t3, (0x01010040 >> 16) # lui $t3, 0x101
/* 1254EC 80281EAC 356B0040 */ ori $t3, (0x01010040 & 0xFFFF) # ori $t3, $t3, 0x40
/* 1254F0 80281EB0 260A0008 */ addiu $t2, $s0, 8
/* 1254F4 80281EB4 AE2A0000 */ sw $t2, ($s1)
/* 1254F8 80281EB8 3C0C8015 */ lui $t4, %hi(gGfxPool) # $t4, 0x8015
/* 1254FC 80281EBC AE0B0000 */ sw $t3, ($s0)
/* 125500 80281EC0 8D8CEF40 */ lw $t4, %lo(gGfxPool)($t4)
/* 125504 80281EC4 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 125508 80281EC8 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 12550C 80281ECC 258D01C0 */ addiu $t5, $t4, 0x1c0
/* 125510 80281ED0 01A17024 */ and $t6, $t5, $at
/* 125514 80281ED4 27A40064 */ addiu $a0, $sp, 0x64
/* 125518 80281ED8 0C0AD4F2 */ jal func_802B53C8
/* 12551C 80281EDC AE0E0004 */ sw $t6, 4($s0)
/* 125520 80281EE0 27A40064 */ addiu $a0, $sp, 0x64
/* 125524 80281EE4 0C0AD3FE */ jal func_802B4FF8
/* 125528 80281EE8 00002825 */ move $a1, $zero
/* 12552C 80281EEC 8E300000 */ lw $s0, ($s1)
/* 125530 80281EF0 3C190028 */ lui $t9, %hi(D_00284F70) # $t9, 0x28
/* 125534 80281EF4 27394F70 */ addiu $t9, %lo(D_00284F70) # addiu $t9, $t9, 0x4f70
/* 125538 80281EF8 260F0008 */ addiu $t7, $s0, 8
/* 12553C 80281EFC AE2F0000 */ sw $t7, ($s1)
/* 125540 80281F00 3C180600 */ lui $t8, 0x600
/* 125544 80281F04 AE180000 */ sw $t8, ($s0)
/* 125548 80281F08 0C0084AD */ jal func_800212B4
/* 12554C 80281F0C AE190004 */ sw $t9, 4($s0)
/* 125550 80281F10 8E300000 */ lw $s0, ($s1)
/* 125554 80281F14 3C030028 */ lui $v1, %hi(D_00284EE0) # $v1, 0x28
/* 125558 80281F18 24634EE0 */ addiu $v1, %lo(D_00284EE0) # addiu $v1, $v1, 0x4ee0
/* 12555C 80281F1C 26090008 */ addiu $t1, $s0, 8
/* 125560 80281F20 AE290000 */ sw $t1, ($s1)
/* 125564 80281F24 3C0A0600 */ lui $t2, 0x600
/* 125568 80281F28 AE0A0000 */ sw $t2, ($s0)
/* 12556C 80281F2C AE030004 */ sw $v1, 4($s0)
/* 125570 80281F30 0C0A050E */ jal func_80281438
/* 125574 80281F34 AFA30038 */ sw $v1, 0x38($sp)
/* 125578 80281F38 0C016024 */ jal func_80058090
/* 12557C 80281F3C 00002025 */ move $a0, $zero
/* 125580 80281F40 0C0086C3 */ jal func_80021B0C
/* 125584 80281F44 00000000 */ nop
/* 125588 80281F48 8E300000 */ lw $s0, ($s1)
/* 12558C 80281F4C 3C0C0600 */ lui $t4, 0x600
/* 125590 80281F50 260B0008 */ addiu $t3, $s0, 8
/* 125594 80281F54 AE2B0000 */ sw $t3, ($s1)
/* 125598 80281F58 AE0C0000 */ sw $t4, ($s0)
/* 12559C 80281F5C 8FAD0038 */ lw $t5, 0x38($sp)
/* 1255A0 80281F60 0C024FC4 */ jal func_80093F10
/* 1255A4 80281F64 AE0D0004 */ sw $t5, 4($s0)
/* 1255A8 80281F68 0C0A1330 */ jal func_80284CC0
/* 1255AC 80281F6C 00000000 */ nop
/* 1255B0 80281F70 0C0A0710 */ jal func_80281C40
/* 1255B4 80281F74 00000000 */ nop
/* 1255B8 80281F78 0C0A8F8F */ jal func_802A3E3C
/* 1255BC 80281F7C 00000000 */ nop
.L80281F80:
/* 1255C0 80281F80 8FBF0034 */ lw $ra, 0x34($sp)
/* 1255C4 80281F84 8FB0002C */ lw $s0, 0x2c($sp)
/* 1255C8 80281F88 8FB10030 */ lw $s1, 0x30($sp)
/* 1255CC 80281F8C 03E00008 */ jr $ra
/* 1255D0 80281F90 27BD00B8 */ addiu $sp, $sp, 0xb8
/* 1255D4 80281F94 00000000 */ nop
/* 1255D8 80281F98 00000000 */ nop
/* 1255DC 80281F9C 00000000 */ nop

3273
asm/code_80281FA0.s Normal file

File diff suppressed because it is too large Load Diff

3199
asm/code_8028DF00.s Normal file

File diff suppressed because it is too large Load Diff

6376
asm/code_80290C20.s Normal file

File diff suppressed because it is too large Load Diff

14103
asm/code_80296A50.s Normal file

File diff suppressed because it is too large Load Diff

4607
asm/code_802A3730.s Normal file

File diff suppressed because it is too large Load Diff

9313
asm/code_802A7B70.s Normal file

File diff suppressed because it is too large Load Diff

5301
asm/code_802B0210.s Normal file

File diff suppressed because it is too large Load Diff

3845
asm/code_802B4F60.s Normal file

File diff suppressed because it is too large Load Diff

34
asm/entry.s Normal file
View File

@ -0,0 +1,34 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel entry_point
/* 001000 80000400 3C08800F */ lui $t0, %hi(gPlayer1Controller) # $t0, 0x800f
/* 001004 80000404 3C09000A */ lui $t1, (0x000A0FC0 >> 16) # lui $t1, 0xa
/* 001008 80000408 25086910 */ addiu $t0, %lo(gPlayer1Controller) # addiu $t0, $t0, 0x6910
/* 00100C 8000040C 35290FC0 */ ori $t1, (0x000A0FC0 & 0xFFFF) # ori $t1, $t1, 0xfc0
.L80000410:
/* 001010 80000410 2129FFF8 */ addi $t1, $t1, -8
/* 001014 80000414 AD000000 */ sw $zero, ($t0)
/* 001018 80000418 AD000004 */ sw $zero, 4($t0)
/* 00101C 8000041C 1520FFFC */ bnez $t1, .L80000410
/* 001020 80000420 21080008 */ addi $t0, $t0, 8
/* 001024 80000424 3C0A8000 */ lui $t2, %hi(main_func) # $t2, 0x8000
/* 001028 80000428 3C1D8015 */ lui $sp, %hi(D_80152300) # $sp, 0x8015
/* 00102C 8000042C 254A0484 */ addiu $t2, %lo(main_func) # addiu $t2, $t2, 0x484
/* 001030 80000430 01400008 */ jr $t2
/* 001034 80000434 27BD2300 */ addiu $sp, %lo(D_80152300) # addiu $sp, $sp, 0x2300
/* 001038 80000438 00000000 */ nop
/* 00103C 8000043C 00000000 */ nop
/* 001040 80000440 00000000 */ nop
/* 001044 80000444 00000000 */ nop
/* 001048 80000448 00000000 */ nop
/* 00104C 8000044C 00000000 */ nop

14753
asm/libultra.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,762 @@
.section .text, "ax"
glabel func_80002A18
/* 003618 80002A18 3C0E8019 */ lui $t6, %hi(D_8018EDF3) # $t6, 0x8019
/* 00361C 80002A1C 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6)
/* 003620 80002A20 3C0F800E */ lui $t7, %hi(D_800DC50C) # $t7, 0x800e
/* 003624 80002A24 8DEFC50C */ lw $t7, %lo(D_800DC50C)($t7)
/* 003628 80002A28 3C01800E */ lui $at, %hi(gPlayerCountSelection1) # $at, 0x800e
/* 00362C 80002A2C AC2EC538 */ sw $t6, %lo(gPlayerCountSelection1)($at)
/* 003630 80002A30 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 003634 80002A34 24010004 */ li $at, 4
/* 003638 80002A38 11E10003 */ beq $t7, $at, .L80002A48
/* 00363C 80002A3C AFBF0014 */ sw $ra, 0x14($sp)
/* 003640 80002A40 3C01800E */ lui $at, %hi(D_800DC604) # $at, 0x800e
/* 003644 80002A44 AC20C604 */ sw $zero, %lo(D_800DC604)($at)
.L80002A48:
/* 003648 80002A48 3C18800E */ lui $t8, %hi(D_800DC604) # $t8, 0x800e
/* 00364C 80002A4C 8F18C604 */ lw $t8, %lo(D_800DC604)($t8)
/* 003650 80002A50 3C02800E */ lui $v0, %hi(D_800DC5A4) # $v0, 0x800e
/* 003654 80002A54 3C19800E */ lui $t9, %hi(gModeSelection) # $t9, 0x800e
/* 003658 80002A58 13000006 */ beqz $t8, .L80002A74
/* 00365C 80002A5C 2442C5A4 */ addiu $v0, %lo(D_800DC5A4) # addiu $v0, $v0, -0x3a5c
/* 003660 80002A60 3C01BF80 */ li $at, 0xBF800000 # -1.000000
/* 003664 80002A64 44812000 */ mtc1 $at, $f4
/* 003668 80002A68 3C018016 */ lui $at, %hi(D_8015F784) # $at, 0x8016
/* 00366C 80002A6C 10000005 */ b .L80002A84
/* 003670 80002A70 E424F784 */ swc1 $f4, %lo(D_8015F784)($at)
.L80002A74:
/* 003674 80002A74 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 003678 80002A78 44813000 */ mtc1 $at, $f6
/* 00367C 80002A7C 3C018016 */ lui $at, %hi(D_8015F784) # $at, 0x8016
/* 003680 80002A80 E426F784 */ swc1 $f6, %lo(D_8015F784)($at)
.L80002A84:
/* 003684 80002A84 8F39C53C */ lw $t9, %lo(gModeSelection)($t9)
/* 003688 80002A88 3C0E800E */ lui $t6, %hi(D_800DC530) # $t6, 0x800e
/* 00368C 80002A8C 3C04800E */ lui $a0, %hi(gCurrentCourseId) # $a0, 0x800e
/* 003690 80002A90 1720000C */ bnez $t9, .L80002AC4
/* 003694 80002A94 3C088019 */ lui $t0, %hi(gCupSelection) # $t0, 0x8019
/* 003698 80002A98 3C0A8019 */ lui $t2, %hi(gCourseSelection) # $t2, 0x8019
/* 00369C 80002A9C 814AEE0B */ lb $t2, %lo(gCourseSelection)($t2)
/* 0036A0 80002AA0 8108EE09 */ lb $t0, %lo(gCupSelection)($t0)
/* 0036A4 80002AA4 3C0D800F */ lui $t5, 0x800f
/* 0036A8 80002AA8 000A5840 */ sll $t3, $t2, 1
/* 0036AC 80002AAC 000848C0 */ sll $t1, $t0, 3
/* 0036B0 80002AB0 012B6021 */ addu $t4, $t1, $t3
/* 0036B4 80002AB4 01AC6821 */ addu $t5, $t5, $t4
/* 0036B8 80002AB8 85AD2BB4 */ lh $t5, 0x2bb4($t5)
/* 0036BC 80002ABC 3C01800E */ lui $at, %hi(gCurrentCourseId) # $at, 0x800e
/* 0036C0 80002AC0 A42DC5A0 */ sh $t5, %lo(gCurrentCourseId)($at)
.L80002AC4:
/* 0036C4 80002AC4 8DCEC530 */ lw $t6, %lo(D_800DC530)($t6)
/* 0036C8 80002AC8 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e
/* 0036CC 80002ACC 8484C5A0 */ lh $a0, %lo(gCurrentCourseId)($a0)
/* 0036D0 80002AD0 AC2EC52C */ sw $t6, %lo(D_800DC52C)($at)
/* 0036D4 80002AD4 844F0000 */ lh $t7, ($v0)
/* 0036D8 80002AD8 11E4000F */ beq $t7, $a0, .L80002B18
/* 0036DC 80002ADC 3C018015 */ lui $at, %hi(D_80150120) # $at, 0x8015
/* 0036E0 80002AE0 AC200120 */ sw $zero, %lo(D_80150120)($at)
/* 0036E4 80002AE4 A4440000 */ sh $a0, ($v0)
/* 0036E8 80002AE8 3C188016 */ lui $t8, %hi(D_8015F734) # $t8, 0x8016
/* 0036EC 80002AEC 8F18F734 */ lw $t8, %lo(D_8015F734)($t8)
/* 0036F0 80002AF0 3C018016 */ lui $at, %hi(D_8015F728) # $at, 0x8016
/* 0036F4 80002AF4 0C0AAA46 */ jal load_course
/* 0036F8 80002AF8 AC38F728 */ sw $t8, %lo(D_8015F728)($at)
/* 0036FC 80002AFC 0C0A5762 */ jal func_80295D88
/* 003700 80002B00 00000000 */ nop
/* 003704 80002B04 3C198016 */ lui $t9, %hi(D_8015F728) # $t9, 0x8016
/* 003708 80002B08 8F39F728 */ lw $t9, %lo(D_8015F728)($t9)
/* 00370C 80002B0C 3C018016 */ lui $at, %hi(D_8015F730) # $at, 0x8016
/* 003710 80002B10 10000005 */ b .L80002B28
/* 003714 80002B14 AC39F730 */ sw $t9, %lo(D_8015F730)($at)
.L80002B18:
/* 003718 80002B18 3C088016 */ lui $t0, %hi(D_8015F730) # $t0, 0x8016
/* 00371C 80002B1C 8D08F730 */ lw $t0, %lo(D_8015F730)($t0)
/* 003720 80002B20 3C018016 */ lui $at, %hi(D_8015F728) # $at, 0x8016
/* 003724 80002B24 AC28F728 */ sw $t0, %lo(D_8015F728)($at)
.L80002B28:
/* 003728 80002B28 0C0A5A7E */ jal func_802969F8
/* 00372C 80002B2C 00000000 */ nop
/* 003730 80002B30 0C0014C4 */ jal func_80005310
/* 003734 80002B34 00000000 */ nop
/* 003738 80002B38 0C00F420 */ jal func_8003D080
/* 00373C 80002B3C 00000000 */ nop
/* 003740 80002B40 0C01BA70 */ jal func_8006E9C0
/* 003744 80002B44 00000000 */ nop
/* 003748 80002B48 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e
/* 00374C 80002B4C AC20C510 */ sw $zero, %lo(D_800DC510)($at)
/* 003750 80002B50 3C018016 */ lui $at, %hi(D_8015F6FE) # $at, 0x8016
/* 003754 80002B54 A420F6FE */ sh $zero, %lo(D_8015F6FE)($at)
/* 003758 80002B58 3C01800E */ lui $at, %hi(D_800DC5B8) # $at, 0x800e
/* 00375C 80002B5C A420C5B8 */ sh $zero, %lo(D_800DC5B8)($at)
/* 003760 80002B60 3C018015 */ lui $at, %hi(D_80152308) # $at, 0x8015
/* 003764 80002B64 A4202308 */ sh $zero, %lo(D_80152308)($at)
/* 003768 80002B68 3C01802C */ lui $at, %hi(D_802BA038) # $at, 0x802c
/* 00376C 80002B6C 240AFFFF */ li $t2, -1
/* 003770 80002B70 AC2AA038 */ sw $t2, %lo(D_802BA038)($at)
/* 003774 80002B74 3C01802C */ lui $at, %hi(D_802BA048) # $at, 0x802c
/* 003778 80002B78 0C0A9D2F */ jal func_802A74BC
/* 00377C 80002B7C A420A048 */ sh $zero, %lo(D_802BA048)($at)
/* 003780 80002B80 0C0A9346 */ jal func_802A4D18
/* 003784 80002B84 00000000 */ nop
/* 003788 80002B88 0C0247E9 */ jal func_80091FA4
/* 00378C 80002B8C 00000000 */ nop
/* 003790 80002B90 0C0A7856 */ jal func_8029E158
/* 003794 80002B94 00000000 */ nop
/* 003798 80002B98 3C09800E */ lui $t1, %hi(gModeSelection) # $t1, 0x800e
/* 00379C 80002B9C 8D29C53C */ lw $t1, %lo(gModeSelection)($t1)
/* 0037A0 80002BA0 24010003 */ li $at, 3
/* 0037A4 80002BA4 3C028016 */ lui $v0, %hi(D_80164490) # $v0, 0x8016
/* 0037A8 80002BA8 11210046 */ beq $t1, $at, .L80002CC4
/* 0037AC 80002BAC 3C05800E */ lui $a1, %hi(gCurrentCourseId) # $a1, 0x800e
/* 0037B0 80002BB0 8C424490 */ lw $v0, %lo(D_80164490)($v0)
/* 0037B4 80002BB4 3C038016 */ lui $v1, %hi(D_8015F8D0) # $v1, 0x8016
/* 0037B8 80002BB8 2463F8D0 */ addiu $v1, %lo(D_8015F8D0) # addiu $v1, $v1, -0x730
/* 0037BC 80002BBC 844B0002 */ lh $t3, 2($v0)
/* 0037C0 80002BC0 3C04800E */ lui $a0, %hi(gCurrentCourseId) # $a0, 0x800e
/* 0037C4 80002BC4 2401000A */ li $at, 10
/* 0037C8 80002BC8 256CFFF1 */ addiu $t4, $t3, -0xf
/* 0037CC 80002BCC 448C4000 */ mtc1 $t4, $f8
/* 0037D0 80002BD0 3C0E800E */ lui $t6, %hi(D_800DC604) # $t6, 0x800e
/* 0037D4 80002BD4 468042A0 */ cvt.s.w $f10, $f8
/* 0037D8 80002BD8 E46A0004 */ swc1 $f10, 4($v1)
/* 0037DC 80002BDC 844D0004 */ lh $t5, 4($v0)
/* 0037E0 80002BE0 448D8000 */ mtc1 $t5, $f16
/* 0037E4 80002BE4 00000000 */ nop
/* 0037E8 80002BE8 468084A0 */ cvt.s.w $f18, $f16
/* 0037EC 80002BEC E4720008 */ swc1 $f18, 8($v1)
/* 0037F0 80002BF0 8484C5A0 */ lh $a0, %lo(gCurrentCourseId)($a0)
/* 0037F4 80002BF4 54810017 */ bnel $a0, $at, .L80002C54
/* 0037F8 80002BF8 2401000E */ li $at, 14
/* 0037FC 80002BFC 8DCEC604 */ lw $t6, %lo(D_800DC604)($t6)
/* 003800 80002C00 51C0000B */ beql $t6, $zero, .L80002C30
/* 003804 80002C04 84580000 */ lh $t8, ($v0)
/* 003808 80002C08 844F0000 */ lh $t7, ($v0)
/* 00380C 80002C0C 3C01430A */ li $at, 0x430A0000 # 138.000000
/* 003810 80002C10 44814000 */ mtc1 $at, $f8
/* 003814 80002C14 448F2000 */ mtc1 $t7, $f4
/* 003818 80002C18 00000000 */ nop
/* 00381C 80002C1C 468021A0 */ cvt.s.w $f6, $f4
/* 003820 80002C20 46083280 */ add.s $f10, $f6, $f8
/* 003824 80002C24 10000027 */ b .L80002CC4
/* 003828 80002C28 E46A0000 */ swc1 $f10, ($v1)
/* 00382C 80002C2C 84580000 */ lh $t8, ($v0)
.L80002C30:
/* 003830 80002C30 3C01430A */ li $at, 0x430A0000 # 138.000000
/* 003834 80002C34 44812000 */ mtc1 $at, $f4
/* 003838 80002C38 44988000 */ mtc1 $t8, $f16
/* 00383C 80002C3C 00000000 */ nop
/* 003840 80002C40 468084A0 */ cvt.s.w $f18, $f16
/* 003844 80002C44 46049181 */ sub.s $f6, $f18, $f4
/* 003848 80002C48 1000001E */ b .L80002CC4
/* 00384C 80002C4C E4660000 */ swc1 $f6, ($v1)
/* 003850 80002C50 2401000E */ li $at, 14
.L80002C54:
/* 003854 80002C54 14810016 */ bne $a0, $at, .L80002CB0
/* 003858 80002C58 3C19800E */ lui $t9, %hi(D_800DC604) # $t9, 0x800e
/* 00385C 80002C5C 8F39C604 */ lw $t9, %lo(D_800DC604)($t9)
/* 003860 80002C60 5320000B */ beql $t9, $zero, .L80002C90
/* 003864 80002C64 844A0000 */ lh $t2, ($v0)
/* 003868 80002C68 84480000 */ lh $t0, ($v0)
/* 00386C 80002C6C 3C014140 */ li $at, 0x41400000 # 12.000000
/* 003870 80002C70 44818000 */ mtc1 $at, $f16
/* 003874 80002C74 44884000 */ mtc1 $t0, $f8
/* 003878 80002C78 00000000 */ nop
/* 00387C 80002C7C 468042A0 */ cvt.s.w $f10, $f8
/* 003880 80002C80 46105480 */ add.s $f18, $f10, $f16
/* 003884 80002C84 1000000F */ b .L80002CC4
/* 003888 80002C88 E4720000 */ swc1 $f18, ($v1)
/* 00388C 80002C8C 844A0000 */ lh $t2, ($v0)
.L80002C90:
/* 003890 80002C90 3C014140 */ li $at, 0x41400000 # 12.000000
/* 003894 80002C94 44814000 */ mtc1 $at, $f8
/* 003898 80002C98 448A2000 */ mtc1 $t2, $f4
/* 00389C 80002C9C 00000000 */ nop
/* 0038A0 80002CA0 468021A0 */ cvt.s.w $f6, $f4
/* 0038A4 80002CA4 46083281 */ sub.s $f10, $f6, $f8
/* 0038A8 80002CA8 10000006 */ b .L80002CC4
/* 0038AC 80002CAC E46A0000 */ swc1 $f10, ($v1)
.L80002CB0:
/* 0038B0 80002CB0 84490000 */ lh $t1, ($v0)
/* 0038B4 80002CB4 44898000 */ mtc1 $t1, $f16
/* 0038B8 80002CB8 00000000 */ nop
/* 0038BC 80002CBC 468084A0 */ cvt.s.w $f18, $f16
/* 0038C0 80002CC0 E4720000 */ swc1 $f18, ($v1)
.L80002CC4:
/* 0038C4 80002CC4 3C0B800E */ lui $t3, %hi(D_800DC51C) # $t3, 0x800e
/* 0038C8 80002CC8 956BC51C */ lhu $t3, %lo(D_800DC51C)($t3)
/* 0038CC 80002CCC 3C04800E */ lui $a0, %hi(gPlayerCountSelection1) # $a0, 0x800e
/* 0038D0 80002CD0 1560000C */ bnez $t3, .L80002D04
/* 0038D4 80002CD4 00000000 */ nop
/* 0038D8 80002CD8 8C84C538 */ lw $a0, %lo(gPlayerCountSelection1)($a0)
/* 0038DC 80002CDC 84A5C5A0 */ lh $a1, %lo(gCurrentCourseId)($a1)
/* 0038E0 80002CE0 2484FFFF */ addiu $a0, $a0, -1
/* 0038E4 80002CE4 24A50004 */ addiu $a1, $a1, 4
/* 0038E8 80002CE8 30AD00FF */ andi $t5, $a1, 0xff
/* 0038EC 80002CEC 308C00FF */ andi $t4, $a0, 0xff
/* 0038F0 80002CF0 01802025 */ move $a0, $t4
/* 0038F4 80002CF4 0C032802 */ jal func_800CA008
/* 0038F8 80002CF8 01A02825 */ move $a1, $t5
/* 0038FC 80002CFC 0C032CB1 */ jal func_800CB2C4
/* 003900 80002D00 00000000 */ nop
.L80002D04:
/* 003904 80002D04 3C02800E */ lui $v0, %hi(D_800DC4BC) # $v0, 0x800e
/* 003908 80002D08 8C42C4BC */ lw $v0, %lo(D_800DC4BC)($v0)
/* 00390C 80002D0C A4400000 */ sh $zero, ($v0)
/* 003910 80002D10 A4400002 */ sh $zero, 2($v0)
/* 003914 80002D14 A4400006 */ sh $zero, 6($v0)
/* 003918 80002D18 A4400008 */ sh $zero, 8($v0)
/* 00391C 80002D1C A4400004 */ sh $zero, 4($v0)
/* 003920 80002D20 A4400010 */ sh $zero, 0x10($v0)
/* 003924 80002D24 A4400012 */ sh $zero, 0x12($v0)
/* 003928 80002D28 A4400016 */ sh $zero, 0x16($v0)
/* 00392C 80002D2C A4400018 */ sh $zero, 0x18($v0)
/* 003930 80002D30 A4400014 */ sh $zero, 0x14($v0)
/* 003934 80002D34 A4400020 */ sh $zero, 0x20($v0)
/* 003938 80002D38 A4400022 */ sh $zero, 0x22($v0)
/* 00393C 80002D3C A4400026 */ sh $zero, 0x26($v0)
/* 003940 80002D40 A4400028 */ sh $zero, 0x28($v0)
/* 003944 80002D44 A4400024 */ sh $zero, 0x24($v0)
/* 003948 80002D48 A4400040 */ sh $zero, 0x40($v0)
/* 00394C 80002D4C A4400042 */ sh $zero, 0x42($v0)
/* 003950 80002D50 A4400046 */ sh $zero, 0x46($v0)
/* 003954 80002D54 A4400048 */ sh $zero, 0x48($v0)
/* 003958 80002D58 A4400044 */ sh $zero, 0x44($v0)
/* 00395C 80002D5C A4400050 */ sh $zero, 0x50($v0)
/* 003960 80002D60 A4400052 */ sh $zero, 0x52($v0)
/* 003964 80002D64 A4400056 */ sh $zero, 0x56($v0)
/* 003968 80002D68 A4400058 */ sh $zero, 0x58($v0)
/* 00396C 80002D6C A4400054 */ sh $zero, 0x54($v0)
/* 003970 80002D70 A4400064 */ sh $zero, 0x64($v0)
/* 003974 80002D74 A4400068 */ sh $zero, 0x68($v0)
/* 003978 80002D78 A4400066 */ sh $zero, 0x66($v0)
/* 00397C 80002D7C A4400062 */ sh $zero, 0x62($v0)
/* 003980 80002D80 A4400060 */ sh $zero, 0x60($v0)
/* 003984 80002D84 A4400030 */ sh $zero, 0x30($v0)
/* 003988 80002D88 A4400032 */ sh $zero, 0x32($v0)
/* 00398C 80002D8C A4400036 */ sh $zero, 0x36($v0)
/* 003990 80002D90 A4400038 */ sh $zero, 0x38($v0)
/* 003994 80002D94 A4400034 */ sh $zero, 0x34($v0)
/* 003998 80002D98 8FBF0014 */ lw $ra, 0x14($sp)
/* 00399C 80002D9C 27BD0018 */ addiu $sp, $sp, 0x18
/* 0039A0 80002DA0 24420060 */ addiu $v0, $v0, 0x60
/* 0039A4 80002DA4 03E00008 */ jr $ra
/* 0039A8 80002DA8 00000000 */ nop
glabel func_80002DAC
/* 0039AC 80002DAC 3C0E800E */ lui $t6, %hi(gCurrentCourseId) # $t6, 0x800e
/* 0039B0 80002DB0 95CEC5A0 */ lhu $t6, %lo(gCurrentCourseId)($t6)
/* 0039B4 80002DB4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0039B8 80002DB8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0039BC 80002DBC 2DC10013 */ sltiu $at, $t6, 0x13
/* 0039C0 80002DC0 1020008F */ beqz $at, .L80003000
/* 0039C4 80002DC4 000E7080 */ sll $t6, $t6, 2
/* 0039C8 80002DC8 3C01800F */ lui $at, 0x800f
/* 0039CC 80002DCC 002E0821 */ addu $at, $at, $t6
/* 0039D0 80002DD0 8C2EB670 */ lw $t6, -0x4990($at)
/* 0039D4 80002DD4 01C00008 */ jr $t6
/* 0039D8 80002DD8 00000000 */ nop
glabel L80002DDC
/* 0039DC 80002DDC 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 0039E0 80002DE0 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 0039E4 80002DE4 3C05C35F */ lui $a1, 0xc35f
/* 0039E8 80002DE8 3C0642BC */ lui $a2, 0x42bc
/* 0039EC 80002DEC 0C0AD4A7 */ jal load_giant_egg
/* 0039F0 80002DF0 3C07C31B */ lui $a3, 0xc31b
/* 0039F4 80002DF4 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 0039F8 80002DF8 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 0039FC 80002DFC 3C065103 */ lui $a2, (0x5103700B >> 16) # lui $a2, 0x5103
/* 003A00 80002E00 34C6700B */ ori $a2, (0x5103700B & 0xFFFF) # ori $a2, $a2, 0x700b
/* 003A04 80002E04 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003A08 80002E08 0C032760 */ jal func_800C9D80
/* 003A0C 80002E0C 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 003A10 80002E10 1000007C */ b .L80003004
/* 003A14 80002E14 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80002E18
/* 003A18 80002E18 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 003A1C 80002E1C 3C07C3C4 */ lui $a3, (0xC3C48000 >> 16) # lui $a3, 0xc3c4
/* 003A20 80002E20 34E78000 */ ori $a3, (0xC3C48000 & 0xFFFF) # ori $a3, $a3, 0x8000
/* 003A24 80002E24 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 003A28 80002E28 3C054331 */ lui $a1, 0x4331
/* 003A2C 80002E2C 0C0AD4A7 */ jal load_giant_egg
/* 003A30 80002E30 3C0642AE */ lui $a2, 0x42ae
/* 003A34 80002E34 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 003A38 80002E38 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003A3C 80002E3C 3C065103 */ lui $a2, (0x5103700B >> 16) # lui $a2, 0x5103
/* 003A40 80002E40 34C6700B */ ori $a2, (0x5103700B & 0xFFFF) # ori $a2, $a2, 0x700b
/* 003A44 80002E44 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003A48 80002E48 0C032760 */ jal func_800C9D80
/* 003A4C 80002E4C 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 003A50 80002E50 1000006C */ b .L80003004
/* 003A54 80002E54 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80002E58
/* 003A58 80002E58 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 003A5C 80002E5C 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 003A60 80002E60 3C0542AA */ lui $a1, 0x42aa
/* 003A64 80002E64 3C0641A8 */ lui $a2, 0x41a8
/* 003A68 80002E68 0C0AD4A7 */ jal load_giant_egg
/* 003A6C 80002E6C 3C07C35B */ lui $a3, 0xc35b
/* 003A70 80002E70 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 003A74 80002E74 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003A78 80002E78 3C065103 */ lui $a2, (0x5103700B >> 16) # lui $a2, 0x5103
/* 003A7C 80002E7C 34C6700B */ ori $a2, (0x5103700B & 0xFFFF) # ori $a2, $a2, 0x700b
/* 003A80 80002E80 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003A84 80002E84 0C032760 */ jal func_800C9D80
/* 003A88 80002E88 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 003A8C 80002E8C 1000005D */ b .L80003004
/* 003A90 80002E90 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80002E94
/* 003A94 80002E94 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 003A98 80002E98 3C07C454 */ lui $a3, (0xC4548000 >> 16) # lui $a3, 0xc454
/* 003A9C 80002E9C 34E78000 */ ori $a3, (0xC4548000 & 0xFFFF) # ori $a3, $a3, 0x8000
/* 003AA0 80002EA0 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 003AA4 80002EA4 3C054395 */ lui $a1, 0x4395
/* 003AA8 80002EA8 0C0AD4A7 */ jal load_giant_egg
/* 003AAC 80002EAC 3C06434A */ lui $a2, 0x434a
/* 003AB0 80002EB0 3C048016 */ lui $a0, %hi(D_8015F748) # $a0, 0x8016
/* 003AB4 80002EB4 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003AB8 80002EB8 3C065103 */ lui $a2, (0x5103700B >> 16) # lui $a2, 0x5103
/* 003ABC 80002EBC 34C6700B */ ori $a2, (0x5103700B & 0xFFFF) # ori $a2, $a2, 0x700b
/* 003AC0 80002EC0 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003AC4 80002EC4 0C032760 */ jal func_800C9D80
/* 003AC8 80002EC8 2484F748 */ addiu $a0, %lo(D_8015F748) # addiu $a0, $a0, -0x8b8
/* 003ACC 80002ECC 3C048016 */ lui $a0, %hi(D_8015F758) # $a0, 0x8016
/* 003AD0 80002ED0 3C07C517 */ lui $a3, (0xC517E000 >> 16) # lui $a3, 0xc517
/* 003AD4 80002ED4 34E7E000 */ ori $a3, (0xC517E000 & 0xFFFF) # ori $a3, $a3, 0xe000
/* 003AD8 80002ED8 2484F758 */ addiu $a0, %lo(D_8015F758) # addiu $a0, $a0, -0x8a8
/* 003ADC 80002EDC 3C05C4C8 */ lui $a1, 0xc4c8
/* 003AE0 80002EE0 0C0AD4A7 */ jal load_giant_egg
/* 003AE4 80002EE4 3C06434A */ lui $a2, 0x434a
/* 003AE8 80002EE8 3C048016 */ lui $a0, %hi(D_8015F758) # $a0, 0x8016
/* 003AEC 80002EEC 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003AF0 80002EF0 3C065103 */ lui $a2, (0x5103700B >> 16) # lui $a2, 0x5103
/* 003AF4 80002EF4 34C6700B */ ori $a2, (0x5103700B & 0xFFFF) # ori $a2, $a2, 0x700b
/* 003AF8 80002EF8 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003AFC 80002EFC 0C032760 */ jal func_800C9D80
/* 003B00 80002F00 2484F758 */ addiu $a0, %lo(D_8015F758) # addiu $a0, $a0, -0x8a8
/* 003B04 80002F04 3C048016 */ lui $a0, %hi(D_8015F768) # $a0, 0x8016
/* 003B08 80002F08 3C05C529 */ lui $a1, (0xC5294000 >> 16) # lui $a1, 0xc529
/* 003B0C 80002F0C 3C0744DC */ lui $a3, (0x44DC4000 >> 16) # lui $a3, 0x44dc
/* 003B10 80002F10 34E74000 */ ori $a3, (0x44DC4000 & 0xFFFF) # ori $a3, $a3, 0x4000
/* 003B14 80002F14 34A54000 */ ori $a1, (0xC5294000 & 0xFFFF) # ori $a1, $a1, 0x4000
/* 003B18 80002F18 2484F768 */ addiu $a0, %lo(D_8015F768) # addiu $a0, $a0, -0x898
/* 003B1C 80002F1C 0C0AD4A7 */ jal load_giant_egg
/* 003B20 80002F20 3C06434A */ lui $a2, 0x434a
/* 003B24 80002F24 3C048016 */ lui $a0, %hi(D_8015F768) # $a0, 0x8016
/* 003B28 80002F28 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003B2C 80002F2C 3C065103 */ lui $a2, (0x5103700B >> 16) # lui $a2, 0x5103
/* 003B30 80002F30 34C6700B */ ori $a2, (0x5103700B & 0xFFFF) # ori $a2, $a2, 0x700b
/* 003B34 80002F34 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003B38 80002F38 0C032760 */ jal func_800C9D80
/* 003B3C 80002F3C 2484F768 */ addiu $a0, %lo(D_8015F768) # addiu $a0, $a0, -0x898
/* 003B40 80002F40 3C048016 */ lui $a0, %hi(D_8015F778) # $a0, 0x8016
/* 003B44 80002F44 3C05C441 */ lui $a1, (0xC441C000 >> 16) # lui $a1, 0xc441
/* 003B48 80002F48 3C0744F1 */ lui $a3, (0x44F14000 >> 16) # lui $a3, 0x44f1
/* 003B4C 80002F4C 34E74000 */ ori $a3, (0x44F14000 & 0xFFFF) # ori $a3, $a3, 0x4000
/* 003B50 80002F50 34A5C000 */ ori $a1, (0xC441C000 & 0xFFFF) # ori $a1, $a1, 0xc000
/* 003B54 80002F54 2484F778 */ addiu $a0, %lo(D_8015F778) # addiu $a0, $a0, -0x888
/* 003B58 80002F58 0C0AD4A7 */ jal load_giant_egg
/* 003B5C 80002F5C 3C06434A */ lui $a2, 0x434a
/* 003B60 80002F60 3C048016 */ lui $a0, %hi(D_8015F778) # $a0, 0x8016
/* 003B64 80002F64 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003B68 80002F68 3C065103 */ lui $a2, (0x5103700B >> 16) # lui $a2, 0x5103
/* 003B6C 80002F6C 34C6700B */ ori $a2, (0x5103700B & 0xFFFF) # ori $a2, $a2, 0x700b
/* 003B70 80002F70 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003B74 80002F74 0C032760 */ jal func_800C9D80
/* 003B78 80002F78 2484F778 */ addiu $a0, %lo(D_8015F778) # addiu $a0, $a0, -0x888
/* 003B7C 80002F7C 10000021 */ b .L80003004
/* 003B80 80002F80 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80002F84
/* 003B84 80002F84 3C048016 */ lui $a0, %hi(D_8015F738) # $a0, 0x8016
/* 003B88 80002F88 3C074510 */ lui $a3, (0x4510F000 >> 16) # lui $a3, 0x4510
/* 003B8C 80002F8C 34E7F000 */ ori $a3, (0x4510F000 & 0xFFFF) # ori $a3, $a3, 0xf000
/* 003B90 80002F90 2484F738 */ addiu $a0, %lo(D_8015F738) # addiu $a0, $a0, -0x8c8
/* 003B94 80002F94 3C054319 */ lui $a1, 0x4319
/* 003B98 80002F98 0C0AD4A7 */ jal load_giant_egg
/* 003B9C 80002F9C 24060000 */ li $a2, 0
/* 003BA0 80002FA0 3C048016 */ lui $a0, %hi(D_8015F738) # $a0, 0x8016
/* 003BA4 80002FA4 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003BA8 80002FA8 3C065102 */ lui $a2, (0x51028001 >> 16) # lui $a2, 0x5102
/* 003BAC 80002FAC 34C68001 */ ori $a2, (0x51028001 & 0xFFFF) # ori $a2, $a2, 0x8001
/* 003BB0 80002FB0 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003BB4 80002FB4 0C032760 */ jal func_800C9D80
/* 003BB8 80002FB8 2484F738 */ addiu $a0, %lo(D_8015F738) # addiu $a0, $a0, -0x8c8
/* 003BBC 80002FBC 10000011 */ b .L80003004
/* 003BC0 80002FC0 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80002FC4
/* 003BC4 80002FC4 3C048016 */ lui $a0, %hi(D_8015F738) # $a0, 0x8016
/* 003BC8 80002FC8 3C05C445 */ lui $a1, (0xC4458000 >> 16) # lui $a1, 0xc445
/* 003BCC 80002FCC 3C07C3DF */ lui $a3, (0xC3DF8000 >> 16) # lui $a3, 0xc3df
/* 003BD0 80002FD0 34E78000 */ ori $a3, (0xC3DF8000 & 0xFFFF) # ori $a3, $a3, 0x8000
/* 003BD4 80002FD4 34A58000 */ ori $a1, (0xC4458000 & 0xFFFF) # ori $a1, $a1, 0x8000
/* 003BD8 80002FD8 2484F738 */ addiu $a0, %lo(D_8015F738) # addiu $a0, $a0, -0x8c8
/* 003BDC 80002FDC 0C0AD4A7 */ jal load_giant_egg
/* 003BE0 80002FE0 3C06C37F */ lui $a2, 0xc37f
/* 003BE4 80002FE4 3C048016 */ lui $a0, %hi(D_8015F738) # $a0, 0x8016
/* 003BE8 80002FE8 3C05802C */ lui $a1, %hi(D_802B91C8) # $a1, 0x802c
/* 003BEC 80002FEC 3C065102 */ lui $a2, (0x51028001 >> 16) # lui $a2, 0x5102
/* 003BF0 80002FF0 34C68001 */ ori $a2, (0x51028001 & 0xFFFF) # ori $a2, $a2, 0x8001
/* 003BF4 80002FF4 24A591C8 */ addiu $a1, %lo(D_802B91C8) # addiu $a1, $a1, -0x6e38
/* 003BF8 80002FF8 0C032760 */ jal func_800C9D80
/* 003BFC 80002FFC 2484F738 */ addiu $a0, %lo(D_8015F738) # addiu $a0, $a0, -0x8c8
.L80003000:
glabel L80003000
/* 003C00 80003000 8FBF0014 */ lw $ra, 0x14($sp)
.L80003004:
/* 003C04 80003004 27BD0018 */ addiu $sp, $sp, 0x18
/* 003C08 80003008 03E00008 */ jr $ra
/* 003C0C 8000300C 00000000 */ nop
glabel func_80003010
/* 003C10 80003010 3C038000 */ lui $v1, %hi(D_8000031C) # $v1, 0x8000
/* 003C14 80003014 3C028000 */ lui $v0, %hi(D_8000035C) # $v0, 0x8000
/* 003C18 80003018 2442035C */ addiu $v0, %lo(D_8000035C) # addiu $v0, $v0, 0x35c
/* 003C1C 8000301C 2463031C */ addiu $v1, %lo(D_8000031C) # addiu $v1, $v1, 0x31c
.L80003020:
/* 003C20 80003020 24630010 */ addiu $v1, $v1, 0x10
/* 003C24 80003024 AC60FFF4 */ sw $zero, -0xc($v1)
/* 003C28 80003028 AC60FFF8 */ sw $zero, -8($v1)
/* 003C2C 8000302C AC60FFFC */ sw $zero, -4($v1)
/* 003C30 80003030 1462FFFB */ bne $v1, $v0, .L80003020
/* 003C34 80003034 AC60FFF0 */ sw $zero, -0x10($v1)
/* 003C38 80003038 03E00008 */ jr $ra
/* 003C3C 8000303C 00000000 */ nop
glabel func_80003040
/* 003C40 80003040 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 003C44 80003044 3C0F800E */ lui $t7, %hi(D_800DC64C) # $t7, 0x800e
/* 003C48 80003048 AFBF001C */ sw $ra, 0x1c($sp)
/* 003C4C 8000304C 25EFC64C */ addiu $t7, %lo(D_800DC64C) # addiu $t7, $t7, -0x39b4
/* 003C50 80003050 8DE10000 */ lw $at, ($t7)
/* 003C54 80003054 27AE0028 */ addiu $t6, $sp, 0x28
/* 003C58 80003058 8DE80004 */ lw $t0, 4($t7)
/* 003C5C 8000305C ADC10000 */ sw $at, ($t6)
/* 003C60 80003060 8DE10008 */ lw $at, 8($t7)
/* 003C64 80003064 3C0A800E */ lui $t2, %hi(D_800DC658) # $t2, 0x800e
/* 003C68 80003068 254AC658 */ addiu $t2, %lo(D_800DC658) # addiu $t2, $t2, -0x39a8
/* 003C6C 8000306C ADC80004 */ sw $t0, 4($t6)
/* 003C70 80003070 ADC10008 */ sw $at, 8($t6)
/* 003C74 80003074 8D410000 */ lw $at, ($t2)
/* 003C78 80003078 27A90020 */ addiu $t1, $sp, 0x20
/* 003C7C 8000307C 24190001 */ li $t9, 1
/* 003C80 80003080 AD210000 */ sw $at, ($t1)
/* 003C84 80003084 95410004 */ lhu $at, 4($t2)
/* 003C88 80003088 3C058016 */ lui $a1, %hi(D_8015F728) # $a1, 0x8016
/* 003C8C 8000308C 24040003 */ li $a0, 3
/* 003C90 80003090 A5210004 */ sh $at, 4($t1)
/* 003C94 80003094 3C01800E */ lui $at, %hi(D_800DC5BC) # $at, 0x800e
/* 003C98 80003098 A420C5BC */ sh $zero, %lo(D_800DC5BC)($at)
/* 003C9C 8000309C 3C01800E */ lui $at, %hi(D_800DC5C8) # $at, 0x800e
/* 003CA0 800030A0 A420C5C8 */ sh $zero, %lo(D_800DC5C8)($at)
/* 003CA4 800030A4 3C018015 */ lui $at, %hi(D_80150110) # $at, 0x8015
/* 003CA8 800030A8 A4200110 */ sh $zero, %lo(D_80150110)($at)
/* 003CAC 800030AC 3C01800E */ lui $at, %hi(D_800DC604) # $at, 0x800e
/* 003CB0 800030B0 AC20C604 */ sw $zero, %lo(D_800DC604)($at)
/* 003CB4 800030B4 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 003CB8 800030B8 44812000 */ mtc1 $at, $f4
/* 003CBC 800030BC 3C018016 */ lui $at, %hi(D_8015F784) # $at, 0x8016
/* 003CC0 800030C0 8CA5F728 */ lw $a1, %lo(D_8015F728)($a1)
/* 003CC4 800030C4 E424F784 */ swc1 $f4, %lo(D_8015F784)($at)
/* 003CC8 800030C8 3C01800E */ lui $at, %hi(gPlayerCountSelection1) # $at, 0x800e
/* 003CCC 800030CC AC39C538 */ sw $t9, %lo(gPlayerCountSelection1)($at)
/* 003CD0 800030D0 3C01FFFF */ lui $at, (0xFFFF7000 >> 16) # lui $at, 0xffff
/* 003CD4 800030D4 34217000 */ ori $at, (0xFFFF7000 & 0xFFFF) # ori $at, $at, 0x7000
/* 003CD8 800030D8 0C0A9EE5 */ jal set_segment_base_addr
/* 003CDC 800030DC 00A12821 */ addu $a1, $a1, $at
/* 003CE0 800030E0 0C0A76AE */ jal func_8029DAB8
/* 003CE4 800030E4 00000000 */ nop
/* 003CE8 800030E8 3C18800E */ lui $t8, %hi(gCurrentCourseId) # $t8, 0x800e
/* 003CEC 800030EC 9718C5A0 */ lhu $t8, %lo(gCurrentCourseId)($t8)
/* 003CF0 800030F0 2F010013 */ sltiu $at, $t8, 0x13
/* 003CF4 800030F4 1020010C */ beqz $at, .L80003528
/* 003CF8 800030F8 0018C080 */ sll $t8, $t8, 2
/* 003CFC 800030FC 3C01800F */ lui $at, 0x800f
/* 003D00 80003100 00380821 */ addu $at, $at, $t8
/* 003D04 80003104 8C38B6BC */ lw $t8, -0x4944($at)
/* 003D08 80003108 03000008 */ jr $t8
/* 003D0C 8000310C 00000000 */ nop
glabel L80003110
/* 003D10 80003110 3C040F05 */ lui $a0, %hi(D_0F04F45C) # $a0, 0xf05
/* 003D14 80003114 2484F45C */ addiu $a0, %lo(D_0F04F45C) # addiu $a0, $a0, -0xba4
/* 003D18 80003118 2405035B */ li $a1, 859
/* 003D1C 8000311C 0C0AA13D */ jal func_802A84F4
/* 003D20 80003120 24060800 */ li $a2, 2048
/* 003D24 80003124 3C040601 */ lui $a0, %hi(D_06009570) # $a0, 0x601
/* 003D28 80003128 0C0A7561 */ jal place_segment_06
/* 003D2C 8000312C 24849570 */ addiu $a0, %lo(D_06009570) # addiu $a0, $a0, -0x6a90
/* 003D30 80003130 100000FE */ b .L8000352C
/* 003D34 80003134 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80003138
/* 003D38 80003138 3C040700 */ lui $a0, (0x07001350 >> 16) # lui $a0, 0x700
/* 003D3C 8000313C 34841350 */ ori $a0, (0x07001350 & 0xFFFF) # ori $a0, $a0, 0x1350
/* 003D40 80003140 24050032 */ li $a1, 50
/* 003D44 80003144 00003025 */ move $a2, $zero
/* 003D48 80003148 00003825 */ move $a3, $zero
/* 003D4C 8000314C 0C0ABE2F */ jal func_802AF8BC
/* 003D50 80003150 AFA00010 */ sw $zero, 0x10($sp)
/* 003D54 80003154 100000F5 */ b .L8000352C
/* 003D58 80003158 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8000315C
/* 003D5C 8000315C 3C040700 */ lui $a0, (0x07000878 >> 16) # lui $a0, 0x700
/* 003D60 80003160 34840878 */ ori $a0, (0x07000878 & 0xFFFF) # ori $a0, $a0, 0x878
/* 003D64 80003164 2405FF80 */ li $a1, -128
/* 003D68 80003168 00003025 */ move $a2, $zero
/* 003D6C 8000316C 00003825 */ move $a3, $zero
/* 003D70 80003170 0C0ABE2F */ jal func_802AF8BC
/* 003D74 80003174 AFA00010 */ sw $zero, 0x10($sp)
/* 003D78 80003178 100000EC */ b .L8000352C
/* 003D7C 8000317C 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80003180
/* 003D80 80003180 3C05C50F */ lui $a1, (0xC50FC000 >> 16) # lui $a1, 0xc50f
/* 003D84 80003184 3C07441E */ lui $a3, (0x441E8000 >> 16) # lui $a3, 0x441e
/* 003D88 80003188 34E78000 */ ori $a3, (0x441E8000 & 0xFFFF) # ori $a3, $a3, 0x8000
/* 003D8C 8000318C 34A5C000 */ ori $a1, (0xC50FC000 & 0xFFFF) # ori $a1, $a1, 0xc000
/* 003D90 80003190 27A40034 */ addiu $a0, $sp, 0x34
/* 003D94 80003194 0C0AD4A7 */ jal load_giant_egg
/* 003D98 80003198 24060000 */ li $a2, 0
/* 003D9C 8000319C 3C018016 */ lui $at, %hi(D_8015F784) # $at, 0x8016
/* 003DA0 800031A0 C428F784 */ lwc1 $f8, %lo(D_8015F784)($at)
/* 003DA4 800031A4 C7A60034 */ lwc1 $f6, 0x34($sp)
/* 003DA8 800031A8 27A40034 */ addiu $a0, $sp, 0x34
/* 003DAC 800031AC 27A50020 */ addiu $a1, $sp, 0x20
/* 003DB0 800031B0 46083282 */ mul.s $f10, $f6, $f8
/* 003DB4 800031B4 27A60028 */ addiu $a2, $sp, 0x28
/* 003DB8 800031B8 24070009 */ li $a3, 9
/* 003DBC 800031BC 0C0A7B22 */ jal func_8029EC88
/* 003DC0 800031C0 E7AA0034 */ swc1 $f10, 0x34($sp)
/* 003DC4 800031C4 100000D9 */ b .L8000352C
/* 003DC8 800031C8 8FBF001C */ lw $ra, 0x1c($sp)
glabel L800031CC
/* 003DCC 800031CC 3C040F05 */ lui $a0, %hi(D_0F04FE28) # $a0, 0xf05
/* 003DD0 800031D0 2484FE28 */ addiu $a0, %lo(D_0F04FE28) # addiu $a0, $a0, -0x1d8
/* 003DD4 800031D4 240503E8 */ li $a1, 1000
/* 003DD8 800031D8 0C0AA13D */ jal func_802A84F4
/* 003DDC 800031DC 24060800 */ li $a2, 2048
/* 003DE0 800031E0 3C040F05 */ lui $a0, %hi(D_0F050118) # $a0, 0xf05
/* 003DE4 800031E4 24840118 */ addiu $a0, %lo(D_0F050118) # addiu $a0, $a0, 0x118
/* 003DE8 800031E8 240503E8 */ li $a1, 1000
/* 003DEC 800031EC 0C0AA13D */ jal func_802A84F4
/* 003DF0 800031F0 24060800 */ li $a2, 2048
/* 003DF4 800031F4 3C040F05 */ lui $a0, %hi(D_0F051C54) # $a0, 0xf05
/* 003DF8 800031F8 24841C54 */ addiu $a0, %lo(D_0F051C54) # addiu $a0, $a0, 0x1c54
/* 003DFC 800031FC 24050400 */ li $a1, 1024
/* 003E00 80003200 0C0AA13D */ jal func_802A84F4
/* 003E04 80003204 24060800 */ li $a2, 2048
/* 003E08 80003208 3C040F05 */ lui $a0, %hi(D_0F051FD8) # $a0, 0xf05
/* 003E0C 8000320C 24841FD8 */ addiu $a0, %lo(D_0F051FD8) # addiu $a0, $a0, 0x1fd8
/* 003E10 80003210 24050400 */ li $a1, 1024
/* 003E14 80003214 0C0AA13D */ jal func_802A84F4
/* 003E18 80003218 24060800 */ li $a2, 2048
/* 003E1C 8000321C 3C040F05 */ lui $a0, %hi(D_0F05232C) # $a0, 0xf05
/* 003E20 80003220 2484232C */ addiu $a0, %lo(D_0F05232C) # addiu $a0, $a0, 0x232c
/* 003E24 80003224 24050400 */ li $a1, 1024
/* 003E28 80003228 0C0AA13D */ jal func_802A84F4
/* 003E2C 8000322C 24060800 */ li $a2, 2048
/* 003E30 80003230 3C040F05 */ lui $a0, %hi(D_0F0526B8) # $a0, 0xf05
/* 003E34 80003234 248426B8 */ addiu $a0, %lo(D_0F0526B8) # addiu $a0, $a0, 0x26b8
/* 003E38 80003238 24050400 */ li $a1, 1024
/* 003E3C 8000323C 0C0AA13D */ jal func_802A84F4
/* 003E40 80003240 24060800 */ li $a2, 2048
/* 003E44 80003244 3C040F05 */ lui $a0, %hi(D_0F052A20) # $a0, 0xf05
/* 003E48 80003248 24842A20 */ addiu $a0, %lo(D_0F052A20) # addiu $a0, $a0, 0x2a20
/* 003E4C 8000324C 24050400 */ li $a1, 1024
/* 003E50 80003250 0C0AA13D */ jal func_802A84F4
/* 003E54 80003254 24060800 */ li $a2, 2048
/* 003E58 80003258 3C040F05 */ lui $a0, %hi(D_0F052D3C) # $a0, 0xf05
/* 003E5C 8000325C 24842D3C */ addiu $a0, %lo(D_0F052D3C) # addiu $a0, $a0, 0x2d3c
/* 003E60 80003260 24050400 */ li $a1, 1024
/* 003E64 80003264 0C0AA13D */ jal func_802A84F4
/* 003E68 80003268 24060800 */ li $a2, 2048
/* 003E6C 8000326C 3C040F05 */ lui $a0, %hi(D_0F05300C) # $a0, 0xf05
/* 003E70 80003270 2484300C */ addiu $a0, %lo(D_0F05300C) # addiu $a0, $a0, 0x300c
/* 003E74 80003274 24050400 */ li $a1, 1024
/* 003E78 80003278 0C0AA13D */ jal func_802A84F4
/* 003E7C 8000327C 24060800 */ li $a2, 2048
/* 003E80 80003280 3C040F05 */ lui $a0, %hi(D_0F0532F8) # $a0, 0xf05
/* 003E84 80003284 248432F8 */ addiu $a0, %lo(D_0F0532F8) # addiu $a0, $a0, 0x32f8
/* 003E88 80003288 24050400 */ li $a1, 1024
/* 003E8C 8000328C 0C0AA13D */ jal func_802A84F4
/* 003E90 80003290 24060800 */ li $a2, 2048
/* 003E94 80003294 3C040F05 */ lui $a0, %hi(D_0F05363C) # $a0, 0xf05
/* 003E98 80003298 2484363C */ addiu $a0, %lo(D_0F05363C) # addiu $a0, $a0, 0x363c
/* 003E9C 8000329C 24050400 */ li $a1, 1024
/* 003EA0 800032A0 0C0AA13D */ jal func_802A84F4
/* 003EA4 800032A4 24060800 */ li $a2, 2048
/* 003EA8 800032A8 3C040F05 */ lui $a0, %hi(D_0F053950) # $a0, 0xf05
/* 003EAC 800032AC 24843950 */ addiu $a0, %lo(D_0F053950) # addiu $a0, $a0, 0x3950
/* 003EB0 800032B0 24050400 */ li $a1, 1024
/* 003EB4 800032B4 0C0AA13D */ jal func_802A84F4
/* 003EB8 800032B8 24060800 */ li $a2, 2048
/* 003EBC 800032BC 3C040601 */ lui $a0, %hi(D_06014330) # $a0, 0x601
/* 003EC0 800032C0 0C0A7561 */ jal place_segment_06
/* 003EC4 800032C4 24844330 */ addiu $a0, %lo(D_06014330) # addiu $a0, $a0, 0x4330
/* 003EC8 800032C8 10000098 */ b .L8000352C
/* 003ECC 800032CC 8FBF001C */ lw $ra, 0x1c($sp)
glabel L800032D0
/* 003ED0 800032D0 3C040700 */ lui $a0, (0x07001EB8 >> 16) # lui $a0, 0x700
/* 003ED4 800032D4 240E00FF */ li $t6, 255
/* 003ED8 800032D8 AFAE0010 */ sw $t6, 0x10($sp)
/* 003EDC 800032DC 34841EB8 */ ori $a0, (0x07001EB8 & 0xFFFF) # ori $a0, $a0, 0x1eb8
/* 003EE0 800032E0 2405FFB4 */ li $a1, -76
/* 003EE4 800032E4 240600FF */ li $a2, 255
/* 003EE8 800032E8 0C0ABE2F */ jal func_802AF8BC
/* 003EEC 800032EC 240700FF */ li $a3, 255
/* 003EF0 800032F0 3C040700 */ lui $a0, (0x07002308 >> 16) # lui $a0, 0x700
/* 003EF4 800032F4 240F00FF */ li $t7, 255
/* 003EF8 800032F8 AFAF0010 */ sw $t7, 0x10($sp)
/* 003EFC 800032FC 34842308 */ ori $a0, (0x07002308 & 0xFFFF) # ori $a0, $a0, 0x2308
/* 003F00 80003300 2405FF96 */ li $a1, -106
/* 003F04 80003304 240600FF */ li $a2, 255
/* 003F08 80003308 0C0ABE2F */ jal func_802AF8BC
/* 003F0C 8000330C 240700FF */ li $a3, 255
/* 003F10 80003310 10000086 */ b .L8000352C
/* 003F14 80003314 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80003318
/* 003F18 80003318 3C040700 */ lui $a0, (0x07002068 >> 16) # lui $a0, 0x700
/* 003F1C 8000331C 240800FF */ li $t0, 255
/* 003F20 80003320 AFA80010 */ sw $t0, 0x10($sp)
/* 003F24 80003324 34842068 */ ori $a0, (0x07002068 & 0xFFFF) # ori $a0, $a0, 0x2068
/* 003F28 80003328 2405FF96 */ li $a1, -106
/* 003F2C 8000332C 240600FF */ li $a2, 255
/* 003F30 80003330 0C0ABE2F */ jal func_802AF8BC
/* 003F34 80003334 240700FF */ li $a3, 255
/* 003F38 80003338 3C040700 */ lui $a0, (0x07001E18 >> 16) # lui $a0, 0x700
/* 003F3C 8000333C 240C00FF */ li $t4, 255
/* 003F40 80003340 AFAC0010 */ sw $t4, 0x10($sp)
/* 003F44 80003344 34841E18 */ ori $a0, (0x07001E18 & 0xFFFF) # ori $a0, $a0, 0x1e18
/* 003F48 80003348 2405FF96 */ li $a1, -106
/* 003F4C 8000334C 240600FF */ li $a2, 255
/* 003F50 80003350 0C0ABE2F */ jal func_802AF8BC
/* 003F54 80003354 240700FF */ li $a3, 255
/* 003F58 80003358 3C040700 */ lui $a0, (0x07001318 >> 16) # lui $a0, 0x700
/* 003F5C 8000335C 34841318 */ ori $a0, (0x07001318 & 0xFFFF) # ori $a0, $a0, 0x1318
/* 003F60 80003360 2405FFFF */ li $a1, -1
/* 003F64 80003364 240600FF */ li $a2, 255
/* 003F68 80003368 240700FF */ li $a3, 255
/* 003F6C 8000336C 0C0ABE2F */ jal func_802AF8BC
/* 003F70 80003370 AFA00010 */ sw $zero, 0x10($sp)
/* 003F74 80003374 1000006D */ b .L8000352C
/* 003F78 80003378 8FBF001C */ lw $ra, 0x1c($sp)
glabel L8000337C
/* 003F7C 8000337C 27A40034 */ addiu $a0, $sp, 0x34
/* 003F80 80003380 3C05C303 */ lui $a1, 0xc303
/* 003F84 80003384 3C0642A6 */ lui $a2, 0x42a6
/* 003F88 80003388 0C0AD4A7 */ jal load_giant_egg
/* 003F8C 8000338C 3C07438F */ lui $a3, 0x438f
/* 003F90 80003390 27A40034 */ addiu $a0, $sp, 0x34
/* 003F94 80003394 27A50020 */ addiu $a1, $sp, 0x20
/* 003F98 80003398 27A60028 */ addiu $a2, $sp, 0x28
/* 003F9C 8000339C 0C0A7B22 */ jal func_8029EC88
/* 003FA0 800033A0 24070023 */ li $a3, 35
/* 003FA4 800033A4 3C05C513 */ lui $a1, (0xC5131000 >> 16) # lui $a1, 0xc513
/* 003FA8 800033A8 34A51000 */ ori $a1, (0xC5131000 & 0xFFFF) # ori $a1, $a1, 0x1000
/* 003FAC 800033AC 27A40034 */ addiu $a0, $sp, 0x34
/* 003FB0 800033B0 3C064290 */ lui $a2, 0x4290
/* 003FB4 800033B4 0C0AD4A7 */ jal load_giant_egg
/* 003FB8 800033B8 3C07C4C9 */ lui $a3, 0xc4c9
/* 003FBC 800033BC 27A40034 */ addiu $a0, $sp, 0x34
/* 003FC0 800033C0 27A50020 */ addiu $a1, $sp, 0x20
/* 003FC4 800033C4 27A60028 */ addiu $a2, $sp, 0x28
/* 003FC8 800033C8 0C0A7B22 */ jal func_8029EC88
/* 003FCC 800033CC 24070023 */ li $a3, 35
/* 003FD0 800033D0 3C05C523 */ lui $a1, (0xC523E000 >> 16) # lui $a1, 0xc523
/* 003FD4 800033D4 3C074438 */ lui $a3, (0x4438C000 >> 16) # lui $a3, 0x4438
/* 003FD8 800033D8 34E7C000 */ ori $a3, (0x4438C000 & 0xFFFF) # ori $a3, $a3, 0xc000
/* 003FDC 800033DC 34A5E000 */ ori $a1, (0xC523E000 & 0xFFFF) # ori $a1, $a1, 0xe000
/* 003FE0 800033E0 27A40034 */ addiu $a0, $sp, 0x34
/* 003FE4 800033E4 0C0AD4A7 */ jal load_giant_egg
/* 003FE8 800033E8 3C06429E */ lui $a2, 0x429e
/* 003FEC 800033EC 27A40034 */ addiu $a0, $sp, 0x34
/* 003FF0 800033F0 27A50020 */ addiu $a1, $sp, 0x20
/* 003FF4 800033F4 27A60028 */ addiu $a2, $sp, 0x28
/* 003FF8 800033F8 0C0A7B22 */ jal func_8029EC88
/* 003FFC 800033FC 24070023 */ li $a3, 35
/* 004000 80003400 3C040700 */ lui $a0, (0x07000C50 >> 16) # lui $a0, 0x700
/* 004004 80003404 240B00FF */ li $t3, 255
/* 004008 80003408 AFAB0010 */ sw $t3, 0x10($sp)
/* 00400C 8000340C 34840C50 */ ori $a0, (0x07000C50 & 0xFFFF) # ori $a0, $a0, 0xc50
/* 004010 80003410 24050064 */ li $a1, 100
/* 004014 80003414 240600FF */ li $a2, 255
/* 004018 80003418 0C0ABE2F */ jal func_802AF8BC
/* 00401C 8000341C 240700FF */ li $a3, 255
/* 004020 80003420 3C040700 */ lui $a0, (0x07000BD8 >> 16) # lui $a0, 0x700
/* 004024 80003424 240900FF */ li $t1, 255
/* 004028 80003428 AFA90010 */ sw $t1, 0x10($sp)
/* 00402C 8000342C 34840BD8 */ ori $a0, (0x07000BD8 & 0xFFFF) # ori $a0, $a0, 0xbd8
/* 004030 80003430 24050064 */ li $a1, 100
/* 004034 80003434 240600FF */ li $a2, 255
/* 004038 80003438 0C0ABE2F */ jal func_802AF8BC
/* 00403C 8000343C 240700FF */ li $a3, 255
/* 004040 80003440 3C040700 */ lui $a0, (0x07000B60 >> 16) # lui $a0, 0x700
/* 004044 80003444 240A00FF */ li $t2, 255
/* 004048 80003448 AFAA0010 */ sw $t2, 0x10($sp)
/* 00404C 8000344C 34840B60 */ ori $a0, (0x07000B60 & 0xFFFF) # ori $a0, $a0, 0xb60
/* 004050 80003450 24050064 */ li $a1, 100
/* 004054 80003454 240600FF */ li $a2, 255
/* 004058 80003458 0C0ABE2F */ jal func_802AF8BC
/* 00405C 8000345C 240700FF */ li $a3, 255
/* 004060 80003460 3C040700 */ lui $a0, (0x07000AE8 >> 16) # lui $a0, 0x700
/* 004064 80003464 240D00FF */ li $t5, 255
/* 004068 80003468 AFAD0010 */ sw $t5, 0x10($sp)
/* 00406C 8000346C 34840AE8 */ ori $a0, (0x07000AE8 & 0xFFFF) # ori $a0, $a0, 0xae8
/* 004070 80003470 24050064 */ li $a1, 100
/* 004074 80003474 240600FF */ li $a2, 255
/* 004078 80003478 0C0ABE2F */ jal func_802AF8BC
/* 00407C 8000347C 240700FF */ li $a3, 255
/* 004080 80003480 3C040700 */ lui $a0, (0x07000CC8 >> 16) # lui $a0, 0x700
/* 004084 80003484 241900FF */ li $t9, 255
/* 004088 80003488 AFB90010 */ sw $t9, 0x10($sp)
/* 00408C 8000348C 34840CC8 */ ori $a0, (0x07000CC8 & 0xFFFF) # ori $a0, $a0, 0xcc8
/* 004090 80003490 24050064 */ li $a1, 100
/* 004094 80003494 240600FF */ li $a2, 255
/* 004098 80003498 0C0ABE2F */ jal func_802AF8BC
/* 00409C 8000349C 240700FF */ li $a3, 255
/* 0040A0 800034A0 3C040700 */ lui $a0, (0x07000D50 >> 16) # lui $a0, 0x700
/* 0040A4 800034A4 241800FF */ li $t8, 255
/* 0040A8 800034A8 AFB80010 */ sw $t8, 0x10($sp)
/* 0040AC 800034AC 34840D50 */ ori $a0, (0x07000D50 & 0xFFFF) # ori $a0, $a0, 0xd50
/* 0040B0 800034B0 24050064 */ li $a1, 100
/* 0040B4 800034B4 240600FF */ li $a2, 255
/* 0040B8 800034B8 0C0ABE2F */ jal func_802AF8BC
/* 0040BC 800034BC 240700FF */ li $a3, 255
/* 0040C0 800034C0 3C040700 */ lui $a0, (0x07000DD0 >> 16) # lui $a0, 0x700
/* 0040C4 800034C4 240E00FF */ li $t6, 255
/* 0040C8 800034C8 AFAE0010 */ sw $t6, 0x10($sp)
/* 0040CC 800034CC 34840DD0 */ ori $a0, (0x07000DD0 & 0xFFFF) # ori $a0, $a0, 0xdd0
/* 0040D0 800034D0 24050064 */ li $a1, 100
/* 0040D4 800034D4 240600FF */ li $a2, 255
/* 0040D8 800034D8 0C0ABE2F */ jal func_802AF8BC
/* 0040DC 800034DC 240700FF */ li $a3, 255
/* 0040E0 800034E0 3C040700 */ lui $a0, (0x07000E48 >> 16) # lui $a0, 0x700
/* 0040E4 800034E4 240F00FF */ li $t7, 255
/* 0040E8 800034E8 AFAF0010 */ sw $t7, 0x10($sp)
/* 0040EC 800034EC 34840E48 */ ori $a0, (0x07000E48 & 0xFFFF) # ori $a0, $a0, 0xe48
/* 0040F0 800034F0 24050064 */ li $a1, 100
/* 0040F4 800034F4 240600FF */ li $a2, 255
/* 0040F8 800034F8 0C0ABE2F */ jal func_802AF8BC
/* 0040FC 800034FC 240700FF */ li $a3, 255
/* 004100 80003500 1000000A */ b .L8000352C
/* 004104 80003504 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80003508
/* 004108 80003508 3C040700 */ lui $a0, (0x07003FA8 >> 16) # lui $a0, 0x700
/* 00410C 8000350C 240800FF */ li $t0, 255
/* 004110 80003510 AFA80010 */ sw $t0, 0x10($sp)
/* 004114 80003514 34843FA8 */ ori $a0, (0x07003FA8 & 0xFFFF) # ori $a0, $a0, 0x3fa8
/* 004118 80003518 24050078 */ li $a1, 120
/* 00411C 8000351C 240600FF */ li $a2, 255
/* 004120 80003520 0C0ABE2F */ jal func_802AF8BC
/* 004124 80003524 240700FF */ li $a3, 255
.L80003528:
glabel L80003528
/* 004128 80003528 8FBF001C */ lw $ra, 0x1c($sp)
.L8000352C:
/* 00412C 8000352C 3C0C8015 */ lui $t4, %hi(D_80150110) # $t4, 0x8015
/* 004130 80003530 958C0110 */ lhu $t4, %lo(D_80150110)($t4)
/* 004134 80003534 3C018016 */ lui $at, 0x8016
/* 004138 80003538 27BD0040 */ addiu $sp, $sp, 0x40
/* 00413C 8000353C 03E00008 */ jr $ra
/* 004140 80003540 A42CF900 */ sh $t4, -0x700($at)
/* 004144 80003544 00000000 */ nop
/* 004148 80003548 00000000 */ nop
/* 00414C 8000354C 00000000 */ nop

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,74 @@
glabel func_80281780
/* 124DC0 80281780 3C0E800E */ lui $t6, %hi(gEnableDebugMode) # $t6, 0x800e
/* 124DC4 80281784 95CEC520 */ lhu $t6, %lo(gEnableDebugMode)($t6)
/* 124DC8 80281788 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 124DCC 8028178C AFBF0014 */ sw $ra, 0x14($sp)
/* 124DD0 80281790 11C00037 */ beqz $t6, .L80281870
/* 124DD4 80281794 3C0F800E */ lui $t7, %hi(D_800DC4BC) # $t7, 0x800e
/* 124DD8 80281798 8DEFC4BC */ lw $t7, %lo(D_800DC4BC)($t7)
/* 124DDC 8028179C 3C048028 */ lui $a0, %hi(D_80284ED0) # $a0, 0x8028
/* 124DE0 802817A0 3C058019 */ lui $a1, %hi(D_8018D9D0) # $a1, 0x8019
/* 124DE4 802817A4 95E20004 */ lhu $v0, 4($t7)
/* 124DE8 802817A8 24A5D9D0 */ addiu $a1, %lo(D_8018D9D0) # addiu $a1, $a1, -0x2630
/* 124DEC 802817AC 24844ED0 */ addiu $a0, %lo(D_80284ED0) # addiu $a0, $a0, 0x4ed0
/* 124DF0 802817B0 30580F0F */ andi $t8, $v0, 0xf0f
/* 124DF4 802817B4 1300002E */ beqz $t8, .L80281870
/* 124DF8 802817B8 30590008 */ andi $t9, $v0, 8
/* 124DFC 802817BC 13200005 */ beqz $t9, .L802817D4
/* 124E00 802817C0 30490002 */ andi $t1, $v0, 2
/* 124E04 802817C4 24080001 */ li $t0, 1
/* 124E08 802817C8 3C01800F */ lui $at, %hi(D_800E86A8) # $at, 0x800f
/* 124E0C 802817CC 10000026 */ b .L80281868
/* 124E10 802817D0 A02886A8 */ sb $t0, %lo(D_800E86A8)($at)
.L802817D4:
/* 124E14 802817D4 11200005 */ beqz $t1, .L802817EC
/* 124E18 802817D8 304B0001 */ andi $t3, $v0, 1
/* 124E1C 802817DC 240A0002 */ li $t2, 2
/* 124E20 802817E0 3C01800F */ lui $at, %hi(D_800E86A8) # $at, 0x800f
/* 124E24 802817E4 10000020 */ b .L80281868
/* 124E28 802817E8 A02A86A8 */ sb $t2, %lo(D_800E86A8)($at)
.L802817EC:
/* 124E2C 802817EC 11600005 */ beqz $t3, .L80281804
/* 124E30 802817F0 304D0004 */ andi $t5, $v0, 4
/* 124E34 802817F4 240C0003 */ li $t4, 3
/* 124E38 802817F8 3C01800F */ lui $at, %hi(D_800E86A8) # $at, 0x800f
/* 124E3C 802817FC 1000001A */ b .L80281868
/* 124E40 80281800 A02C86A8 */ sb $t4, %lo(D_800E86A8)($at)
.L80281804:
/* 124E44 80281804 11A00005 */ beqz $t5, .L8028181C
/* 124E48 80281808 304F0800 */ andi $t7, $v0, 0x800
/* 124E4C 8028180C 240E0004 */ li $t6, 4
/* 124E50 80281810 3C01800F */ lui $at, %hi(D_800E86A8) # $at, 0x800f
/* 124E54 80281814 10000014 */ b .L80281868
/* 124E58 80281818 A02E86A8 */ sb $t6, %lo(D_800E86A8)($at)
.L8028181C:
/* 124E5C 8028181C 11E00005 */ beqz $t7, .L80281834
/* 124E60 80281820 30590200 */ andi $t9, $v0, 0x200
/* 124E64 80281824 24180005 */ li $t8, 5
/* 124E68 80281828 3C01800F */ lui $at, %hi(D_800E86A8) # $at, 0x800f
/* 124E6C 8028182C 1000000E */ b .L80281868
/* 124E70 80281830 A03886A8 */ sb $t8, %lo(D_800E86A8)($at)
.L80281834:
/* 124E74 80281834 13200005 */ beqz $t9, .L8028184C
/* 124E78 80281838 30490100 */ andi $t1, $v0, 0x100
/* 124E7C 8028183C 24080006 */ li $t0, 6
/* 124E80 80281840 3C01800F */ lui $at, %hi(D_800E86A8) # $at, 0x800f
/* 124E84 80281844 10000008 */ b .L80281868
/* 124E88 80281848 A02886A8 */ sb $t0, %lo(D_800E86A8)($at)
.L8028184C:
/* 124E8C 8028184C 11200005 */ beqz $t1, .L80281864
/* 124E90 80281850 3C01800F */ lui $at, 0x800f
/* 124E94 80281854 240A0007 */ li $t2, 7
/* 124E98 80281858 3C01800F */ lui $at, %hi(D_800E86A8) # $at, 0x800f
/* 124E9C 8028185C 10000002 */ b .L80281868
/* 124EA0 80281860 A02A86A8 */ sb $t2, %lo(D_800E86A8)($at)
.L80281864:
/* 124EA4 80281864 A02086A8 */ sb $zero, %lo(D_800E86A8)($at)
.L80281868:
/* 124EA8 80281868 0C034D48 */ jal bcopy
/* 124EAC 8028186C 24060008 */ li $a2, 8
.L80281870:
/* 124EB0 80281870 8FBF0014 */ lw $ra, 0x14($sp)
/* 124EB4 80281874 27BD0018 */ addiu $sp, $sp, 0x18
/* 124EB8 80281878 03E00008 */ jr $ra
/* 124EBC 8028187C 00000000 */ nop

View File

@ -0,0 +1,18 @@
glabel func_80281880
/* 124EC0 80281880 3C05800F */ lui $a1, 0x800f
/* 124EC4 80281884 00A42821 */ addu $a1, $a1, $a0
/* 124EC8 80281888 3C028019 */ lui $v0, %hi(D_8018D9D0) # $v0, 0x8019
/* 124ECC 8028188C 2442D9D0 */ addiu $v0, %lo(D_8018D9D0) # addiu $v0, $v0, -0x2630
/* 124ED0 80281890 80A586A8 */ lb $a1, -0x7958($a1)
/* 124ED4 80281894 24040008 */ li $a0, 8
/* 124ED8 80281898 00001825 */ move $v1, $zero
.L8028189C:
/* 124EDC 8028189C 804E0000 */ lb $t6, ($v0)
/* 124EE0 802818A0 11C50004 */ beq $t6, $a1, .L802818B4
/* 124EE4 802818A4 00000000 */ nop
/* 124EE8 802818A8 24630001 */ addiu $v1, $v1, 1
/* 124EEC 802818AC 1464FFFB */ bne $v1, $a0, .L8028189C
/* 124EF0 802818B0 24420001 */ addiu $v0, $v0, 1
.L802818B4:
/* 124EF4 802818B4 03E00008 */ jr $ra
/* 124EF8 802818B8 00601025 */ move $v0, $v1

View File

@ -0,0 +1,47 @@
glabel func_802818BC
/* 124EFC 802818BC 3C0E8019 */ lui $t6, %hi(D_8018EDF3) # $t6, 0x8019
/* 124F00 802818C0 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6)
/* 124F04 802818C4 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 124F08 802818C8 24010002 */ li $at, 2
/* 124F0C 802818CC 11C1000A */ beq $t6, $at, .L802818F8
/* 124F10 802818D0 AFBF0014 */ sw $ra, 0x14($sp)
/* 124F14 802818D4 0C0A0620 */ jal func_80281880
/* 124F18 802818D8 00002025 */ move $a0, $zero
/* 124F1C 802818DC 3C038028 */ lui $v1, %hi(D_802874D8) # $v1, 0x8028
/* 124F20 802818E0 246374D8 */ addiu $v1, %lo(D_802874D8) # addiu $v1, $v1, 0x74d8
/* 124F24 802818E4 A062001D */ sb $v0, 0x1d($v1)
/* 124F28 802818E8 3C0F800F */ lui $t7, %hi(D_800E86A8) # $t7, 0x800f
/* 124F2C 802818EC 81EF86A8 */ lb $t7, %lo(D_800E86A8)($t7)
/* 124F30 802818F0 10000019 */ b .L80281958
/* 124F34 802818F4 A06F001E */ sb $t7, 0x1e($v1)
.L802818F8:
/* 124F38 802818F8 0C0A0620 */ jal func_80281880
/* 124F3C 802818FC 00002025 */ move $a0, $zero
/* 124F40 80281900 AFA2001C */ sw $v0, 0x1c($sp)
/* 124F44 80281904 AFA20024 */ sw $v0, 0x24($sp)
/* 124F48 80281908 0C0A0620 */ jal func_80281880
/* 124F4C 8028190C 24040001 */ li $a0, 1
/* 124F50 80281910 8FB8001C */ lw $t8, 0x1c($sp)
/* 124F54 80281914 0302082A */ slt $at, $t8, $v0
/* 124F58 80281918 10200008 */ beqz $at, .L8028193C
/* 124F5C 8028191C 3C19800F */ lui $t9, %hi(D_800E86A8) # $t9, 0x800f
/* 124F60 80281920 833986A8 */ lb $t9, %lo(D_800E86A8)($t9)
/* 124F64 80281924 8FA80024 */ lw $t0, 0x24($sp)
/* 124F68 80281928 3C038028 */ lui $v1, %hi(D_802874D8) # $v1, 0x8028
/* 124F6C 8028192C 246374D8 */ addiu $v1, %lo(D_802874D8) # addiu $v1, $v1, 0x74d8
/* 124F70 80281930 A079001E */ sb $t9, 0x1e($v1)
/* 124F74 80281934 10000008 */ b .L80281958
/* 124F78 80281938 A068001D */ sb $t0, 0x1d($v1)
.L8028193C:
/* 124F7C 8028193C 3C09800F */ lui $t1, %hi(D_800E86A9) # $t1, 0x800f
/* 124F80 80281940 812986A9 */ lb $t1, %lo(D_800E86A9)($t1)
/* 124F84 80281944 3C038028 */ lui $v1, %hi(D_802874D8) # $v1, 0x8028
/* 124F88 80281948 246374D8 */ addiu $v1, %lo(D_802874D8) # addiu $v1, $v1, 0x74d8
/* 124F8C 8028194C 3C018028 */ lui $at, %hi(D_802874F5) # $at, 0x8028
/* 124F90 80281950 A069001E */ sb $t1, 0x1e($v1)
/* 124F94 80281954 A02274F5 */ sb $v0, %lo(D_802874F5)($at)
.L80281958:
/* 124F98 80281958 8FBF0014 */ lw $ra, 0x14($sp)
/* 124F9C 8028195C 27BD0028 */ addiu $sp, $sp, 0x28
/* 124FA0 80281960 03E00008 */ jr $ra
/* 124FA4 80281964 00000000 */ nop

View File

@ -0,0 +1,183 @@
glabel load_ending_sequence_royalraceway
/* 124FA8 80281968 240E0007 */ li $t6, 7
/* 124FAC 8028196C 3C01800E */ lui $at, %hi(gCurrentCourseId) # $at, 0x800e
/* 124FB0 80281970 A42EC5A0 */ sh $t6, %lo(gCurrentCourseId)($at)
/* 124FB4 80281974 3C01800E */ lui $at, %hi(D_800DC5B4) # $at, 0x800e
/* 124FB8 80281978 240F0001 */ li $t7, 1
/* 124FBC 8028197C A42FC5B4 */ sh $t7, %lo(D_800DC5B4)($at)
/* 124FC0 80281980 3C01800E */ lui $at, %hi(D_800DC604) # $at, 0x800e
/* 124FC4 80281984 AC20C604 */ sw $zero, %lo(D_800DC604)($at)
/* 124FC8 80281988 3C018028 */ lui $at, %hi(D_80287550) # $at, 0x8028
/* 124FCC 8028198C 3418FFFF */ li $t8, 65535
/* 124FD0 80281990 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 124FD4 80281994 AC387550 */ sw $t8, %lo(D_80287550)($at)
/* 124FD8 80281998 AFBF0014 */ sw $ra, 0x14($sp)
/* 124FDC 8028199C 3C018028 */ lui $at, %hi(D_80287554) # $at, 0x8028
/* 124FE0 802819A0 0C0A9346 */ jal func_802A4D18
/* 124FE4 802819A4 AC207554 */ sw $zero, %lo(D_80287554)($at)
/* 124FE8 802819A8 0C0A9D2F */ jal func_802A74BC
/* 124FEC 802819AC 00000000 */ nop
/* 124FF0 802819B0 3C014270 */ li $at, 0x42700000 # 60.000000
/* 124FF4 802819B4 44810000 */ mtc1 $at, $f0
/* 124FF8 802819B8 3C018016 */ lui $at, %hi(D_801647A4) # $at, 0x8016
/* 124FFC 802819BC 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e
/* 125000 802819C0 E42047A4 */ swc1 $f0, %lo(D_801647A4)($at)
/* 125004 802819C4 3C018015 */ lui $at, %hi(D_80150130) # $at, 0x8015
/* 125008 802819C8 2442C5EC */ addiu $v0, %lo(D_800DC5EC) # addiu $v0, $v0, -0x3a14
/* 12500C 802819CC E4200130 */ swc1 $f0, %lo(D_80150130)($at)
/* 125010 802819D0 8C480000 */ lw $t0, ($v0)
/* 125014 802819D4 24190140 */ li $t9, 320
/* 125018 802819D8 240900F0 */ li $t1, 240
/* 12501C 802819DC A519002C */ sh $t9, 0x2c($t0)
/* 125020 802819E0 8C4A0000 */ lw $t2, ($v0)
/* 125024 802819E4 240B00A0 */ li $t3, 160
/* 125028 802819E8 240D0078 */ li $t5, 120
/* 12502C 802819EC A549002E */ sh $t1, 0x2e($t2)
/* 125030 802819F0 8C4C0000 */ lw $t4, ($v0)
/* 125034 802819F4 3C0F8016 */ lui $t7, %hi(D_8015F734) # $t7, 0x8016
/* 125038 802819F8 3C01800E */ lui $at, %hi(D_800DC530) # $at, 0x800e
/* 12503C 802819FC A58B0030 */ sh $t3, 0x30($t4)
/* 125040 80281A00 8C4E0000 */ lw $t6, ($v0)
/* 125044 80281A04 3C04800E */ lui $a0, %hi(gCurrentCourseId) # $a0, 0x800e
/* 125048 80281A08 A5CD0032 */ sh $t5, 0x32($t6)
/* 12504C 80281A0C 8DEFF734 */ lw $t7, %lo(D_8015F734)($t7)
/* 125050 80281A10 AC20C530 */ sw $zero, %lo(D_800DC530)($at)
/* 125054 80281A14 3C018016 */ lui $at, %hi(D_8015F728) # $at, 0x8016
/* 125058 80281A18 AC2FF728 */ sw $t7, %lo(D_8015F728)($at)
/* 12505C 80281A1C 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e
/* 125060 80281A20 AC20C52C */ sw $zero, %lo(D_800DC52C)($at)
/* 125064 80281A24 3C01800E */ lui $at, %hi(gModeSelection) # $at, 0x800e
/* 125068 80281A28 AC20C53C */ sw $zero, %lo(gModeSelection)($at)
/* 12506C 80281A2C 0C0AAA46 */ jal load_course
/* 125070 80281A30 8484C5A0 */ lh $a0, %lo(gCurrentCourseId)($a0)
/* 125074 80281A34 3C188016 */ lui $t8, %hi(D_8015F728) # $t8, 0x8016
/* 125078 80281A38 8F18F728 */ lw $t8, %lo(D_8015F728)($t8)
/* 12507C 80281A3C 3C018016 */ lui $at, %hi(D_8015F730) # $at, 0x8016
/* 125080 80281A40 3C040082 */ lui $a0, %hi(D_00821D10) # $a0, 0x82
/* 125084 80281A44 3C050082 */ lui $a1, %hi(D_00825800) # $a1, 0x82
/* 125088 80281A48 24A55800 */ addiu $a1, %lo(D_00825800) # addiu $a1, $a1, 0x5800
/* 12508C 80281A4C 24841D10 */ addiu $a0, %lo(D_00821D10) # addiu $a0, $a0, 0x1d10
/* 125090 80281A50 0C0AAA23 */ jal func_802AA88C
/* 125094 80281A54 AC38F730 */ sw $t8, %lo(D_8015F730)($at)
/* 125098 80281A58 2404000B */ li $a0, 11
/* 12509C 80281A5C 0C0A9EE5 */ jal set_segment_base_addr
/* 1250A0 80281A60 00402825 */ move $a1, $v0
/* 1250A4 80281A64 3C040083 */ lui $a0, %hi(D_00831DC0) # $a0, 0x83
/* 1250A8 80281A68 3C050083 */ lui $a1, %hi(D_00835BA0) # $a1, 0x83
/* 1250AC 80281A6C 24A55BA0 */ addiu $a1, %lo(D_00835BA0) # addiu $a1, $a1, 0x5ba0
/* 1250B0 80281A70 0C0AAA23 */ jal func_802AA88C
/* 1250B4 80281A74 24841DC0 */ addiu $a0, %lo(D_00831DC0) # addiu $a0, $a0, 0x1dc0
/* 1250B8 80281A78 24040006 */ li $a0, 6
/* 1250BC 80281A7C 0C0A9EE5 */ jal set_segment_base_addr
/* 1250C0 80281A80 00402825 */ move $a1, $v0
/* 1250C4 80281A84 3C01C4FA */ li $at, 0xC4FA0000 # -2000.000000
/* 1250C8 80281A88 44812000 */ mtc1 $at, $f4
/* 1250CC 80281A8C 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016
/* 1250D0 80281A90 2403EA5F */ li $v1, -5537
/* 1250D4 80281A94 E424F8E4 */ swc1 $f4, %lo(D_8015F8E4)($at)
/* 1250D8 80281A98 3C018016 */ lui $at, %hi(D_8015F6EA) # $at, 0x8016
/* 1250DC 80281A9C A423F6EA */ sh $v1, %lo(D_8015F6EA)($at)
/* 1250E0 80281AA0 3C018016 */ lui $at, %hi(D_8015F6EE) # $at, 0x8016
/* 1250E4 80281AA4 A423F6EE */ sh $v1, %lo(D_8015F6EE)($at)
/* 1250E8 80281AA8 3C018016 */ lui $at, %hi(D_8015F6F2) # $at, 0x8016
/* 1250EC 80281AAC A423F6F2 */ sh $v1, %lo(D_8015F6F2)($at)
/* 1250F0 80281AB0 240615A1 */ li $a2, 5537
/* 1250F4 80281AB4 3C018016 */ lui $at, %hi(D_8015F6E8) # $at, 0x8016
/* 1250F8 80281AB8 A426F6E8 */ sh $a2, %lo(D_8015F6E8)($at)
/* 1250FC 80281ABC 3C018016 */ lui $at, %hi(D_8015F6EC) # $at, 0x8016
/* 125100 80281AC0 A426F6EC */ sh $a2, %lo(D_8015F6EC)($at)
/* 125104 80281AC4 3C018016 */ lui $at, %hi(D_8015F6F0) # $at, 0x8016
/* 125108 80281AC8 A426F6F0 */ sh $a2, %lo(D_8015F6F0)($at)
/* 12510C 80281ACC 3C018016 */ lui $at, %hi(D_8015F59C) # $at, 0x8016
/* 125110 80281AD0 AC20F59C */ sw $zero, %lo(D_8015F59C)($at)
/* 125114 80281AD4 3C018016 */ lui $at, %hi(D_8015F5A0) # $at, 0x8016
/* 125118 80281AD8 AC20F5A0 */ sw $zero, %lo(D_8015F5A0)($at)
/* 12511C 80281ADC 3C018016 */ lui $at, %hi(D_8015F58C) # $at, 0x8016
/* 125120 80281AE0 AC20F58C */ sw $zero, %lo(D_8015F58C)($at)
/* 125124 80281AE4 3C018016 */ lui $at, %hi(D_8015F588) # $at, 0x8016
/* 125128 80281AE8 A420F588 */ sh $zero, %lo(D_8015F588)($at)
/* 12512C 80281AEC 3C01800E */ lui $at, %hi(D_800DC5BC) # $at, 0x800e
/* 125130 80281AF0 A420C5BC */ sh $zero, %lo(D_800DC5BC)($at)
/* 125134 80281AF4 3C01800E */ lui $at, %hi(D_800DC5C8) # $at, 0x800e
/* 125138 80281AF8 3C198016 */ lui $t9, %hi(D_8015F728) # $t9, 0x8016
/* 12513C 80281AFC 8F39F728 */ lw $t9, %lo(D_8015F728)($t9)
/* 125140 80281B00 A420C5C8 */ sh $zero, %lo(D_800DC5C8)($at)
/* 125144 80281B04 3C018016 */ lui $at, %hi(D_8015F580) # $at, 0x8016
/* 125148 80281B08 3C040700 */ lui $a0, (0x070067E8 >> 16) # lui $a0, 0x700
/* 12514C 80281B0C 348467E8 */ ori $a0, (0x070067E8 & 0xFFFF) # ori $a0, $a0, 0x67e8
/* 125150 80281B10 2405FFFF */ li $a1, -1
/* 125154 80281B14 0C0ABD6B */ jal func_802AF5AC
/* 125158 80281B18 AC39F580 */ sw $t9, %lo(D_8015F580)($at)
/* 12515C 80281B1C 3C040700 */ lui $a0, (0x0700AEF8 >> 16) # lui $a0, 0x700
/* 125160 80281B20 3484AEF8 */ ori $a0, (0x0700AEF8 & 0xFFFF) # ori $a0, $a0, 0xaef8
/* 125164 80281B24 0C0ABD6B */ jal func_802AF5AC
/* 125168 80281B28 2405FFFF */ li $a1, -1
/* 12516C 80281B2C 3C040700 */ lui $a0, (0x0700A970 >> 16) # lui $a0, 0x700
/* 125170 80281B30 3484A970 */ ori $a0, (0x0700A970 & 0xFFFF) # ori $a0, $a0, 0xa970
/* 125174 80281B34 0C0ABD6B */ jal func_802AF5AC
/* 125178 80281B38 24050008 */ li $a1, 8
/* 12517C 80281B3C 3C040700 */ lui $a0, (0x0700AC30 >> 16) # lui $a0, 0x700
/* 125180 80281B40 3484AC30 */ ori $a0, (0x0700AC30 & 0xFFFF) # ori $a0, $a0, 0xac30
/* 125184 80281B44 0C0ABD6B */ jal func_802AF5AC
/* 125188 80281B48 24050008 */ li $a1, 8
/* 12518C 80281B4C 3C040700 */ lui $a0, (0x07000CE0 >> 16) # lui $a0, 0x700
/* 125190 80281B50 34840CE0 */ ori $a0, (0x07000CE0 & 0xFFFF) # ori $a0, $a0, 0xce0
/* 125194 80281B54 0C0ABD6B */ jal func_802AF5AC
/* 125198 80281B58 24050010 */ li $a1, 16
/* 12519C 80281B5C 3C040700 */ lui $a0, (0x07000E88 >> 16) # lui $a0, 0x700
/* 1251A0 80281B60 34840E88 */ ori $a0, (0x07000E88 & 0xFFFF) # ori $a0, $a0, 0xe88
/* 1251A4 80281B64 0C0ABD6B */ jal func_802AF5AC
/* 1251A8 80281B68 24050010 */ li $a1, 16
/* 1251AC 80281B6C 3C040700 */ lui $a0, (0x0700A618 >> 16) # lui $a0, 0x700
/* 1251B0 80281B70 3484A618 */ ori $a0, (0x0700A618 & 0xFFFF) # ori $a0, $a0, 0xa618
/* 1251B4 80281B74 0C0ABD6B */ jal func_802AF5AC
/* 1251B8 80281B78 2405FFFF */ li $a1, -1
/* 1251BC 80281B7C 3C040700 */ lui $a0, (0x0700A618 >> 16) # lui $a0, 0x700
/* 1251C0 80281B80 3484A618 */ ori $a0, (0x0700A618 & 0xFFFF) # ori $a0, $a0, 0xa618
/* 1251C4 80281B84 0C0ABD6B */ jal func_802AF5AC
/* 1251C8 80281B88 2405FFFF */ li $a1, -1
/* 1251CC 80281B8C 3C040700 */ lui $a0, (0x070023F8 >> 16) # lui $a0, 0x700
/* 1251D0 80281B90 348423F8 */ ori $a0, (0x070023F8 & 0xFFFF) # ori $a0, $a0, 0x23f8
/* 1251D4 80281B94 0C0ABD6B */ jal func_802AF5AC
/* 1251D8 80281B98 24050001 */ li $a1, 1
/* 1251DC 80281B9C 3C040700 */ lui $a0, (0x07002478 >> 16) # lui $a0, 0x700
/* 1251E0 80281BA0 34842478 */ ori $a0, (0x07002478 & 0xFFFF) # ori $a0, $a0, 0x2478
/* 1251E4 80281BA4 0C0ABD6B */ jal func_802AF5AC
/* 1251E8 80281BA8 24050001 */ li $a1, 1
/* 1251EC 80281BAC 0C0A571B */ jal func_80295C6C
/* 1251F0 80281BB0 00000000 */ nop
/* 1251F4 80281BB4 0C0A05E0 */ jal func_80281780
/* 1251F8 80281BB8 00000000 */ nop
/* 1251FC 80281BBC 0C0A062F */ jal func_802818BC
/* 125200 80281BC0 00000000 */ nop
/* 125204 80281BC4 0C00F420 */ jal func_8003D080
/* 125208 80281BC8 00000000 */ nop
/* 12520C 80281BCC 0C01BA70 */ jal func_8006E9C0
/* 125210 80281BD0 00000000 */ nop
/* 125214 80281BD4 0C007017 */ jal func_8001C05C
/* 125218 80281BD8 00000000 */ nop
/* 12521C 80281BDC 0C0A03EC */ jal func_80280FB0
/* 125220 80281BE0 00000000 */ nop
/* 125224 80281BE4 0C0A05AE */ jal func_802816B8
/* 125228 80281BE8 00000000 */ nop
/* 12522C 80281BEC 0C024F98 */ jal func_80093E60
/* 125230 80281BF0 00000000 */ nop
/* 125234 80281BF4 3C088016 */ lui $t0, %hi(gHeapEndPtr) # $t0, 0x8016
/* 125238 80281BF8 3C098016 */ lui $t1, %hi(D_8015F728) # $t1, 0x8016
/* 12523C 80281BFC 8D29F728 */ lw $t1, %lo(D_8015F728)($t1)
/* 125240 80281C00 8D08F72C */ lw $t0, %lo(gHeapEndPtr)($t0)
/* 125244 80281C04 3C01447A */ li $at, 0x447A0000 # 1000.000000
/* 125248 80281C08 44815000 */ mtc1 $at, $f10
/* 12524C 80281C0C 01095823 */ subu $t3, $t0, $t1
/* 125250 80281C10 448B3000 */ mtc1 $t3, $f6
/* 125254 80281C14 8FBF0014 */ lw $ra, 0x14($sp)
/* 125258 80281C18 3C028016 */ lui $v0, %hi(D_801625F8) # $v0, 0x8016
/* 12525C 80281C1C 46803220 */ cvt.s.w $f8, $f6
/* 125260 80281C20 244225F8 */ addiu $v0, %lo(D_801625F8) # addiu $v0, $v0, 0x25f8
/* 125264 80281C24 AC4B0000 */ sw $t3, ($v0)
/* 125268 80281C28 3C018016 */ lui $at, %hi(D_801625FC)
/* 12526C 80281C2C 27BD0018 */ addiu $sp, $sp, 0x18
/* 125270 80281C30 460A4403 */ div.s $f16, $f8, $f10
/* 125274 80281C34 03E00008 */ jr $ra
/* 125278 80281C38 E43025FC */ swc1 $f16, %lo(D_801625FC)($at)

View File

@ -0,0 +1,71 @@
glabel dma_copy
/* 001D58 80001158 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 001D5C 8000115C AFB2002C */ sw $s2, 0x2c($sp)
/* 001D60 80001160 00A09025 */ move $s2, $a1
/* 001D64 80001164 AFBF003C */ sw $ra, 0x3c($sp)
/* 001D68 80001168 AFB10028 */ sw $s1, 0x28($sp)
/* 001D6C 8000116C AFB00024 */ sw $s0, 0x24($sp)
/* 001D70 80001170 00C08025 */ move $s0, $a2
/* 001D74 80001174 00808825 */ move $s1, $a0
/* 001D78 80001178 AFB50038 */ sw $s5, 0x38($sp)
/* 001D7C 8000117C AFB40034 */ sw $s4, 0x34($sp)
/* 001D80 80001180 AFB30030 */ sw $s3, 0x30($sp)
/* 001D84 80001184 0C0336E0 */ jal osInvalDCache
/* 001D88 80001188 00C02825 */ move $a1, $a2
/* 001D8C 8000118C 2E010101 */ sltiu $at, $s0, 0x101
/* 001D90 80001190 14200018 */ bnez $at, .L800011F4
/* 001D94 80001194 3C158015 */ lui $s5, %hi(D_8014F098) # $s5, 0x8015
/* 001D98 80001198 3C148015 */ lui $s4, %hi(D_8014F0A0) # $s4, 0x8015
/* 001D9C 8000119C 3C138015 */ lui $s3, %hi(D_8014EF58) # $s3, 0x8015
/* 001DA0 800011A0 2673EF58 */ addiu $s3, %lo(D_8014EF58) # addiu $s3, $s3, -0x10a8
/* 001DA4 800011A4 2694F0A0 */ addiu $s4, %lo(D_8014F0A0) # addiu $s4, $s4, -0xf60
/* 001DA8 800011A8 26B5F098 */ addiu $s5, %lo(D_8014F098) # addiu $s5, $s5, -0xf68
.L800011AC:
/* 001DAC 800011AC 240E0100 */ li $t6, 256
/* 001DB0 800011B0 AFAE0014 */ sw $t6, 0x14($sp)
/* 001DB4 800011B4 02802025 */ move $a0, $s4
/* 001DB8 800011B8 00002825 */ move $a1, $zero
/* 001DBC 800011BC 00003025 */ move $a2, $zero
/* 001DC0 800011C0 02403825 */ move $a3, $s2
/* 001DC4 800011C4 AFB10010 */ sw $s1, 0x10($sp)
/* 001DC8 800011C8 0C03370C */ jal osPiStartDma
/* 001DCC 800011CC AFB30018 */ sw $s3, 0x18($sp)
/* 001DD0 800011D0 02602025 */ move $a0, $s3
/* 001DD4 800011D4 02A02825 */ move $a1, $s5
/* 001DD8 800011D8 0C0335D4 */ jal osRecvMesg
/* 001DDC 800011DC 24060001 */ li $a2, 1
/* 001DE0 800011E0 2610FF00 */ addiu $s0, $s0, -0x100
/* 001DE4 800011E4 2E010101 */ sltiu $at, $s0, 0x101
/* 001DE8 800011E8 26520100 */ addiu $s2, $s2, 0x100
/* 001DEC 800011EC 1020FFEF */ beqz $at, .L800011AC
/* 001DF0 800011F0 26310100 */ addiu $s1, $s1, 0x100
.L800011F4:
/* 001DF4 800011F4 3C138015 */ lui $s3, %hi(D_8014EF58) # $s3, 0x8015
/* 001DF8 800011F8 3C148015 */ lui $s4, %hi(D_8014F0A0) # $s4, 0x8015
/* 001DFC 800011FC 3C158015 */ lui $s5, %hi(D_8014F098) # $s5, 0x8015
/* 001E00 80001200 26B5F098 */ addiu $s5, %lo(D_8014F098) # addiu $s5, $s5, -0xf68
/* 001E04 80001204 2694F0A0 */ addiu $s4, %lo(D_8014F0A0) # addiu $s4, $s4, -0xf60
/* 001E08 80001208 1200000D */ beqz $s0, .L80001240
/* 001E0C 8000120C 2673EF58 */ addiu $s3, %lo(D_8014EF58) # addiu $s3, $s3, -0x10a8
/* 001E10 80001210 02802025 */ move $a0, $s4
/* 001E14 80001214 00002825 */ move $a1, $zero
/* 001E18 80001218 00003025 */ move $a2, $zero
/* 001E1C 8000121C 02403825 */ move $a3, $s2
/* 001E20 80001220 AFB10010 */ sw $s1, 0x10($sp)
/* 001E24 80001224 AFB00014 */ sw $s0, 0x14($sp)
/* 001E28 80001228 0C03370C */ jal osPiStartDma
/* 001E2C 8000122C AFB30018 */ sw $s3, 0x18($sp)
/* 001E30 80001230 02602025 */ move $a0, $s3
/* 001E34 80001234 02A02825 */ move $a1, $s5
/* 001E38 80001238 0C0335D4 */ jal osRecvMesg
/* 001E3C 8000123C 24060001 */ li $a2, 1
.L80001240:
/* 001E40 80001240 8FBF003C */ lw $ra, 0x3c($sp)
/* 001E44 80001244 8FB00024 */ lw $s0, 0x24($sp)
/* 001E48 80001248 8FB10028 */ lw $s1, 0x28($sp)
/* 001E4C 8000124C 8FB2002C */ lw $s2, 0x2c($sp)
/* 001E50 80001250 8FB30030 */ lw $s3, 0x30($sp)
/* 001E54 80001254 8FB40034 */ lw $s4, 0x34($sp)
/* 001E58 80001258 8FB50038 */ lw $s5, 0x38($sp)
/* 001E5C 8000125C 03E00008 */ jr $ra
/* 001E60 80001260 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -0,0 +1,115 @@
glabel func_800006E8
/* 0012E8 800006E8 3C028015 */ lui $v0, %hi(D_8015029C) # $v0, 0x8015
/* 0012EC 800006EC 2442029C */ addiu $v0, %lo(D_8015029C) # addiu $v0, $v0, 0x29c
/* 0012F0 800006F0 8C4F0000 */ lw $t7, ($v0)
/* 0012F4 800006F4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0012F8 800006F8 3C0E8015 */ lui $t6, %hi(D_8014EF88) # $t6, 0x8015
/* 0012FC 800006FC AFBF0014 */ sw $ra, 0x14($sp)
/* 001300 80000700 25CEEF88 */ addiu $t6, %lo(D_8014EF88) # addiu $t6, $t6, -0x1078
/* 001304 80000704 ADEE0040 */ sw $t6, 0x40($t7)
/* 001308 80000708 8C590000 */ lw $t9, ($v0)
/* 00130C 8000070C 24180002 */ li $t8, 2
/* 001310 80000710 24080001 */ li $t0, 1
/* 001314 80000714 AF380044 */ sw $t8, 0x44($t9)
/* 001318 80000718 8C490000 */ lw $t1, ($v0)
/* 00131C 8000071C 24040002 */ li $a0, 2
/* 001320 80000720 3C03800E */ lui $v1, %hi(rspbootTextStart) # $v1, 0x800e
/* 001324 80000724 AD280000 */ sw $t0, ($t1)
/* 001328 80000728 8C4A0000 */ lw $t2, ($v0)
/* 00132C 8000072C 24638F70 */ addiu $v1, %lo(rspbootTextStart) # addiu $v1, $v1, -0x7090
/* 001330 80000730 3C0C800E */ lui $t4, %hi(rspbootTextEnd) # $t4, 0x800e
/* 001334 80000734 AD440004 */ sw $a0, 4($t2)
/* 001338 80000738 8C4B0000 */ lw $t3, ($v0)
/* 00133C 8000073C 258C9040 */ addiu $t4, %lo(rspbootTextEnd) # addiu $t4, $t4, -0x6fc0
/* 001340 80000740 01836823 */ subu $t5, $t4, $v1
/* 001344 80000744 AD630008 */ sw $v1, 8($t3)
/* 001348 80000748 8C4E0000 */ lw $t6, ($v0)
/* 00134C 8000074C 3C0F800E */ lui $t7, %hi(D_800DC50C) # $t7, 0x800e
/* 001350 80000750 24010004 */ li $at, 4
/* 001354 80000754 ADCD000C */ sw $t5, 0xc($t6)
/* 001358 80000758 8DEFC50C */ lw $t7, %lo(D_800DC50C)($t7)
/* 00135C 8000075C 3C18800E */ lui $t8, %hi(gPlayerCountSelection1) # $t8, 0x800e
/* 001360 80000760 3C19800E */ lui $t9, %hi(gspF3DEXTextStart) # $t9, 0x800e
/* 001364 80000764 55E10006 */ bnel $t7, $at, .L80000780
/* 001368 80000768 8C480000 */ lw $t0, ($v0)
/* 00136C 8000076C 8F18C538 */ lw $t8, %lo(gPlayerCountSelection1)($t8)
/* 001370 80000770 24010001 */ li $at, 1
/* 001374 80000774 5701000A */ bnel $t8, $at, .L800007A0
/* 001378 80000778 8C4C0000 */ lw $t4, ($v0)
/* 00137C 8000077C 8C480000 */ lw $t0, ($v0)
.L80000780:
/* 001380 80000780 27399040 */ addiu $t9, %lo(gspF3DEXTextStart) # addiu $t9, $t9, -0x6fc0
/* 001384 80000784 3C09800F */ lui $t1, %hi(gspF3DEXDataStart) # $t1, 0x800f
/* 001388 80000788 AD190010 */ sw $t9, 0x10($t0)
/* 00138C 8000078C 8C4A0000 */ lw $t2, ($v0)
/* 001390 80000790 25293D00 */ addiu $t1, %lo(gspF3DEXDataStart) # addiu $t1, $t1, 0x3d00
/* 001394 80000794 10000009 */ b .L800007BC
/* 001398 80000798 AD490018 */ sw $t1, 0x18($t2)
/* 00139C 8000079C 8C4C0000 */ lw $t4, ($v0)
.L800007A0:
/* 0013A0 800007A0 3C0B800E */ lui $t3, %hi(gspF3DLXTextStart) # $t3, 0x800e
/* 0013A4 800007A4 256BA420 */ addiu $t3, %lo(gspF3DLXTextStart) # addiu $t3, $t3, -0x5be0
/* 0013A8 800007A8 AD8B0010 */ sw $t3, 0x10($t4)
/* 0013AC 800007AC 8C4E0000 */ lw $t6, ($v0)
/* 0013B0 800007B0 3C0D800F */ lui $t5, %hi(gspF3DLXDataStart) # $t5, 0x800f
/* 0013B4 800007B4 25AD4500 */ addiu $t5, %lo(gspF3DLXDataStart) # addiu $t5, $t5, 0x4500
/* 0013B8 800007B8 ADCD0018 */ sw $t5, 0x18($t6)
.L800007BC:
/* 0013BC 800007BC 8C4F0000 */ lw $t7, ($v0)
/* 0013C0 800007C0 24191000 */ li $t9, 4096
/* 0013C4 800007C4 24090800 */ li $t1, 2048
/* 0013C8 800007C8 ADE00004 */ sw $zero, 4($t7)
/* 0013CC 800007CC 8C580000 */ lw $t8, ($v0)
/* 0013D0 800007D0 3C0B8016 */ lui $t3, %hi(gGfxSPTaskStack) # $t3, 0x8016
/* 0013D4 800007D4 256BEFE0 */ addiu $t3, %lo(gGfxSPTaskStack) # addiu $t3, $t3, -0x1020
/* 0013D8 800007D8 AF040004 */ sw $a0, 4($t8)
/* 0013DC 800007DC 8C480000 */ lw $t0, ($v0)
/* 0013E0 800007E0 240D0400 */ li $t5, 1024
/* 0013E4 800007E4 3C0F8039 */ lui $t7, %hi(gGfxSPTaskOutputBuffer) # $t7, 0x8039
/* 0013E8 800007E8 AD190014 */ sw $t9, 0x14($t0)
/* 0013EC 800007EC 8C4A0000 */ lw $t2, ($v0)
/* 0013F0 800007F0 25EFFF80 */ addiu $t7, %lo(gGfxSPTaskOutputBuffer) # addiu $t7, $t7, -0x80
/* 0013F4 800007F4 3C19803B */ lui $t9, %hi(gGfxSPTaskOutputBufferSize) # $t9, 0x803b
/* 0013F8 800007F8 AD49001C */ sw $t1, 0x1c($t2)
/* 0013FC 800007FC 8C4C0000 */ lw $t4, ($v0)
/* 001400 80000800 3C038015 */ lui $v1, %hi(gGfxPool) # $v1, 0x8015
/* 001404 80000804 2739F780 */ addiu $t9, %lo(gGfxSPTaskOutputBufferSize) # addiu $t9, $t9, -0x880
/* 001408 80000808 AD8B0020 */ sw $t3, 0x20($t4)
/* 00140C 8000080C 8C4E0000 */ lw $t6, ($v0)
/* 001410 80000810 2463EF40 */ addiu $v1, %lo(gGfxPool) # addiu $v1, $v1, -0x10c0
/* 001414 80000814 3C010001 */ lui $at, (0x0001A0C0 >> 16) # lui $at, 1
/* 001418 80000818 ADCD0024 */ sw $t5, 0x24($t6)
/* 00141C 8000081C 8C580000 */ lw $t8, ($v0)
/* 001420 80000820 3421A0C0 */ ori $at, (0x0001A0C0 & 0xFFFF) # ori $at, $at, 0xa0c0
/* 001424 80000824 3C0C8015 */ lui $t4, %hi(gDisplayListHead) # $t4, 0x8015
/* 001428 80000828 AF0F0028 */ sw $t7, 0x28($t8)
/* 00142C 8000082C 8C480000 */ lw $t0, ($v0)
/* 001430 80000830 AD19002C */ sw $t9, 0x2c($t0)
/* 001434 80000834 8C690000 */ lw $t1, ($v1)
/* 001438 80000838 8C4B0000 */ lw $t3, ($v0)
/* 00143C 8000083C 01215021 */ addu $t2, $t1, $at
/* 001440 80000840 AD6A0030 */ sw $t2, 0x30($t3)
/* 001444 80000844 8C6D0000 */ lw $t5, ($v1)
/* 001448 80000848 8D8C0298 */ lw $t4, %lo(gDisplayListHead)($t4)
/* 00144C 8000084C 3C01FFFE */ lui $at, (0xFFFE5F40 >> 16) # lui $at, 0xfffe
/* 001450 80000850 34215F40 */ ori $at, (0xFFFE5F40 & 0xFFFF) # ori $at, $at, 0x5f40
/* 001454 80000854 018D7023 */ subu $t6, $t4, $t5
/* 001458 80000858 01C17821 */ addu $t7, $t6, $at
/* 00145C 8000085C 8C480000 */ lw $t0, ($v0)
/* 001460 80000860 000FC0C3 */ sra $t8, $t7, 3
/* 001464 80000864 0018C8C0 */ sll $t9, $t8, 3
/* 001468 80000868 0C023085 */ jal func_8008C214
/* 00146C 8000086C AD190034 */ sw $t9, 0x34($t0)
/* 001470 80000870 3C028015 */ lui $v0, %hi(D_8015029C) # $v0, 0x8015
/* 001474 80000874 2442029C */ addiu $v0, %lo(D_8015029C) # addiu $v0, $v0, 0x29c
/* 001478 80000878 8C4A0000 */ lw $t2, ($v0)
/* 00147C 8000087C 3C098016 */ lui $t1, %hi(gGfxSPTaskYieldBuffer) # $t1, 0x8016
/* 001480 80000880 2529DEE0 */ addiu $t1, %lo(gGfxSPTaskYieldBuffer) # addiu $t1, $t1, -0x2120
/* 001484 80000884 AD490038 */ sw $t1, 0x38($t2)
/* 001488 80000888 8C4C0000 */ lw $t4, ($v0)
/* 00148C 8000088C 240B0D00 */ li $t3, 3328
/* 001490 80000890 AD8B003C */ sw $t3, 0x3c($t4)
/* 001494 80000894 8FBF0014 */ lw $ra, 0x14($sp)
/* 001498 80000898 27BD0018 */ addiu $sp, $sp, 0x18
/* 00149C 8000089C 03E00008 */ jr $ra
/* 0014A0 800008A0 00000000 */ nop

View File

@ -0,0 +1,68 @@
glabel func_80000934
/* 001534 80000934 3C0E8016 */ lui $t6, %hi(D_801625EA) # $t6, 0x8016
/* 001538 80000938 85CE25EA */ lh $t6, %lo(D_801625EA)($t6)
/* 00153C 8000093C 00047900 */ sll $t7, $a0, 4
/* 001540 80000940 3C18800F */ lui $t8, %hi(gPlayer1Controller) # $t8, 0x800f
/* 001544 80000944 15C00036 */ bnez $t6, .L80000A20
/* 001548 80000948 0004C880 */ sll $t9, $a0, 2
/* 00154C 8000094C 0324C823 */ subu $t9, $t9, $a0
/* 001550 80000950 3C088015 */ lui $t0, %hi(D_8014F0F0) # $t0, 0x8015
/* 001554 80000954 2508F0F0 */ addiu $t0, %lo(D_8014F0F0) # addiu $t0, $t0, -0xf10
/* 001558 80000958 0019C840 */ sll $t9, $t9, 1
/* 00155C 8000095C 03281821 */ addu $v1, $t9, $t0
/* 001560 80000960 80690002 */ lb $t1, 2($v1)
/* 001564 80000964 27186910 */ addiu $t8, %lo(gPlayer1Controller) # addiu $t8, $t8, 0x6910
/* 001568 80000968 01F81021 */ addu $v0, $t7, $t8
/* 00156C 8000096C A4490000 */ sh $t1, ($v0)
/* 001570 80000970 806A0003 */ lb $t2, 3($v1)
/* 001574 80000974 A44A0002 */ sh $t2, 2($v0)
/* 001578 80000978 94650000 */ lhu $a1, ($v1)
/* 00157C 8000097C 30AB0004 */ andi $t3, $a1, 4
/* 001580 80000980 11600003 */ beqz $t3, .L80000990
/* 001584 80000984 34AC2000 */ ori $t4, $a1, 0x2000
/* 001588 80000988 A46C0000 */ sh $t4, ($v1)
/* 00158C 8000098C 3185FFFF */ andi $a1, $t4, 0xffff
.L80000990:
/* 001590 80000990 94470004 */ lhu $a3, 4($v0)
/* 001594 80000994 84460000 */ lh $a2, ($v0)
/* 001598 80000998 00002025 */ move $a0, $zero
/* 00159C 8000099C 00A76826 */ xor $t5, $a1, $a3
/* 0015A0 800009A0 01A57024 */ and $t6, $t5, $a1
/* 0015A4 800009A4 A44E0006 */ sh $t6, 6($v0)
/* 0015A8 800009A8 946F0000 */ lhu $t7, ($v1)
/* 0015AC 800009AC 28C1FFCE */ slti $at, $a2, -0x32
/* 0015B0 800009B0 01E7C026 */ xor $t8, $t7, $a3
/* 0015B4 800009B4 0307C824 */ and $t9, $t8, $a3
/* 0015B8 800009B8 A4590008 */ sh $t9, 8($v0)
/* 0015BC 800009BC 94680000 */ lhu $t0, ($v1)
/* 0015C0 800009C0 10200002 */ beqz $at, .L800009CC
/* 0015C4 800009C4 A4480004 */ sh $t0, 4($v0)
/* 0015C8 800009C8 24040200 */ li $a0, 512
.L800009CC:
/* 0015CC 800009CC 28C10033 */ slti $at, $a2, 0x33
/* 0015D0 800009D0 14200002 */ bnez $at, .L800009DC
/* 0015D4 800009D4 34890100 */ ori $t1, $a0, 0x100
/* 0015D8 800009D8 3124FFFF */ andi $a0, $t1, 0xffff
.L800009DC:
/* 0015DC 800009DC 84430002 */ lh $v1, 2($v0)
/* 0015E0 800009E0 348B0400 */ ori $t3, $a0, 0x400
/* 0015E4 800009E4 2861FFCE */ slti $at, $v1, -0x32
/* 0015E8 800009E8 50200003 */ beql $at, $zero, .L800009F8
/* 0015EC 800009EC 28610033 */ slti $at, $v1, 0x33
/* 0015F0 800009F0 3164FFFF */ andi $a0, $t3, 0xffff
/* 0015F4 800009F4 28610033 */ slti $at, $v1, 0x33
.L800009F8:
/* 0015F8 800009F8 14200002 */ bnez $at, .L80000A04
/* 0015FC 800009FC 348D0800 */ ori $t5, $a0, 0x800
/* 001600 80000A00 31A4FFFF */ andi $a0, $t5, 0xffff
.L80000A04:
/* 001604 80000A04 9445000A */ lhu $a1, 0xa($v0)
/* 001608 80000A08 A444000A */ sh $a0, 0xa($v0)
/* 00160C 80000A0C 00853026 */ xor $a2, $a0, $a1
/* 001610 80000A10 00867824 */ and $t7, $a0, $a2
/* 001614 80000A14 00A6C024 */ and $t8, $a1, $a2
/* 001618 80000A18 A44F000C */ sh $t7, 0xc($v0)
/* 00161C 80000A1C A458000E */ sh $t8, 0xe($v0)
.L80000A20:
/* 001620 80000A20 03E00008 */ jr $ra
/* 001624 80000A24 00000000 */ nop

View File

@ -0,0 +1,9 @@
glabel func_80000BEC
/* 0017EC 80000BEC 3C0E8030 */ lui $t6, %hi(D_802F9F80) # $t6, 0x8030
/* 0017F0 80000BF0 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 0017F4 80000BF4 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0017F8 80000BF8 25CE9F80 */ addiu $t6, %lo(D_802F9F80) # addiu $t6, $t6, -0x6080
/* 0017FC 80000BFC 01C17824 */ and $t7, $t6, $at
/* 001800 80000C00 3C018015 */ lui $at, 0x8015
/* 001804 80000C04 03E00008 */ jr $ra
/* 001808 80000C08 AC2F02B4 */ sw $t7, 0x2b4($at)

View File

@ -0,0 +1,29 @@
glabel func_80000C40
/* 001840 80000C40 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 001844 80000C44 AFBF0014 */ sw $ra, 0x14($sp)
/* 001848 80000C48 0C033624 */ jal osWritebackDCacheAll
/* 00184C 80000C4C AFA40018 */ sw $a0, 0x18($sp)
/* 001850 80000C50 8FA70018 */ lw $a3, 0x18($sp)
/* 001854 80000C54 3C02800E */ lui $v0, %hi(sCurrentDisplaySPTask) # $v0, 0x800e
/* 001858 80000C58 2442C4B0 */ addiu $v0, %lo(sCurrentDisplaySPTask) # addiu $v0, $v0, -0x3b50
/* 00185C 80000C5C ACE00048 */ sw $zero, 0x48($a3)
/* 001860 80000C60 8C4E0000 */ lw $t6, ($v0)
/* 001864 80000C64 3C048015 */ lui $a0, %hi(D_8014EFB8) # $a0, 0x8015
/* 001868 80000C68 2484EFB8 */ addiu $a0, %lo(D_8014EFB8) # addiu $a0, $a0, -0x1048
/* 00186C 80000C6C 15C00009 */ bnez $t6, .L80000C94
/* 001870 80000C70 3C01800E */ lui $at, 0x800e
/* 001874 80000C74 AC470000 */ sw $a3, ($v0)
/* 001878 80000C78 3C01800E */ lui $at, %hi(D_800DC4B8) # $at, 0x800e
/* 00187C 80000C7C AC20C4B8 */ sw $zero, %lo(D_800DC4B8)($at)
/* 001880 80000C80 24050067 */ li $a1, 103
/* 001884 80000C84 0C033630 */ jal osSendMesg
/* 001888 80000C88 00003025 */ move $a2, $zero
/* 00188C 80000C8C 10000003 */ b .L80000C9C
/* 001890 80000C90 8FBF0014 */ lw $ra, 0x14($sp)
.L80000C94:
/* 001894 80000C94 AC27C4B8 */ sw $a3, %lo(D_800DC4B8)($at)
/* 001898 80000C98 8FBF0014 */ lw $ra, 0x14($sp)
.L80000C9C:
/* 00189C 80000C9C 27BD0018 */ addiu $sp, $sp, 0x18
/* 0018A0 80000CA0 03E00008 */ jr $ra
/* 0018A4 80000CA4 00000000 */ nop

View File

@ -0,0 +1,22 @@
glabel func_80000CE8
/* 0018E8 80000CE8 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015
/* 0018EC 80000CEC 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298
/* 0018F0 80000CF0 8CA20000 */ lw $v0, ($a1)
/* 0018F4 80000CF4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0018F8 80000CF8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0018FC 80000CFC 244E0008 */ addiu $t6, $v0, 8
/* 001900 80000D00 ACAE0000 */ sw $t6, ($a1)
/* 001904 80000D04 3C0FE900 */ lui $t7, 0xe900
/* 001908 80000D08 AC4F0000 */ sw $t7, ($v0)
/* 00190C 80000D0C AC400004 */ sw $zero, 4($v0)
/* 001910 80000D10 8CA20000 */ lw $v0, ($a1)
/* 001914 80000D14 3C19B800 */ lui $t9, 0xb800
/* 001918 80000D18 24580008 */ addiu $t8, $v0, 8
/* 00191C 80000D1C ACB80000 */ sw $t8, ($a1)
/* 001920 80000D20 AC400004 */ sw $zero, 4($v0)
/* 001924 80000D24 0C0001BA */ jal func_800006E8
/* 001928 80000D28 AC590000 */ sw $t9, ($v0)
/* 00192C 80000D2C 8FBF0014 */ lw $ra, 0x14($sp)
/* 001930 80000D30 27BD0018 */ addiu $sp, $sp, 0x18
/* 001934 80000D34 03E00008 */ jr $ra
/* 001938 80000D38 00000000 */ nop

View File

@ -0,0 +1,50 @@
glabel func_80000D3C
/* 00193C 80000D3C 3C0B8015 */ lui $t3, %hi(gDisplayListHead) # $t3, 0x8015
/* 001940 80000D40 256B0298 */ addiu $t3, %lo(gDisplayListHead) # addiu $t3, $t3, 0x298
/* 001944 80000D44 8D620000 */ lw $v0, ($t3)
/* 001948 80000D48 3C0CE700 */ lui $t4, 0xe700
/* 00194C 80000D4C 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900
/* 001950 80000D50 244E0008 */ addiu $t6, $v0, 8
/* 001954 80000D54 AD6E0000 */ sw $t6, ($t3)
/* 001958 80000D58 AC400004 */ sw $zero, 4($v0)
/* 00195C 80000D5C AC4C0000 */ sw $t4, ($v0)
/* 001960 80000D60 8D630000 */ lw $v1, ($t3)
/* 001964 80000D64 3C190F0A */ lui $t9, (0x0F0A4000 >> 16) # lui $t9, 0xf0a
/* 001968 80000D68 37394000 */ ori $t9, (0x0F0A4000 & 0xFFFF) # ori $t9, $t9, 0x4000
/* 00196C 80000D6C 246F0008 */ addiu $t7, $v1, 8
/* 001970 80000D70 AD6F0000 */ sw $t7, ($t3)
/* 001974 80000D74 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d
/* 001978 80000D78 AC780000 */ sw $t8, ($v1)
/* 00197C 80000D7C AC790004 */ sw $t9, 4($v1)
/* 001980 80000D80 8D630000 */ lw $v1, ($t3)
/* 001984 80000D84 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00
/* 001988 80000D88 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402
/* 00198C 80000D8C 246E0008 */ addiu $t6, $v1, 8
/* 001990 80000D90 AD6E0000 */ sw $t6, ($t3)
/* 001994 80000D94 3C0F0030 */ lui $t7, 0x30
/* 001998 80000D98 AC6F0004 */ sw $t7, 4($v1)
/* 00199C 80000D9C AC6D0000 */ sw $t5, ($v1)
/* 0019A0 80000DA0 8D630000 */ lw $v1, ($t3)
/* 0019A4 80000DA4 3C19F700 */ lui $t9, 0xf700
/* 0019A8 80000DA8 3C0FF64F */ lui $t7, (0xF64FC3BC >> 16) # lui $t7, 0xf64f
/* 0019AC 80000DAC 24780008 */ addiu $t8, $v1, 8
/* 0019B0 80000DB0 AD780000 */ sw $t8, ($t3)
/* 0019B4 80000DB4 AC640004 */ sw $a0, 4($v1)
/* 0019B8 80000DB8 AC790000 */ sw $t9, ($v1)
/* 0019BC 80000DBC 8D630000 */ lw $v1, ($t3)
/* 0019C0 80000DC0 35EFC3BC */ ori $t7, (0xF64FC3BC & 0xFFFF) # ori $t7, $t7, 0xc3bc
/* 0019C4 80000DC4 246E0008 */ addiu $t6, $v1, 8
/* 0019C8 80000DC8 AD6E0000 */ sw $t6, ($t3)
/* 0019CC 80000DCC AC600004 */ sw $zero, 4($v1)
/* 0019D0 80000DD0 AC6F0000 */ sw $t7, ($v1)
/* 0019D4 80000DD4 8D630000 */ lw $v1, ($t3)
/* 0019D8 80000DD8 24780008 */ addiu $t8, $v1, 8
/* 0019DC 80000DDC AD780000 */ sw $t8, ($t3)
/* 0019E0 80000DE0 AC600004 */ sw $zero, 4($v1)
/* 0019E4 80000DE4 AC6C0000 */ sw $t4, ($v1)
/* 0019E8 80000DE8 8D630000 */ lw $v1, ($t3)
/* 0019EC 80000DEC 24790008 */ addiu $t9, $v1, 8
/* 0019F0 80000DF0 AD790000 */ sw $t9, ($t3)
/* 0019F4 80000DF4 AC600004 */ sw $zero, 4($v1)
/* 0019F8 80000DF8 03E00008 */ jr $ra
/* 0019FC 80000DFC AC6D0000 */ sw $t5, ($v1)

View File

@ -0,0 +1,46 @@
glabel func_80000E00
/* 001A00 80000E00 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 001A04 80000E04 3C028015 */ lui $v0, %hi(gGfxPool) # $v0, 0x8015
/* 001A08 80000E08 3C0E8010 */ lui $t6, 0x8010
/* 001A0C 80000E0C 2442EF40 */ addiu $v0, %lo(gGfxPool) # addiu $v0, $v0, -0x10c0
/* 001A10 80000E10 AFBF0014 */ sw $ra, 0x14($sp)
/* 001A14 80000E14 25C5D860 */ addiu $a1, $t6, -0x27a0
/* 001A18 80000E18 AC450000 */ sw $a1, ($v0)
/* 001A1C 80000E1C 0C0A9EE5 */ jal set_segment_base_addr
/* 001A20 80000E20 24040001 */ li $a0, 1
/* 001A24 80000E24 3C028015 */ lui $v0, %hi(gGfxPool) # $v0, 0x8015
/* 001A28 80000E28 8C42EF40 */ lw $v0, %lo(gGfxPool)($v0)
/* 001A2C 80000E2C 3C010002 */ lui $at, (0x00028B20 >> 16) # lui $at, 2
/* 001A30 80000E30 34218B20 */ ori $at, (0x00028B20 & 0xFFFF) # ori $at, $at, 0x8b20
/* 001A34 80000E34 00417821 */ addu $t7, $v0, $at
/* 001A38 80000E38 3C018015 */ lui $at, %hi(D_8015029C) # $at, 0x8015
/* 001A3C 80000E3C AC2F029C */ sw $t7, %lo(D_8015029C)($at)
/* 001A40 80000E40 3C010001 */ lui $at, (0x0001A0C0 >> 16) # lui $at, 1
/* 001A44 80000E44 3421A0C0 */ ori $at, (0x0001A0C0 & 0xFFFF) # ori $at, $at, 0xa0c0
/* 001A48 80000E48 0041C021 */ addu $t8, $v0, $at
/* 001A4C 80000E4C 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 001A50 80000E50 0C00032A */ jal func_80000CA8
/* 001A54 80000E54 AC380298 */ sw $t8, %lo(gDisplayListHead)($at)
/* 001A58 80000E58 0C00034F */ jal func_80000D3C
/* 001A5C 80000E5C 00002025 */ move $a0, $zero
/* 001A60 80000E60 0C00033A */ jal func_80000CE8
/* 001A64 80000E64 00000000 */ nop
/* 001A68 80000E68 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 001A6C 80000E6C 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 001A70 80000E70 3C010002 */ lui $at, (0x00028B20 >> 16) # lui $at, 2
/* 001A74 80000E74 34218B20 */ ori $at, (0x00028B20 & 0xFFFF) # ori $at, $at, 0x8b20
/* 001A78 80000E78 0C000310 */ jal func_80000C40
/* 001A7C 80000E7C 00812021 */ addu $a0, $a0, $at
/* 001A80 80000E80 3C02800E */ lui $v0, %hi(D_800DC560) # $v0, 0x800e
/* 001A84 80000E84 3C03800E */ lui $v1, %hi(D_800DC54C) # $v1, 0x800e
/* 001A88 80000E88 2463C54C */ addiu $v1, %lo(D_800DC54C) # addiu $v1, $v1, -0x3ab4
/* 001A8C 80000E8C 2442C560 */ addiu $v0, %lo(D_800DC560) # addiu $v0, $v0, -0x3aa0
/* 001A90 80000E90 94590000 */ lhu $t9, ($v0)
/* 001A94 80000E94 8C690000 */ lw $t1, ($v1)
/* 001A98 80000E98 8FBF0014 */ lw $ra, 0x14($sp)
/* 001A9C 80000E9C 27280001 */ addiu $t0, $t9, 1
/* 001AA0 80000EA0 252A0001 */ addiu $t2, $t1, 1
/* 001AA4 80000EA4 A4480000 */ sh $t0, ($v0)
/* 001AA8 80000EA8 AC6A0000 */ sw $t2, ($v1)
/* 001AAC 80000EAC 03E00008 */ jr $ra
/* 001AB0 80000EB0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -0,0 +1,33 @@
glabel func_80000EB4
/* 001AB4 80000EB4 3C0E800E */ lui $t6, %hi(D_800DC54C) # $t6, 0x800e
/* 001AB8 80000EB8 8DCEC54C */ lw $t6, %lo(D_800DC54C)($t6)
/* 001ABC 80000EBC 3C010002 */ lui $at, (0x00028B70 >> 16) # lui $at, 2
/* 001AC0 80000EC0 34218B70 */ ori $at, (0x00028B70 & 0xFFFF) # ori $at, $at, 0x8b70
/* 001AC4 80000EC4 31CF0001 */ andi $t7, $t6, 1
/* 001AC8 80000EC8 01E10019 */ multu $t7, $at
/* 001ACC 80000ECC 3C198010 */ lui $t9, %hi(D_800FD860) # $t9, 0x8010
/* 001AD0 80000ED0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 001AD4 80000ED4 3C028015 */ lui $v0, %hi(gGfxPool) # $v0, 0x8015
/* 001AD8 80000ED8 2739D860 */ addiu $t9, %lo(D_800FD860) # addiu $t9, $t9, -0x27a0
/* 001ADC 80000EDC 2442EF40 */ addiu $v0, %lo(gGfxPool) # addiu $v0, $v0, -0x10c0
/* 001AE0 80000EE0 AFBF0014 */ sw $ra, 0x14($sp)
/* 001AE4 80000EE4 24040001 */ li $a0, 1
/* 001AE8 80000EE8 0000C012 */ mflo $t8
/* 001AEC 80000EEC 03192821 */ addu $a1, $t8, $t9
/* 001AF0 80000EF0 0C0A9EE5 */ jal set_segment_base_addr
/* 001AF4 80000EF4 AC450000 */ sw $a1, ($v0)
/* 001AF8 80000EF8 3C028015 */ lui $v0, %hi(gGfxPool) # $v0, 0x8015
/* 001AFC 80000EFC 8C42EF40 */ lw $v0, %lo(gGfxPool)($v0)
/* 001B00 80000F00 3C010001 */ lui $at, (0x0001A0C0 >> 16) # lui $at, 1
/* 001B04 80000F04 3421A0C0 */ ori $at, (0x0001A0C0 & 0xFFFF) # ori $at, $at, 0xa0c0
/* 001B08 80000F08 00414821 */ addu $t1, $v0, $at
/* 001B0C 80000F0C 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 001B10 80000F10 AC290298 */ sw $t1, %lo(gDisplayListHead)($at)
/* 001B14 80000F14 3C010002 */ lui $at, (0x00028B20 >> 16) # lui $at, 2
/* 001B18 80000F18 8FBF0014 */ lw $ra, 0x14($sp)
/* 001B1C 80000F1C 34218B20 */ ori $at, (0x00028B20 & 0xFFFF) # ori $at, $at, 0x8b20
/* 001B20 80000F20 00415021 */ addu $t2, $v0, $at
/* 001B24 80000F24 3C018015 */ lui $at, %hi(D_8015029C) # $at, 0x8015
/* 001B28 80000F28 AC2A029C */ sw $t2, %lo(D_8015029C)($at)
/* 001B2C 80000F2C 03E00008 */ jr $ra
/* 001B30 80000F30 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -0,0 +1,77 @@
glabel func_80000F34
/* 001B34 80000F34 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 001B38 80000F38 AFBF001C */ sw $ra, 0x1c($sp)
/* 001B3C 80000F3C AFB00018 */ sw $s0, 0x18($sp)
/* 001B40 80000F40 0C000D54 */ jal profiler_log_thread5_time
/* 001B44 80000F44 24040002 */ li $a0, 2
/* 001B48 80000F48 3C048015 */ lui $a0, %hi(D_8014EF88) # $a0, 0x8015
/* 001B4C 80000F4C 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001B50 80000F50 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001B54 80000F54 2484EF88 */ addiu $a0, %lo(D_8014EF88) # addiu $a0, $a0, -0x1078
/* 001B58 80000F58 0C0335D4 */ jal osRecvMesg
/* 001B5C 80000F5C 24060001 */ li $a2, 1
/* 001B60 80000F60 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 001B64 80000F64 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 001B68 80000F68 3C010002 */ lui $at, (0x00028B20 >> 16) # lui $at, 2
/* 001B6C 80000F6C 34218B20 */ ori $at, (0x00028B20 & 0xFFFF) # ori $at, $at, 0x8b20
/* 001B70 80000F70 0C000310 */ jal func_80000C40
/* 001B74 80000F74 00812021 */ addu $a0, $a0, $at
/* 001B78 80000F78 0C000D54 */ jal profiler_log_thread5_time
/* 001B7C 80000F7C 24040003 */ li $a0, 3
/* 001B80 80000F80 3C048015 */ lui $a0, %hi(D_8014EF70) # $a0, 0x8015
/* 001B84 80000F84 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001B88 80000F88 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001B8C 80000F8C 2484EF70 */ addiu $a0, %lo(D_8014EF70) # addiu $a0, $a0, -0x1090
/* 001B90 80000F90 0C0335D4 */ jal osRecvMesg
/* 001B94 80000F94 24060001 */ li $a2, 1
/* 001B98 80000F98 3C10800E */ lui $s0, %hi(D_800DC55C) # $s0, 0x800e
/* 001B9C 80000F9C 2610C55C */ addiu $s0, %lo(D_800DC55C) # addiu $s0, $s0, -0x3aa4
/* 001BA0 80000FA0 960E0000 */ lhu $t6, ($s0)
/* 001BA4 80000FA4 3C048015 */ lui $a0, 0x8015
/* 001BA8 80000FA8 3C018000 */ lui $at, 0x8000
/* 001BAC 80000FAC 000E7880 */ sll $t7, $t6, 2
/* 001BB0 80000FB0 008F2021 */ addu $a0, $a0, $t7
/* 001BB4 80000FB4 8C8402A8 */ lw $a0, 0x2a8($a0)
/* 001BB8 80000FB8 0081C025 */ or $t8, $a0, $at
/* 001BBC 80000FBC 0C033684 */ jal osViSwapBuffer
/* 001BC0 80000FC0 03002025 */ move $a0, $t8
/* 001BC4 80000FC4 0C000D54 */ jal profiler_log_thread5_time
/* 001BC8 80000FC8 24040004 */ li $a0, 4
/* 001BCC 80000FCC 3C048015 */ lui $a0, %hi(D_8014EF70) # $a0, 0x8015
/* 001BD0 80000FD0 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001BD4 80000FD4 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001BD8 80000FD8 2484EF70 */ addiu $a0, %lo(D_8014EF70) # addiu $a0, $a0, -0x1090
/* 001BDC 80000FDC 0C0335D4 */ jal osRecvMesg
/* 001BE0 80000FE0 24060001 */ li $a2, 1
/* 001BE4 80000FE4 96190000 */ lhu $t9, ($s0)
/* 001BE8 80000FE8 3C048015 */ lui $a0, 0x8015
/* 001BEC 80000FEC 00194080 */ sll $t0, $t9, 2
/* 001BF0 80000FF0 00882021 */ addu $a0, $a0, $t0
/* 001BF4 80000FF4 0C0011AB */ jal func_800046AC
/* 001BF8 80000FF8 8C8402A8 */ lw $a0, 0x2a8($a0)
/* 001BFC 80000FFC 96090000 */ lhu $t1, ($s0)
/* 001C00 80001000 24030003 */ li $v1, 3
/* 001C04 80001004 3C02800E */ lui $v0, %hi(D_800DC560) # $v0, 0x800e
/* 001C08 80001008 252A0001 */ addiu $t2, $t1, 1
/* 001C0C 8000100C 314BFFFF */ andi $t3, $t2, 0xffff
/* 001C10 80001010 146B0002 */ bne $v1, $t3, .L8000101C
/* 001C14 80001014 A60A0000 */ sh $t2, ($s0)
/* 001C18 80001018 A6000000 */ sh $zero, ($s0)
.L8000101C:
/* 001C1C 8000101C 2442C560 */ addiu $v0, %lo(D_800DC560) # addiu $v0, $v0, -0x3aa0
/* 001C20 80001020 944C0000 */ lhu $t4, ($v0)
/* 001C24 80001024 258D0001 */ addiu $t5, $t4, 1
/* 001C28 80001028 31AEFFFF */ andi $t6, $t5, 0xffff
/* 001C2C 8000102C 146E0002 */ bne $v1, $t6, .L80001038
/* 001C30 80001030 A44D0000 */ sh $t5, ($v0)
/* 001C34 80001034 A4400000 */ sh $zero, ($v0)
.L80001038:
/* 001C38 80001038 3C02800E */ lui $v0, %hi(D_800DC54C) # $v0, 0x800e
/* 001C3C 8000103C 2442C54C */ addiu $v0, %lo(D_800DC54C) # addiu $v0, $v0, -0x3ab4
/* 001C40 80001040 8C4F0000 */ lw $t7, ($v0)
/* 001C44 80001044 8FBF001C */ lw $ra, 0x1c($sp)
/* 001C48 80001048 8FB00018 */ lw $s0, 0x18($sp)
/* 001C4C 8000104C 25F80001 */ addiu $t8, $t7, 1
/* 001C50 80001050 AC580000 */ sw $t8, ($v0)
/* 001C54 80001054 03E00008 */ jr $ra
/* 001C58 80001058 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -0,0 +1,29 @@
glabel func_8000105C
/* 001C5C 8000105C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 001C60 80001060 AFBF0014 */ sw $ra, 0x14($sp)
/* 001C64 80001064 3C048028 */ lui $a0, 0x8028
/* 001C68 80001068 0C033698 */ jal bzero
/* 001C6C 8000106C 3405DF00 */ li $a1, 57088
/* 001C70 80001070 0C033624 */ jal osWritebackDCacheAll
/* 001C74 80001074 00000000 */ nop
/* 001C78 80001078 3C050012 */ lui $a1, %hi(_code_80280000SegmentRomStart) # $a1, 0x12
/* 001C7C 8000107C 3C0E0013 */ lui $t6, %hi(_code_80280000SegmentRomEnd) # $t6, 0x13
/* 001C80 80001080 24A53640 */ addiu $a1, %lo(_code_80280000SegmentRomStart) # addiu $a1, $a1, 0x3640
/* 001C84 80001084 25CEAAE0 */ addiu $t6, %lo(_code_80280000SegmentRomEnd) # addiu $t6, $t6, -0x5520
/* 001C88 80001088 01C53023 */ subu $a2, $t6, $a1
/* 001C8C 8000108C 24C6000F */ addiu $a2, $a2, 0xf
/* 001C90 80001090 2401FFF0 */ li $at, -16
/* 001C94 80001094 00C17824 */ and $t7, $a2, $at
/* 001C98 80001098 01E03025 */ move $a2, $t7
/* 001C9C 8000109C 0C000456 */ jal dma_copy
/* 001CA0 800010A0 3C048028 */ lui $a0, 0x8028
/* 001CA4 800010A4 3C048028 */ lui $a0, 0x8028
/* 001CA8 800010A8 0C0336C0 */ jal osInvalCache
/* 001CAC 800010AC 3405DF00 */ li $a1, 57088
/* 001CB0 800010B0 3C048028 */ lui $a0, 0x8028
/* 001CB4 800010B4 0C0336E0 */ jal osInvalDCache
/* 001CB8 800010B8 3405DF00 */ li $a1, 57088
/* 001CBC 800010BC 8FBF0014 */ lw $ra, 0x14($sp)
/* 001CC0 800010C0 27BD0018 */ addiu $sp, $sp, 0x18
/* 001CC4 800010C4 03E00008 */ jr $ra
/* 001CC8 800010C8 00000000 */ nop

View File

@ -0,0 +1,36 @@
glabel func_800010CC
/* 001CCC 800010CC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 001CD0 800010D0 AFBF0014 */ sw $ra, 0x14($sp)
/* 001CD4 800010D4 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028
/* 001CD8 800010D8 3C050002 */ lui $a1, (0x0002C470 >> 16) # lui $a1, 2
/* 001CDC 800010DC 34A5C470 */ ori $a1, (0x0002C470 & 0xFFFF) # ori $a1, $a1, 0xc470
/* 001CE0 800010E0 0C033698 */ jal bzero
/* 001CE4 800010E4 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00
/* 001CE8 800010E8 0C033624 */ jal osWritebackDCacheAll
/* 001CEC 800010EC 00000000 */ nop
/* 001CF0 800010F0 3C05000F */ lui $a1, %hi(_code_8028DF00SegmentRomStart) # $a1, 0xf
/* 001CF4 800010F4 3C0E0012 */ lui $t6, %hi(_code_8028DF00SegmentRomEnd) # $t6, 0x12
/* 001CF8 800010F8 24A57510 */ addiu $a1, %lo(_code_8028DF00SegmentRomStart) # addiu $a1, $a1, 0x7510
/* 001CFC 800010FC 25CE3640 */ addiu $t6, %lo(_code_8028DF00SegmentRomEnd) # addiu $t6, $t6, 0x3640
/* 001D00 80001100 01C53023 */ subu $a2, $t6, $a1
/* 001D04 80001104 24C6000F */ addiu $a2, $a2, 0xf
/* 001D08 80001108 2401FFF0 */ li $at, -16
/* 001D0C 8000110C 00C17824 */ and $t7, $a2, $at
/* 001D10 80001110 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028
/* 001D14 80001114 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00
/* 001D18 80001118 0C000456 */ jal dma_copy
/* 001D1C 8000111C 01E03025 */ move $a2, $t7
/* 001D20 80001120 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028
/* 001D24 80001124 3C050002 */ lui $a1, (0x0002C470 >> 16) # lui $a1, 2
/* 001D28 80001128 34A5C470 */ ori $a1, (0x0002C470 & 0xFFFF) # ori $a1, $a1, 0xc470
/* 001D2C 8000112C 0C0336C0 */ jal osInvalCache
/* 001D30 80001130 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00
/* 001D34 80001134 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028
/* 001D38 80001138 3C050002 */ lui $a1, (0x0002C470 >> 16) # lui $a1, 2
/* 001D3C 8000113C 34A5C470 */ ori $a1, (0x0002C470 & 0xFFFF) # ori $a1, $a1, 0xc470
/* 001D40 80001140 0C0336E0 */ jal osInvalDCache
/* 001D44 80001144 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00
/* 001D48 80001148 8FBF0014 */ lw $ra, 0x14($sp)
/* 001D4C 8000114C 27BD0018 */ addiu $sp, $sp, 0x18
/* 001D50 80001150 03E00008 */ jr $ra
/* 001D54 80001154 00000000 */ nop

View File

@ -0,0 +1,738 @@
glabel func_8000142C
/* 00202C 8000142C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 002030 80001430 3C018015 */ lui $at, %hi(D_80150112) # $at, 0x8015
/* 002034 80001434 AFB0001C */ sw $s0, 0x1c($sp)
/* 002038 80001438 A4200112 */ sh $zero, %lo(D_80150112)($at)
/* 00203C 8000143C 3C10800E */ lui $s0, %hi(D_800DC5FC) # $s0, 0x800e
/* 002040 80001440 3C018016 */ lui $at, %hi(D_80164AF0) # $at, 0x8016
/* 002044 80001444 2610C5FC */ addiu $s0, %lo(D_800DC5FC) # addiu $s0, $s0, -0x3a04
/* 002048 80001448 A4204AF0 */ sh $zero, %lo(D_80164AF0)($at)
/* 00204C 8000144C 960E0000 */ lhu $t6, ($s0)
/* 002050 80001450 AFBF0024 */ sw $ra, 0x24($sp)
/* 002054 80001454 AFB10020 */ sw $s1, 0x20($sp)
/* 002058 80001458 11C00003 */ beqz $t6, .L80001468
/* 00205C 8000145C F7B40010 */ sdc1 $f20, 0x10($sp)
/* 002060 80001460 0C0A42C5 */ jal func_80290B14
/* 002064 80001464 00000000 */ nop
.L80001468:
/* 002068 80001468 3C0F800E */ lui $t7, %hi(D_800DC5C0) # $t7, 0x800e
/* 00206C 8000146C 95EFC5C0 */ lhu $t7, %lo(D_800DC5C0)($t7)
/* 002070 80001470 3C03800E */ lui $v1, %hi(sNumVBlanks) # $v1, 0x800e
/* 002074 80001474 2463C58C */ addiu $v1, %lo(sNumVBlanks) # addiu $v1, $v1, -0x3a74
/* 002078 80001478 51E00006 */ beql $t7, $zero, .L80001494
/* 00207C 8000147C 84620000 */ lh $v0, ($v1)
/* 002080 80001480 0C0A8E2D */ jal func_802A38B4
/* 002084 80001484 00000000 */ nop
/* 002088 80001488 1000028B */ b .L80001EB8
/* 00208C 8000148C 8FBF0024 */ lw $ra, 0x24($sp)
/* 002090 80001490 84620000 */ lh $v0, ($v1)
.L80001494:
/* 002094 80001494 24180005 */ li $t8, 5
/* 002098 80001498 24190001 */ li $t9, 1
/* 00209C 8000149C 28410006 */ slti $at, $v0, 6
/* 0020A0 800014A0 14200003 */ bnez $at, .L800014B0
/* 0020A4 800014A4 00000000 */ nop
/* 0020A8 800014A8 A4780000 */ sh $t8, ($v1)
/* 0020AC 800014AC 84620000 */ lh $v0, ($v1)
.L800014B0:
/* 0020B0 800014B0 04410002 */ bgez $v0, .L800014BC
/* 0020B4 800014B4 00000000 */ nop
/* 0020B8 800014B8 A4790000 */ sh $t9, ($v1)
.L800014BC:
/* 0020BC 800014BC 0C0A93BD */ jal func_802A4EF4
/* 0020C0 800014C0 00000000 */ nop
/* 0020C4 800014C4 3C02800E */ lui $v0, %hi(D_800DC52C) # $v0, 0x800e
/* 0020C8 800014C8 8C42C52C */ lw $v0, %lo(D_800DC52C)($v0)
/* 0020CC 800014CC 24090002 */ li $t1, 2
/* 0020D0 800014D0 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 0020D4 800014D4 1040000D */ beqz $v0, .L8000150C
/* 0020D8 800014D8 00000000 */ nop
/* 0020DC 800014DC 24010001 */ li $at, 1
/* 0020E0 800014E0 10410117 */ beq $v0, $at, .L80001940
/* 0020E4 800014E4 3C0B800E */ lui $t3, 0x800e
/* 0020E8 800014E8 24040002 */ li $a0, 2
/* 0020EC 800014EC 104400AB */ beq $v0, $a0, .L8000179C
/* 0020F0 800014F0 3C0B800E */ lui $t3, 0x800e
/* 0020F4 800014F4 24030003 */ li $v1, 3
/* 0020F8 800014F8 1043017B */ beq $v0, $v1, .L80001AE8
/* 0020FC 800014FC 3C0C800E */ lui $t4, 0x800e
/* 002100 80001500 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e
/* 002104 80001504 1000022F */ b .L80001DC4
/* 002108 80001508 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0)
.L8000150C:
/* 00210C 8000150C 0C0017D1 */ jal func_80005F44
/* 002110 80001510 AC290114 */ sw $t1, %lo(D_80150114)($at)
/* 002114 80001514 960A0000 */ lhu $t2, ($s0)
/* 002118 80001518 3C0B8015 */ lui $t3, %hi(D_80150114) # $t3, 0x8015
/* 00211C 8000151C 15400033 */ bnez $t2, .L800015EC
/* 002120 80001520 00000000 */ nop
/* 002124 80001524 8D6B0114 */ lw $t3, %lo(D_80150114)($t3)
/* 002128 80001528 00008025 */ move $s0, $zero
/* 00212C 8000152C 3C01800F */ lui $at, %hi(D_800EB5F8)
/* 002130 80001530 1960002C */ blez $t3, .L800015E4
/* 002134 80001534 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e
/* 002138 80001538 D434B5F8 */ ldc1 $f20, %lo(D_800EB5F8)($at)
/* 00213C 8000153C 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68
.L80001540:
/* 002140 80001540 3C0C8015 */ lui $t4, %hi(D_8015011E) # $t4, 0x8015
/* 002144 80001544 958C011E */ lhu $t4, %lo(D_8015011E)($t4)
/* 002148 80001548 11800006 */ beqz $t4, .L80001564
/* 00214C 8000154C 00000000 */ nop
/* 002150 80001550 C6240000 */ lwc1 $f4, ($s1)
/* 002154 80001554 460021A1 */ cvt.d.s $f6, $f4
/* 002158 80001558 46343200 */ add.d $f8, $f6, $f20
/* 00215C 8000155C 462042A0 */ cvt.s.d $f10, $f8
/* 002160 80001560 E62A0000 */ swc1 $f10, ($s1)
.L80001564:
/* 002164 80001564 0C0A427C */ jal func_802909F0
/* 002168 80001568 00000000 */ nop
/* 00216C 8000156C 0C0A8355 */ jal func_802A0D54
/* 002170 80001570 00000000 */ nop
/* 002174 80001574 0C00E0B7 */ jal func_800382DC
/* 002178 80001578 00000000 */ nop
/* 00217C 8000157C 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e
/* 002180 80001580 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e
/* 002184 80001584 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1)
/* 002188 80001588 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0)
/* 00218C 8000158C 0C007BA6 */ jal func_8001EE98
/* 002190 80001590 00003025 */ move $a2, $zero
/* 002194 80001594 0C00A3DC */ jal func_80028F70
/* 002198 80001598 00000000 */ nop
/* 00219C 8000159C 0C0A3D1D */ jal func_8028F474
/* 0021A0 800015A0 00000000 */ nop
/* 0021A4 800015A4 0C0166B2 */ jal func_80059AC8
/* 0021A8 800015A8 00000000 */ nop
/* 0021AC 800015AC 0C0A8D52 */ jal update_simple_objects
/* 0021B0 800015B0 00000000 */ nop
/* 0021B4 800015B4 0C0A59A8 */ jal func_802966A0
/* 0021B8 800015B8 00000000 */ nop
/* 0021BC 800015BC 0C0A3F2F */ jal func_8028FCBC
/* 0021C0 800015C0 00000000 */ nop
/* 0021C4 800015C4 3C0F8015 */ lui $t7, %hi(D_80150114) # $t7, 0x8015
/* 0021C8 800015C8 8DEF0114 */ lw $t7, %lo(D_80150114)($t7)
/* 0021CC 800015CC 26100001 */ addiu $s0, $s0, 1
/* 0021D0 800015D0 00106C00 */ sll $t5, $s0, 0x10
/* 0021D4 800015D4 000D8403 */ sra $s0, $t5, 0x10
/* 0021D8 800015D8 020F082A */ slt $at, $s0, $t7
/* 0021DC 800015DC 1420FFD8 */ bnez $at, .L80001540
/* 0021E0 800015E0 00000000 */ nop
.L800015E4:
/* 0021E4 800015E4 0C0089D1 */ jal func_80022744
/* 0021E8 800015E8 00000000 */ nop
.L800015EC:
/* 0021EC 800015EC 0C01681C */ jal func_8005A070
/* 0021F0 800015F0 00000000 */ nop
/* 0021F4 800015F4 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e
/* 0021F8 800015F8 A420C58C */ sh $zero, %lo(sNumVBlanks)($at)
/* 0021FC 800015FC 0C000D54 */ jal profiler_log_thread5_time
/* 002200 80001600 24040001 */ li $a0, 1
/* 002204 80001604 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016
/* 002208 80001608 0C0A9669 */ jal func_802A59A4
/* 00220C 8000160C AC20F788 */ sw $zero, %lo(D_8015F788)($at)
/* 002210 80001610 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e
/* 002214 80001614 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0)
/* 002218 80001618 3C05800E */ lui $a1, %hi(D_800DC514) # $a1, 0x800e
/* 00221C 8000161C 24A5C514 */ addiu $a1, %lo(D_800DC514) # addiu $a1, $a1, -0x3aec
/* 002220 80001620 54800006 */ bnel $a0, $zero, .L8000163C
/* 002224 80001624 94B80000 */ lhu $t8, ($a1)
/* 002228 80001628 3C05800E */ lui $a1, %hi(D_800DC514) # $a1, 0x800e
/* 00222C 8000162C 24A5C514 */ addiu $a1, %lo(D_800DC514) # addiu $a1, $a1, -0x3aec
/* 002230 80001630 100001E4 */ b .L80001DC4
/* 002234 80001634 A4A00000 */ sh $zero, ($a1)
/* 002238 80001638 94B80000 */ lhu $t8, ($a1)
.L8000163C:
/* 00223C 8000163C 3C088016 */ lui $t0, %hi(D_801625E8) # $t0, 0x8016
/* 002240 80001640 3C0C800E */ lui $t4, %hi(D_800DDB40) # $t4, 0x800e
/* 002244 80001644 13000048 */ beqz $t8, .L80001768
/* 002248 80001648 3C03800E */ lui $v1, 0x800e
/* 00224C 8000164C 3C03800E */ lui $v1, %hi(D_800DC4BC) # $v1, 0x800e
/* 002250 80001650 8C63C4BC */ lw $v1, %lo(D_800DC4BC)($v1)
/* 002254 80001654 3C06800F */ lui $a2, %hi(D_800EB5D0) # $a2, 0x800f
/* 002258 80001658 24C6B5D0 */ addiu $a2, %lo(D_800EB5D0) # addiu $a2, $a2, -0x4a30
/* 00225C 8000165C 94790006 */ lhu $t9, 6($v1)
/* 002260 80001660 24040028 */ li $a0, 40
/* 002264 80001664 33290010 */ andi $t1, $t9, 0x10
/* 002268 80001668 11200008 */ beqz $t1, .L8000168C
/* 00226C 8000166C 00000000 */ nop
/* 002270 80001670 94620004 */ lhu $v0, 4($v1)
/* 002274 80001674 304A8000 */ andi $t2, $v0, 0x8000
/* 002278 80001678 11400004 */ beqz $t2, .L8000168C
/* 00227C 8000167C 304B4000 */ andi $t3, $v0, 0x4000
/* 002280 80001680 11600002 */ beqz $t3, .L8000168C
/* 002284 80001684 00000000 */ nop
/* 002288 80001688 A4A00000 */ sh $zero, ($a1)
.L8000168C:
/* 00228C 8000168C 8D8CDB40 */ lw $t4, %lo(D_800DDB40)($t4)
/* 002290 80001690 3C0D800E */ lui $t5, %hi(D_800DC5EC) # $t5, 0x800e
/* 002294 80001694 8DADC5EC */ lw $t5, %lo(D_800DC5EC)($t5)
/* 002298 80001698 95820026 */ lhu $v0, 0x26($t4)
/* 00229C 8000169C 250825E8 */ addiu $t0, %lo(D_801625E8) # addiu $t0, $t0, 0x25e8
/* 0022A0 800016A0 85AE0038 */ lh $t6, 0x38($t5)
/* 0022A4 800016A4 28412000 */ slti $at, $v0, 0x2000
/* 0022A8 800016A8 10200006 */ beqz $at, .L800016C4
/* 0022AC 800016AC A50E0000 */ sh $t6, ($t0)
/* 0022B0 800016B0 24050064 */ li $a1, 100
/* 0022B4 800016B4 0C015E94 */ jal func_80057A50
/* 0022B8 800016B8 85070000 */ lh $a3, ($t0)
/* 0022BC 800016BC 10000027 */ b .L8000175C
/* 0022C0 800016C0 00000000 */ nop
.L800016C4:
/* 0022C4 800016C4 28416000 */ slti $at, $v0, 0x6000
/* 0022C8 800016C8 10200008 */ beqz $at, .L800016EC
/* 0022CC 800016CC 24040028 */ li $a0, 40
/* 0022D0 800016D0 3C06800F */ lui $a2, %hi(D_800EB5D8) # $a2, 0x800f
/* 0022D4 800016D4 24C6B5D8 */ addiu $a2, %lo(D_800EB5D8) # addiu $a2, $a2, -0x4a28
/* 0022D8 800016D8 24050064 */ li $a1, 100
/* 0022DC 800016DC 0C015E94 */ jal func_80057A50
/* 0022E0 800016E0 85070000 */ lh $a3, ($t0)
/* 0022E4 800016E4 1000001D */ b .L8000175C
/* 0022E8 800016E8 00000000 */ nop
.L800016EC:
/* 0022EC 800016EC 3401A000 */ li $at, 40960
/* 0022F0 800016F0 0041082A */ slt $at, $v0, $at
/* 0022F4 800016F4 10200008 */ beqz $at, .L80001718
/* 0022F8 800016F8 24040028 */ li $a0, 40
/* 0022FC 800016FC 3C06800F */ lui $a2, %hi(D_800EB5E0) # $a2, 0x800f
/* 002300 80001700 24C6B5E0 */ addiu $a2, %lo(D_800EB5E0) # addiu $a2, $a2, -0x4a20
/* 002304 80001704 24050064 */ li $a1, 100
/* 002308 80001708 0C015E94 */ jal func_80057A50
/* 00230C 8000170C 85070000 */ lh $a3, ($t0)
/* 002310 80001710 10000012 */ b .L8000175C
/* 002314 80001714 00000000 */ nop
.L80001718:
/* 002318 80001718 3401E000 */ li $at, 57344
/* 00231C 8000171C 0041082A */ slt $at, $v0, $at
/* 002320 80001720 10200009 */ beqz $at, .L80001748
/* 002324 80001724 24040028 */ li $a0, 40
/* 002328 80001728 3C06800F */ lui $a2, %hi(D_800EB5E8) # $a2, 0x800f
/* 00232C 8000172C 24C6B5E8 */ addiu $a2, %lo(D_800EB5E8) # addiu $a2, $a2, -0x4a18
/* 002330 80001730 24040028 */ li $a0, 40
/* 002334 80001734 24050064 */ li $a1, 100
/* 002338 80001738 0C015E94 */ jal func_80057A50
/* 00233C 8000173C 85070000 */ lh $a3, ($t0)
/* 002340 80001740 10000006 */ b .L8000175C
/* 002344 80001744 00000000 */ nop
.L80001748:
/* 002348 80001748 3C06800F */ lui $a2, %hi(D_800EB5F0) # $a2, 0x800f
/* 00234C 8000174C 24C6B5F0 */ addiu $a2, %lo(D_800EB5F0) # addiu $a2, $a2, -0x4a10
/* 002350 80001750 24050064 */ li $a1, 100
/* 002354 80001754 0C015E94 */ jal func_80057A50
/* 002358 80001758 85070000 */ lh $a3, ($t0)
.L8000175C:
/* 00235C 8000175C 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e
/* 002360 80001760 10000198 */ b .L80001DC4
/* 002364 80001764 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0)
.L80001768:
/* 002368 80001768 8C63C4BC */ lw $v1, -0x3b44($v1)
/* 00236C 8000176C 946F0006 */ lhu $t7, 6($v1)
/* 002370 80001770 31F80020 */ andi $t8, $t7, 0x20
/* 002374 80001774 13000193 */ beqz $t8, .L80001DC4
/* 002378 80001778 00000000 */ nop
/* 00237C 8000177C 94620004 */ lhu $v0, 4($v1)
/* 002380 80001780 30598000 */ andi $t9, $v0, 0x8000
/* 002384 80001784 1320018F */ beqz $t9, .L80001DC4
/* 002388 80001788 30494000 */ andi $t1, $v0, 0x4000
/* 00238C 8000178C 1120018D */ beqz $t1, .L80001DC4
/* 002390 80001790 240A0001 */ li $t2, 1
/* 002394 80001794 1000018B */ b .L80001DC4
/* 002398 80001798 A4AA0000 */ sh $t2, ($a1)
.L8000179C:
/* 00239C 8000179C 856BC5A0 */ lh $t3, -0x3a60($t3)
/* 0023A0 800017A0 24010012 */ li $at, 18
/* 0023A4 800017A4 24030003 */ li $v1, 3
/* 0023A8 800017A8 15610004 */ bne $t3, $at, .L800017BC
/* 0023AC 800017AC 3C0D8015 */ lui $t5, %hi(D_80150114) # $t5, 0x8015
/* 0023B0 800017B0 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 0023B4 800017B4 10000003 */ b .L800017C4
/* 0023B8 800017B8 AC230114 */ sw $v1, %lo(D_80150114)($at)
.L800017BC:
/* 0023BC 800017BC 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 0023C0 800017C0 AC240114 */ sw $a0, %lo(D_80150114)($at)
.L800017C4:
/* 0023C4 800017C4 960C0000 */ lhu $t4, ($s0)
/* 0023C8 800017C8 1580003B */ bnez $t4, .L800018B8
/* 0023CC 800017CC 00000000 */ nop
/* 0023D0 800017D0 8DAD0114 */ lw $t5, %lo(D_80150114)($t5)
/* 0023D4 800017D4 00008025 */ move $s0, $zero
/* 0023D8 800017D8 3C01800F */ lui $at, %hi(D_800EB600)
/* 0023DC 800017DC 19A00034 */ blez $t5, .L800018B0
/* 0023E0 800017E0 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e
/* 0023E4 800017E4 D434B600 */ ldc1 $f20, %lo(D_800EB600)($at)
/* 0023E8 800017E8 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68
.L800017EC:
/* 0023EC 800017EC 3C0E8015 */ lui $t6, %hi(D_8015011E) # $t6, 0x8015
/* 0023F0 800017F0 95CE011E */ lhu $t6, %lo(D_8015011E)($t6)
/* 0023F4 800017F4 11C00006 */ beqz $t6, .L80001810
/* 0023F8 800017F8 00000000 */ nop
/* 0023FC 800017FC C6300000 */ lwc1 $f16, ($s1)
/* 002400 80001800 460084A1 */ cvt.d.s $f18, $f16
/* 002404 80001804 46349100 */ add.d $f4, $f18, $f20
/* 002408 80001808 462021A0 */ cvt.s.d $f6, $f4
/* 00240C 8000180C E6260000 */ swc1 $f6, ($s1)
.L80001810:
/* 002410 80001810 0C0A427C */ jal func_802909F0
/* 002414 80001814 00000000 */ nop
/* 002418 80001818 0C0A8355 */ jal func_802A0D54
/* 00241C 8000181C 00000000 */ nop
/* 002420 80001820 0C00E0B7 */ jal func_800382DC
/* 002424 80001824 00000000 */ nop
/* 002428 80001828 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e
/* 00242C 8000182C 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e
/* 002430 80001830 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1)
/* 002434 80001834 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0)
/* 002438 80001838 0C007BA6 */ jal func_8001EE98
/* 00243C 8000183C 00003025 */ move $a2, $zero
/* 002440 80001840 0C00A418 */ jal func_80029060
/* 002444 80001844 00000000 */ nop
/* 002448 80001848 3C04800E */ lui $a0, %hi(D_800DC500) # $a0, 0x800e
/* 00244C 8000184C 3C05800E */ lui $a1, %hi(D_800DDB44) # $a1, 0x800e
/* 002450 80001850 8CA5DB44 */ lw $a1, %lo(D_800DDB44)($a1)
/* 002454 80001854 8C84C500 */ lw $a0, %lo(D_800DC500)($a0)
/* 002458 80001858 0C007BA6 */ jal func_8001EE98
/* 00245C 8000185C 24060001 */ li $a2, 1
/* 002460 80001860 0C00A454 */ jal func_80029150
/* 002464 80001864 00000000 */ nop
/* 002468 80001868 0C0A3D1D */ jal func_8028F474
/* 00246C 8000186C 00000000 */ nop
/* 002470 80001870 0C0166B2 */ jal func_80059AC8
/* 002474 80001874 00000000 */ nop
/* 002478 80001878 0C0A8D52 */ jal update_simple_objects
/* 00247C 8000187C 00000000 */ nop
/* 002480 80001880 0C0A59A8 */ jal func_802966A0
/* 002484 80001884 00000000 */ nop
/* 002488 80001888 0C0A3F2F */ jal func_8028FCBC
/* 00248C 8000188C 00000000 */ nop
/* 002490 80001890 3C198015 */ lui $t9, %hi(D_80150114) # $t9, 0x8015
/* 002494 80001894 8F390114 */ lw $t9, %lo(D_80150114)($t9)
/* 002498 80001898 26100001 */ addiu $s0, $s0, 1
/* 00249C 8000189C 00107C00 */ sll $t7, $s0, 0x10
/* 0024A0 800018A0 000F8403 */ sra $s0, $t7, 0x10
/* 0024A4 800018A4 0219082A */ slt $at, $s0, $t9
/* 0024A8 800018A8 1420FFD0 */ bnez $at, .L800017EC
/* 0024AC 800018AC 00000000 */ nop
.L800018B0:
/* 0024B0 800018B0 0C0089D1 */ jal func_80022744
/* 0024B4 800018B4 00000000 */ nop
.L800018B8:
/* 0024B8 800018B8 0C01681C */ jal func_8005A070
/* 0024BC 800018BC 00000000 */ nop
/* 0024C0 800018C0 0C000D54 */ jal profiler_log_thread5_time
/* 0024C4 800018C4 24040001 */ li $a0, 1
/* 0024C8 800018C8 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e
/* 0024CC 800018CC 0C0A9F02 */ jal func_802A7C08
/* 0024D0 800018D0 A420C58C */ sh $zero, %lo(sNumVBlanks)($at)
/* 0024D4 800018D4 0C0A8F8F */ jal func_802A3E3C
/* 0024D8 800018D8 00000000 */ nop
/* 0024DC 800018DC 3C09800E */ lui $t1, %hi(D_800DC5B0) # $t1, 0x800e
/* 0024E0 800018E0 9529C5B0 */ lhu $t1, %lo(D_800DC5B0)($t1)
/* 0024E4 800018E4 11200003 */ beqz $t1, .L800018F4
/* 0024E8 800018E8 00000000 */ nop
/* 0024EC 800018EC 0C0A9075 */ jal func_802A41D4
/* 0024F0 800018F0 00000000 */ nop
.L800018F4:
/* 0024F4 800018F4 3C0A800E */ lui $t2, %hi(D_800DC5E8) # $t2, 0x800e
/* 0024F8 800018F8 8D4AC5E8 */ lw $t2, %lo(D_800DC5E8)($t2)
/* 0024FC 800018FC 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016
/* 002500 80001900 AC20F788 */ sw $zero, %lo(D_8015F788)($at)
/* 002504 80001904 15400007 */ bnez $t2, .L80001924
/* 002508 80001908 00000000 */ nop
/* 00250C 8000190C 0C0A97EB */ jal func_802A5FAC
/* 002510 80001910 00000000 */ nop
/* 002514 80001914 0C0A972D */ jal func_802A5CB4
/* 002518 80001918 00000000 */ nop
/* 00251C 8000191C 10000005 */ b .L80001934
/* 002520 80001920 00000000 */ nop
.L80001924:
/* 002524 80001924 0C0A972D */ jal func_802A5CB4
/* 002528 80001928 00000000 */ nop
/* 00252C 8000192C 0C0A97EB */ jal func_802A5FAC
/* 002530 80001930 00000000 */ nop
.L80001934:
/* 002534 80001934 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e
/* 002538 80001938 10000122 */ b .L80001DC4
/* 00253C 8000193C 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0)
.L80001940:
/* 002540 80001940 856BC5A0 */ lh $t3, -0x3a60($t3)
/* 002544 80001944 24010012 */ li $at, 18
/* 002548 80001948 24030003 */ li $v1, 3
/* 00254C 8000194C 15610004 */ bne $t3, $at, .L80001960
/* 002550 80001950 240C0002 */ li $t4, 2
/* 002554 80001954 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 002558 80001958 10000003 */ b .L80001968
/* 00255C 8000195C AC230114 */ sw $v1, %lo(D_80150114)($at)
.L80001960:
/* 002560 80001960 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 002564 80001964 AC2C0114 */ sw $t4, %lo(D_80150114)($at)
.L80001968:
/* 002568 80001968 960D0000 */ lhu $t5, ($s0)
/* 00256C 8000196C 3C0E8015 */ lui $t6, %hi(D_80150114) # $t6, 0x8015
/* 002570 80001970 15A0003B */ bnez $t5, .L80001A60
/* 002574 80001974 00000000 */ nop
/* 002578 80001978 8DCE0114 */ lw $t6, %lo(D_80150114)($t6)
/* 00257C 8000197C 00008025 */ move $s0, $zero
/* 002580 80001980 3C01800F */ lui $at, %hi(D_800EB608)
/* 002584 80001984 19C00034 */ blez $t6, .L80001A58
/* 002588 80001988 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e
/* 00258C 8000198C D434B608 */ ldc1 $f20, %lo(D_800EB608)($at)
/* 002590 80001990 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68
.L80001994:
/* 002594 80001994 3C0F8015 */ lui $t7, %hi(D_8015011E) # $t7, 0x8015
/* 002598 80001998 95EF011E */ lhu $t7, %lo(D_8015011E)($t7)
/* 00259C 8000199C 11E00006 */ beqz $t7, .L800019B8
/* 0025A0 800019A0 00000000 */ nop
/* 0025A4 800019A4 C6280000 */ lwc1 $f8, ($s1)
/* 0025A8 800019A8 460042A1 */ cvt.d.s $f10, $f8
/* 0025AC 800019AC 46345400 */ add.d $f16, $f10, $f20
/* 0025B0 800019B0 462084A0 */ cvt.s.d $f18, $f16
/* 0025B4 800019B4 E6320000 */ swc1 $f18, ($s1)
.L800019B8:
/* 0025B8 800019B8 0C0A427C */ jal func_802909F0
/* 0025BC 800019BC 00000000 */ nop
/* 0025C0 800019C0 0C0A8355 */ jal func_802A0D54
/* 0025C4 800019C4 00000000 */ nop
/* 0025C8 800019C8 0C00E0B7 */ jal func_800382DC
/* 0025CC 800019CC 00000000 */ nop
/* 0025D0 800019D0 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e
/* 0025D4 800019D4 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e
/* 0025D8 800019D8 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1)
/* 0025DC 800019DC 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0)
/* 0025E0 800019E0 0C007BA6 */ jal func_8001EE98
/* 0025E4 800019E4 00003025 */ move $a2, $zero
/* 0025E8 800019E8 0C00A418 */ jal func_80029060
/* 0025EC 800019EC 00000000 */ nop
/* 0025F0 800019F0 3C04800E */ lui $a0, %hi(D_800DC500) # $a0, 0x800e
/* 0025F4 800019F4 3C05800E */ lui $a1, %hi(D_800DDB44) # $a1, 0x800e
/* 0025F8 800019F8 8CA5DB44 */ lw $a1, %lo(D_800DDB44)($a1)
/* 0025FC 800019FC 8C84C500 */ lw $a0, %lo(D_800DC500)($a0)
/* 002600 80001A00 0C007BA6 */ jal func_8001EE98
/* 002604 80001A04 24060001 */ li $a2, 1
/* 002608 80001A08 0C00A454 */ jal func_80029150
/* 00260C 80001A0C 00000000 */ nop
/* 002610 80001A10 0C0A3D1D */ jal func_8028F474
/* 002614 80001A14 00000000 */ nop
/* 002618 80001A18 0C0166B2 */ jal func_80059AC8
/* 00261C 80001A1C 00000000 */ nop
/* 002620 80001A20 0C0A8D52 */ jal update_simple_objects
/* 002624 80001A24 00000000 */ nop
/* 002628 80001A28 0C0A59A8 */ jal func_802966A0
/* 00262C 80001A2C 00000000 */ nop
/* 002630 80001A30 0C0A3F2F */ jal func_8028FCBC
/* 002634 80001A34 00000000 */ nop
/* 002638 80001A38 3C098015 */ lui $t1, %hi(D_80150114) # $t1, 0x8015
/* 00263C 80001A3C 8D290114 */ lw $t1, %lo(D_80150114)($t1)
/* 002640 80001A40 26100001 */ addiu $s0, $s0, 1
/* 002644 80001A44 0010C400 */ sll $t8, $s0, 0x10
/* 002648 80001A48 00188403 */ sra $s0, $t8, 0x10
/* 00264C 80001A4C 0209082A */ slt $at, $s0, $t1
/* 002650 80001A50 1420FFD0 */ bnez $at, .L80001994
/* 002654 80001A54 00000000 */ nop
.L80001A58:
/* 002658 80001A58 0C0089D1 */ jal func_80022744
/* 00265C 80001A5C 00000000 */ nop
.L80001A60:
/* 002660 80001A60 0C000D54 */ jal profiler_log_thread5_time
/* 002664 80001A64 24040001 */ li $a0, 1
/* 002668 80001A68 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e
/* 00266C 80001A6C 0C01681C */ jal func_8005A070
/* 002670 80001A70 A420C58C */ sh $zero, %lo(sNumVBlanks)($at)
/* 002674 80001A74 0C0A9F02 */ jal func_802A7C08
/* 002678 80001A78 00000000 */ nop
/* 00267C 80001A7C 0C0A8F8F */ jal func_802A3E3C
/* 002680 80001A80 00000000 */ nop
/* 002684 80001A84 3C0A800E */ lui $t2, %hi(D_800DC5B0) # $t2, 0x800e
/* 002688 80001A88 954AC5B0 */ lhu $t2, %lo(D_800DC5B0)($t2)
/* 00268C 80001A8C 11400003 */ beqz $t2, .L80001A9C
/* 002690 80001A90 00000000 */ nop
/* 002694 80001A94 0C0A9075 */ jal func_802A41D4
/* 002698 80001A98 00000000 */ nop
.L80001A9C:
/* 00269C 80001A9C 3C0B800E */ lui $t3, %hi(D_800DC5E8) # $t3, 0x800e
/* 0026A0 80001AA0 8D6BC5E8 */ lw $t3, %lo(D_800DC5E8)($t3)
/* 0026A4 80001AA4 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016
/* 0026A8 80001AA8 AC20F788 */ sw $zero, %lo(D_8015F788)($at)
/* 0026AC 80001AAC 15600007 */ bnez $t3, .L80001ACC
/* 0026B0 80001AB0 00000000 */ nop
/* 0026B4 80001AB4 0C0A996E */ jal func_802A65B8
/* 0026B8 80001AB8 00000000 */ nop
/* 0026BC 80001ABC 0C0A98A9 */ jal func_802A62A4
/* 0026C0 80001AC0 00000000 */ nop
/* 0026C4 80001AC4 10000005 */ b .L80001ADC
/* 0026C8 80001AC8 00000000 */ nop
.L80001ACC:
/* 0026CC 80001ACC 0C0A98A9 */ jal func_802A62A4
/* 0026D0 80001AD0 00000000 */ nop
/* 0026D4 80001AD4 0C0A996E */ jal func_802A65B8
/* 0026D8 80001AD8 00000000 */ nop
.L80001ADC:
/* 0026DC 80001ADC 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e
/* 0026E0 80001AE0 100000B8 */ b .L80001DC4
/* 0026E4 80001AE4 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0)
.L80001AE8:
/* 0026E8 80001AE8 8D8CC538 */ lw $t4, -0x3ac8($t4)
/* 0026EC 80001AEC 3C02800E */ lui $v0, 0x800e
/* 0026F0 80001AF0 3C0F8015 */ lui $t7, %hi(D_80150114) # $t7, 0x8015
/* 0026F4 80001AF4 146C0011 */ bne $v1, $t4, .L80001B3C
/* 0026F8 80001AF8 00000000 */ nop
/* 0026FC 80001AFC 3C02800E */ lui $v0, %hi(gCurrentCourseId) # $v0, 0x800e
/* 002700 80001B00 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 002704 80001B04 24010009 */ li $at, 9
/* 002708 80001B08 10440009 */ beq $v0, $a0, .L80001B30
/* 00270C 80001B0C 00000000 */ nop
/* 002710 80001B10 10410007 */ beq $v0, $at, .L80001B30
/* 002714 80001B14 24010010 */ li $at, 16
/* 002718 80001B18 10410005 */ beq $v0, $at, .L80001B30
/* 00271C 80001B1C 24010012 */ li $at, 18
/* 002720 80001B20 10410003 */ beq $v0, $at, .L80001B30
/* 002724 80001B24 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 002728 80001B28 10000016 */ b .L80001B84
/* 00272C 80001B2C AC240114 */ sw $a0, %lo(D_80150114)($at)
.L80001B30:
/* 002730 80001B30 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 002734 80001B34 10000013 */ b .L80001B84
/* 002738 80001B38 AC230114 */ sw $v1, %lo(D_80150114)($at)
.L80001B3C:
/* 00273C 80001B3C 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 002740 80001B40 2401000F */ li $at, 15
/* 002744 80001B44 1041000A */ beq $v0, $at, .L80001B70
/* 002748 80001B48 24010011 */ li $at, 17
/* 00274C 80001B4C 10410008 */ beq $v0, $at, .L80001B70
/* 002750 80001B50 24010012 */ li $at, 18
/* 002754 80001B54 10410009 */ beq $v0, $at, .L80001B7C
/* 002758 80001B58 240D0004 */ li $t5, 4
/* 00275C 80001B5C 24010013 */ li $at, 19
/* 002760 80001B60 10410003 */ beq $v0, $at, .L80001B70
/* 002764 80001B64 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 002768 80001B68 10000006 */ b .L80001B84
/* 00276C 80001B6C AC230114 */ sw $v1, %lo(D_80150114)($at)
.L80001B70:
/* 002770 80001B70 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 002774 80001B74 10000003 */ b .L80001B84
/* 002778 80001B78 AC240114 */ sw $a0, %lo(D_80150114)($at)
.L80001B7C:
/* 00277C 80001B7C 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015
/* 002780 80001B80 AC2D0114 */ sw $t5, %lo(D_80150114)($at)
.L80001B84:
/* 002784 80001B84 960E0000 */ lhu $t6, ($s0)
/* 002788 80001B88 15C0004B */ bnez $t6, .L80001CB8
/* 00278C 80001B8C 00000000 */ nop
/* 002790 80001B90 8DEF0114 */ lw $t7, %lo(D_80150114)($t7)
/* 002794 80001B94 00008025 */ move $s0, $zero
/* 002798 80001B98 3C01800F */ lui $at, %hi(D_800EB610)
/* 00279C 80001B9C 19E00044 */ blez $t7, .L80001CB0
/* 0027A0 80001BA0 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e
/* 0027A4 80001BA4 D434B610 */ ldc1 $f20, %lo(D_800EB610)($at)
/* 0027A8 80001BA8 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68
.L80001BAC:
/* 0027AC 80001BAC 3C188015 */ lui $t8, %hi(D_8015011E) # $t8, 0x8015
/* 0027B0 80001BB0 9718011E */ lhu $t8, %lo(D_8015011E)($t8)
/* 0027B4 80001BB4 13000006 */ beqz $t8, .L80001BD0
/* 0027B8 80001BB8 00000000 */ nop
/* 0027BC 80001BBC C6240000 */ lwc1 $f4, ($s1)
/* 0027C0 80001BC0 460021A1 */ cvt.d.s $f6, $f4
/* 0027C4 80001BC4 46343200 */ add.d $f8, $f6, $f20
/* 0027C8 80001BC8 462042A0 */ cvt.s.d $f10, $f8
/* 0027CC 80001BCC E62A0000 */ swc1 $f10, ($s1)
.L80001BD0:
/* 0027D0 80001BD0 0C0A427C */ jal func_802909F0
/* 0027D4 80001BD4 00000000 */ nop
/* 0027D8 80001BD8 0C0A8355 */ jal func_802A0D54
/* 0027DC 80001BDC 00000000 */ nop
/* 0027E0 80001BE0 0C00E0B7 */ jal func_800382DC
/* 0027E4 80001BE4 00000000 */ nop
/* 0027E8 80001BE8 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e
/* 0027EC 80001BEC 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e
/* 0027F0 80001BF0 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1)
/* 0027F4 80001BF4 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0)
/* 0027F8 80001BF8 0C007BA6 */ jal func_8001EE98
/* 0027FC 80001BFC 00003025 */ move $a2, $zero
/* 002800 80001C00 0C00A456 */ jal func_80029158
/* 002804 80001C04 00000000 */ nop
/* 002808 80001C08 3C04800E */ lui $a0, %hi(D_800DC4E0) # $a0, 0x800e
/* 00280C 80001C0C 3C05800E */ lui $a1, %hi(D_800DDB44) # $a1, 0x800e
/* 002810 80001C10 8CA5DB44 */ lw $a1, %lo(D_800DDB44)($a1)
/* 002814 80001C14 8C84C4E0 */ lw $a0, %lo(D_800DC4E0)($a0)
/* 002818 80001C18 0C007BA6 */ jal func_8001EE98
/* 00281C 80001C1C 24060001 */ li $a2, 1
/* 002820 80001C20 0C00A47A */ jal func_800291E8
/* 002824 80001C24 00000000 */ nop
/* 002828 80001C28 3C04800E */ lui $a0, %hi(D_800DC4E4) # $a0, 0x800e
/* 00282C 80001C2C 3C05800E */ lui $a1, %hi(D_800DDB48) # $a1, 0x800e
/* 002830 80001C30 8CA5DB48 */ lw $a1, %lo(D_800DDB48)($a1)
/* 002834 80001C34 8C84C4E4 */ lw $a0, %lo(D_800DC4E4)($a0)
/* 002838 80001C38 0C007BA6 */ jal func_8001EE98
/* 00283C 80001C3C 24060002 */ li $a2, 2
/* 002840 80001C40 0C00A47C */ jal func_800291F0
/* 002844 80001C44 00000000 */ nop
/* 002848 80001C48 3C04800E */ lui $a0, %hi(D_800DC4E8) # $a0, 0x800e
/* 00284C 80001C4C 3C05800E */ lui $a1, %hi(D_800DDB4C) # $a1, 0x800e
/* 002850 80001C50 8CA5DB4C */ lw $a1, %lo(D_800DDB4C)($a1)
/* 002854 80001C54 8C84C4E8 */ lw $a0, %lo(D_800DC4E8)($a0)
/* 002858 80001C58 0C007BA6 */ jal func_8001EE98
/* 00285C 80001C5C 24060003 */ li $a2, 3
/* 002860 80001C60 0C00A47E */ jal func_800291F8
/* 002864 80001C64 00000000 */ nop
/* 002868 80001C68 0C0A3D1D */ jal func_8028F474
/* 00286C 80001C6C 00000000 */ nop
/* 002870 80001C70 0C0166B2 */ jal func_80059AC8
/* 002874 80001C74 00000000 */ nop
/* 002878 80001C78 0C0A8D52 */ jal update_simple_objects
/* 00287C 80001C7C 00000000 */ nop
/* 002880 80001C80 0C0A59A8 */ jal func_802966A0
/* 002884 80001C84 00000000 */ nop
/* 002888 80001C88 0C0A3F2F */ jal func_8028FCBC
/* 00288C 80001C8C 00000000 */ nop
/* 002890 80001C90 3C0A8015 */ lui $t2, %hi(D_80150114) # $t2, 0x8015
/* 002894 80001C94 8D4A0114 */ lw $t2, %lo(D_80150114)($t2)
/* 002898 80001C98 26100001 */ addiu $s0, $s0, 1
/* 00289C 80001C9C 0010CC00 */ sll $t9, $s0, 0x10
/* 0028A0 80001CA0 00198403 */ sra $s0, $t9, 0x10
/* 0028A4 80001CA4 020A082A */ slt $at, $s0, $t2
/* 0028A8 80001CA8 1420FFC0 */ bnez $at, .L80001BAC
/* 0028AC 80001CAC 00000000 */ nop
.L80001CB0:
/* 0028B0 80001CB0 0C0089D1 */ jal func_80022744
/* 0028B4 80001CB4 00000000 */ nop
.L80001CB8:
/* 0028B8 80001CB8 0C01681C */ jal func_8005A070
/* 0028BC 80001CBC 00000000 */ nop
/* 0028C0 80001CC0 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e
/* 0028C4 80001CC4 A420C58C */ sh $zero, %lo(sNumVBlanks)($at)
/* 0028C8 80001CC8 0C000D54 */ jal profiler_log_thread5_time
/* 0028CC 80001CCC 24040001 */ li $a0, 1
/* 0028D0 80001CD0 0C0A9F02 */ jal func_802A7C08
/* 0028D4 80001CD4 00000000 */ nop
/* 0028D8 80001CD8 0C0A8F8F */ jal func_802A3E3C
/* 0028DC 80001CDC 00000000 */ nop
/* 0028E0 80001CE0 3C0B800E */ lui $t3, %hi(D_800DC5B0) # $t3, 0x800e
/* 0028E4 80001CE4 956BC5B0 */ lhu $t3, %lo(D_800DC5B0)($t3)
/* 0028E8 80001CE8 11600003 */ beqz $t3, .L80001CF8
/* 0028EC 80001CEC 00000000 */ nop
/* 0028F0 80001CF0 0C0A9075 */ jal func_802A41D4
/* 0028F4 80001CF4 00000000 */ nop
.L80001CF8:
/* 0028F8 80001CF8 3C02800E */ lui $v0, %hi(D_800DC5E8) # $v0, 0x800e
/* 0028FC 80001CFC 8C42C5E8 */ lw $v0, %lo(D_800DC5E8)($v0)
/* 002900 80001D00 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016
/* 002904 80001D04 AC20F788 */ sw $zero, %lo(D_8015F788)($at)
/* 002908 80001D08 1440000B */ bnez $v0, .L80001D38
/* 00290C 80001D0C 24010001 */ li $at, 1
/* 002910 80001D10 0C0A9AEC */ jal func_802A6BB0
/* 002914 80001D14 00000000 */ nop
/* 002918 80001D18 0C0A9BA5 */ jal func_802A6E94
/* 00291C 80001D1C 00000000 */ nop
/* 002920 80001D20 0C0A9C5E */ jal func_802A7178
/* 002924 80001D24 00000000 */ nop
/* 002928 80001D28 0C0A9A33 */ jal func_802A68CC
/* 00292C 80001D2C 00000000 */ nop
/* 002930 80001D30 10000022 */ b .L80001DBC
/* 002934 80001D34 00000000 */ nop
.L80001D38:
/* 002938 80001D38 5441000C */ bnel $v0, $at, .L80001D6C
/* 00293C 80001D3C 24010002 */ li $at, 2
/* 002940 80001D40 0C0A9A33 */ jal func_802A68CC
/* 002944 80001D44 00000000 */ nop
/* 002948 80001D48 0C0A9BA5 */ jal func_802A6E94
/* 00294C 80001D4C 00000000 */ nop
/* 002950 80001D50 0C0A9C5E */ jal func_802A7178
/* 002954 80001D54 00000000 */ nop
/* 002958 80001D58 0C0A9AEC */ jal func_802A6BB0
/* 00295C 80001D5C 00000000 */ nop
/* 002960 80001D60 10000016 */ b .L80001DBC
/* 002964 80001D64 00000000 */ nop
/* 002968 80001D68 24010002 */ li $at, 2
.L80001D6C:
/* 00296C 80001D6C 1441000B */ bne $v0, $at, .L80001D9C
/* 002970 80001D70 00000000 */ nop
/* 002974 80001D74 0C0A9A33 */ jal func_802A68CC
/* 002978 80001D78 00000000 */ nop
/* 00297C 80001D7C 0C0A9AEC */ jal func_802A6BB0
/* 002980 80001D80 00000000 */ nop
/* 002984 80001D84 0C0A9C5E */ jal func_802A7178
/* 002988 80001D88 00000000 */ nop
/* 00298C 80001D8C 0C0A9BA5 */ jal func_802A6E94
/* 002990 80001D90 00000000 */ nop
/* 002994 80001D94 10000009 */ b .L80001DBC
/* 002998 80001D98 00000000 */ nop
.L80001D9C:
/* 00299C 80001D9C 0C0A9A33 */ jal func_802A68CC
/* 0029A0 80001DA0 00000000 */ nop
/* 0029A4 80001DA4 0C0A9AEC */ jal func_802A6BB0
/* 0029A8 80001DA8 00000000 */ nop
/* 0029AC 80001DAC 0C0A9BA5 */ jal func_802A6E94
/* 0029B0 80001DB0 00000000 */ nop
/* 0029B4 80001DB4 0C0A9C5E */ jal func_802A7178
/* 0029B8 80001DB8 00000000 */ nop
.L80001DBC:
/* 0029BC 80001DBC 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e
/* 0029C0 80001DC0 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0)
.L80001DC4:
/* 0029C4 80001DC4 14800005 */ bnez $a0, .L80001DDC
/* 0029C8 80001DC8 3C10800E */ lui $s0, %hi(gEnableResourceMeters)
/* 0029CC 80001DCC 3C10800E */ lui $s0, %hi(gEnableResourceMeters) # $s0, 0x800e
/* 0029D0 80001DD0 2610C660 */ addiu $s0, %lo(gEnableResourceMeters) # addiu $s0, $s0, -0x39a0
/* 0029D4 80001DD4 10000023 */ b .L80001E64
/* 0029D8 80001DD8 AE000000 */ sw $zero, ($s0)
.L80001DDC:
/* 0029DC 80001DDC 2610C660 */ addiu $s0, $s0, %lo(gEnableResourceMeters)
/* 0029E0 80001DE0 8E0C0000 */ lw $t4, ($s0)
/* 0029E4 80001DE4 3C03800E */ lui $v1, %hi(D_800DC4BC)
/* 0029E8 80001DE8 11800011 */ beqz $t4, .L80001E30
/* 0029EC 80001DEC 00000000 */ nop
/* 0029F0 80001DF0 0C000FF5 */ jal resource_display
/* 0029F4 80001DF4 00000000 */ nop
/* 0029F8 80001DF8 3C03800E */ lui $v1, %hi(D_800DC4BC) # $v1, 0x800e
/* 0029FC 80001DFC 8C63C4BC */ lw $v1, %lo(D_800DC4BC)($v1)
/* 002A00 80001E00 94620004 */ lhu $v0, 4($v1)
/* 002A04 80001E04 304D0020 */ andi $t5, $v0, 0x20
/* 002A08 80001E08 15A00016 */ bnez $t5, .L80001E64
/* 002A0C 80001E0C 304E0010 */ andi $t6, $v0, 0x10
/* 002A10 80001E10 11C00014 */ beqz $t6, .L80001E64
/* 002A14 80001E14 00000000 */ nop
/* 002A18 80001E18 946F0006 */ lhu $t7, 6($v1)
/* 002A1C 80001E1C 31F84000 */ andi $t8, $t7, 0x4000
/* 002A20 80001E20 13000010 */ beqz $t8, .L80001E64
/* 002A24 80001E24 00000000 */ nop
/* 002A28 80001E28 1000000E */ b .L80001E64
/* 002A2C 80001E2C AE000000 */ sw $zero, ($s0)
.L80001E30:
/* 002A30 80001E30 8C63C4BC */ lw $v1, %lo(D_800DC4BC)($v1)
/* 002A34 80001E34 94620004 */ lhu $v0, 4($v1)
/* 002A38 80001E38 30590020 */ andi $t9, $v0, 0x20
/* 002A3C 80001E3C 17200009 */ bnez $t9, .L80001E64
/* 002A40 80001E40 30490010 */ andi $t1, $v0, 0x10
/* 002A44 80001E44 11200007 */ beqz $t1, .L80001E64
/* 002A48 80001E48 00000000 */ nop
/* 002A4C 80001E4C 946A0006 */ lhu $t2, 6($v1)
/* 002A50 80001E50 240C0001 */ li $t4, 1
/* 002A54 80001E54 314B4000 */ andi $t3, $t2, 0x4000
/* 002A58 80001E58 11600002 */ beqz $t3, .L80001E64
/* 002A5C 80001E5C 00000000 */ nop
/* 002A60 80001E60 AE0C0000 */ sw $t4, ($s0)
.L80001E64:
/* 002A64 80001E64 0C0A90C0 */ jal func_802A4300
/* 002A68 80001E68 00000000 */ nop
/* 002A6C 80001E6C 0C01646D */ jal func_800591B4
/* 002A70 80001E70 00000000 */ nop
/* 002A74 80001E74 0C024F88 */ jal func_80093E20
/* 002A78 80001E78 00000000 */ nop
/* 002A7C 80001E7C 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015
/* 002A80 80001E80 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298
/* 002A84 80001E84 8CA20000 */ lw $v0, ($a1)
/* 002A88 80001E88 3C0EE900 */ lui $t6, 0xe900
/* 002A8C 80001E8C 3C18B800 */ lui $t8, 0xb800
/* 002A90 80001E90 244D0008 */ addiu $t5, $v0, 8
/* 002A94 80001E94 ACAD0000 */ sw $t5, ($a1)
/* 002A98 80001E98 AC400004 */ sw $zero, 4($v0)
/* 002A9C 80001E9C AC4E0000 */ sw $t6, ($v0)
/* 002AA0 80001EA0 8CA20000 */ lw $v0, ($a1)
/* 002AA4 80001EA4 244F0008 */ addiu $t7, $v0, 8
/* 002AA8 80001EA8 ACAF0000 */ sw $t7, ($a1)
/* 002AAC 80001EAC AC400004 */ sw $zero, 4($v0)
/* 002AB0 80001EB0 AC580000 */ sw $t8, ($v0)
/* 002AB4 80001EB4 8FBF0024 */ lw $ra, 0x24($sp)
.L80001EB8:
/* 002AB8 80001EB8 D7B40010 */ ldc1 $f20, 0x10($sp)
/* 002ABC 80001EBC 8FB0001C */ lw $s0, 0x1c($sp)
/* 002AC0 80001EC0 8FB10020 */ lw $s1, 0x20($sp)
/* 002AC4 80001EC4 03E00008 */ jr $ra
/* 002AC8 80001EC8 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -0,0 +1,50 @@
glabel func_80001ECC
/* 002ACC 80001ECC 3C0E800E */ lui $t6, %hi(D_800DC50C) # $t6, 0x800e
/* 002AD0 80001ED0 8DCEC50C */ lw $t6, %lo(D_800DC50C)($t6)
/* 002AD4 80001ED4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 002AD8 80001ED8 AFBF0014 */ sw $ra, 0x14($sp)
/* 002ADC 80001EDC 2DC1000A */ sltiu $at, $t6, 0xa
/* 002AE0 80001EE0 1020001F */ beqz $at, .L80001F60
/* 002AE4 80001EE4 000E7080 */ sll $t6, $t6, 2
/* 002AE8 80001EE8 3C01800F */ lui $at, %hi(D_800EB618)
/* 002AEC 80001EEC 002E0821 */ addu $at, $at, $t6
/* 002AF0 80001EF0 8C2EB618 */ lw $t6, %lo(D_800EB618)($at)
/* 002AF4 80001EF4 01C00008 */ jr $t6
/* 002AF8 80001EF8 00000000 */ nop
glabel L80001EFC
/* 002AFC 80001EFC 0C000501 */ jal func_80001404
/* 002B00 80001F00 00000000 */ nop
/* 002B04 80001F04 10000017 */ b .L80001F64
/* 002B08 80001F08 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80001F0C
/* 002B0C 80001F0C 0C033230 */ jal osViBlack
/* 002B10 80001F10 00002025 */ move $a0, $zero
/* 002B14 80001F14 0C02C0D4 */ jal func_800B0350
/* 002B18 80001F18 00000000 */ nop
/* 002B1C 80001F1C 0C00032A */ jal func_80000CA8
/* 002B20 80001F20 00000000 */ nop
/* 002B24 80001F24 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 002B28 80001F28 0C025299 */ jal func_80094A64
/* 002B2C 80001F2C 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 002B30 80001F30 1000000C */ b .L80001F64
/* 002B34 80001F34 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80001F38
/* 002B38 80001F38 0C00050B */ jal func_8000142C
/* 002B3C 80001F3C 00000000 */ nop
/* 002B40 80001F40 10000008 */ b .L80001F64
/* 002B44 80001F44 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80001F48
/* 002B48 80001F48 0C0A0552 */ jal func_80281548
/* 002B4C 80001F4C 00000000 */ nop
/* 002B50 80001F50 10000004 */ b .L80001F64
/* 002B54 80001F54 8FBF0014 */ lw $ra, 0x14($sp)
glabel L80001F58
/* 002B58 80001F58 0C0A00AB */ jal func_802802AC
/* 002B5C 80001F5C 00000000 */ nop
.L80001F60:
glabel L80001F60
/* 002B60 80001F60 8FBF0014 */ lw $ra, 0x14($sp)
.L80001F64:
/* 002B64 80001F64 27BD0018 */ addiu $sp, $sp, 0x18
/* 002B68 80001F68 03E00008 */ jr $ra
/* 002B6C 80001F6C 00000000 */ nop

View File

@ -0,0 +1,81 @@
glabel func_80001FAC
/* 002BAC 80001FAC 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 002BB0 80001FB0 AFB40028 */ sw $s4, 0x28($sp)
/* 002BB4 80001FB4 3C148015 */ lui $s4, %hi(D_8014EFD0) # $s4, 0x8015
/* 002BB8 80001FB8 AFB5002C */ sw $s5, 0x2c($sp)
/* 002BBC 80001FBC 27B50040 */ addiu $s5, $sp, 0x40
/* 002BC0 80001FC0 2694EFD0 */ addiu $s4, %lo(D_8014EFD0) # addiu $s4, $s4, -0x1030
/* 002BC4 80001FC4 AFBF0034 */ sw $ra, 0x34($sp)
/* 002BC8 80001FC8 AFB60030 */ sw $s6, 0x30($sp)
/* 002BCC 80001FCC AFB30024 */ sw $s3, 0x24($sp)
/* 002BD0 80001FD0 AFB20020 */ sw $s2, 0x20($sp)
/* 002BD4 80001FD4 AFB1001C */ sw $s1, 0x1c($sp)
/* 002BD8 80001FD8 AFB00018 */ sw $s0, 0x18($sp)
/* 002BDC 80001FDC 02802025 */ move $a0, $s4
/* 002BE0 80001FE0 02A02825 */ move $a1, $s5
/* 002BE4 80001FE4 0C0335D4 */ jal osRecvMesg
/* 002BE8 80001FE8 00003025 */ move $a2, $zero
/* 002BEC 80001FEC 2410FFFF */ li $s0, -1
/* 002BF0 80001FF0 10500018 */ beq $v0, $s0, .L80002054
/* 002BF4 80001FF4 3C16800E */ lui $s6, %hi(D_800DC4B8) # $s6, 0x800e
/* 002BF8 80001FF8 3C13800E */ lui $s3, %hi(D_800DC4B4) # $s3, 0x800e
/* 002BFC 80001FFC 2673C4B4 */ addiu $s3, %lo(D_800DC4B4) # addiu $s3, $s3, -0x3b4c
/* 002C00 80002000 26D6C4B8 */ addiu $s6, %lo(D_800DC4B8) # addiu $s6, $s6, -0x3b48
/* 002C04 80002004 24120002 */ li $s2, 2
/* 002C08 80002008 24110001 */ li $s1, 1
/* 002C0C 8000200C 8FAE0040 */ lw $t6, 0x40($sp)
.L80002010:
/* 002C10 80002010 02802025 */ move $a0, $s4
/* 002C14 80002014 02A02825 */ move $a1, $s5
/* 002C18 80002018 ADC00048 */ sw $zero, 0x48($t6)
/* 002C1C 8000201C 8FAF0040 */ lw $t7, 0x40($sp)
/* 002C20 80002020 8FB90040 */ lw $t9, 0x40($sp)
/* 002C24 80002024 8DE20000 */ lw $v0, ($t7)
/* 002C28 80002028 50510006 */ beql $v0, $s1, .L80002044
/* 002C2C 8000202C AED90000 */ sw $t9, ($s6)
/* 002C30 80002030 14520004 */ bne $v0, $s2, .L80002044
/* 002C34 80002034 8FB80040 */ lw $t8, 0x40($sp)
/* 002C38 80002038 10000002 */ b .L80002044
/* 002C3C 8000203C AE780000 */ sw $t8, ($s3)
/* 002C40 80002040 AED90000 */ sw $t9, ($s6)
.L80002044:
/* 002C44 80002044 0C0335D4 */ jal osRecvMesg
/* 002C48 80002048 00003025 */ move $a2, $zero
/* 002C4C 8000204C 5450FFF0 */ bnel $v0, $s0, .L80002010
/* 002C50 80002050 8FAE0040 */ lw $t6, 0x40($sp)
.L80002054:
/* 002C54 80002054 3C03800E */ lui $v1, %hi(sCurrentAudioSPTask) # $v1, 0x800e
/* 002C58 80002058 2463C4AC */ addiu $v1, %lo(sCurrentAudioSPTask) # addiu $v1, $v1, -0x3b54
/* 002C5C 8000205C 8C680000 */ lw $t0, ($v1)
/* 002C60 80002060 3C13800E */ lui $s3, %hi(D_800DC4B4) # $s3, 0x800e
/* 002C64 80002064 3C16800E */ lui $s6, %hi(D_800DC4B8) # $s6, 0x800e
/* 002C68 80002068 26D6C4B8 */ addiu $s6, %lo(D_800DC4B8) # addiu $s6, $s6, -0x3b48
/* 002C6C 8000206C 15000006 */ bnez $t0, .L80002088
/* 002C70 80002070 2673C4B4 */ addiu $s3, %lo(D_800DC4B4) # addiu $s3, $s3, -0x3b4c
/* 002C74 80002074 8E620000 */ lw $v0, ($s3)
/* 002C78 80002078 10400003 */ beqz $v0, .L80002088
/* 002C7C 8000207C 00000000 */ nop
/* 002C80 80002080 AC620000 */ sw $v0, ($v1)
/* 002C84 80002084 AE600000 */ sw $zero, ($s3)
.L80002088:
/* 002C88 80002088 3C03800E */ lui $v1, %hi(sCurrentDisplaySPTask) # $v1, 0x800e
/* 002C8C 8000208C 2463C4B0 */ addiu $v1, %lo(sCurrentDisplaySPTask) # addiu $v1, $v1, -0x3b50
/* 002C90 80002090 8C690000 */ lw $t1, ($v1)
/* 002C94 80002094 55200007 */ bnel $t1, $zero, .L800020B4
/* 002C98 80002098 8FBF0034 */ lw $ra, 0x34($sp)
/* 002C9C 8000209C 8EC20000 */ lw $v0, ($s6)
/* 002CA0 800020A0 50400004 */ beql $v0, $zero, .L800020B4
/* 002CA4 800020A4 8FBF0034 */ lw $ra, 0x34($sp)
/* 002CA8 800020A8 AC620000 */ sw $v0, ($v1)
/* 002CAC 800020AC AEC00000 */ sw $zero, ($s6)
/* 002CB0 800020B0 8FBF0034 */ lw $ra, 0x34($sp)
.L800020B4:
/* 002CB4 800020B4 8FB00018 */ lw $s0, 0x18($sp)
/* 002CB8 800020B8 8FB1001C */ lw $s1, 0x1c($sp)
/* 002CBC 800020BC 8FB20020 */ lw $s2, 0x20($sp)
/* 002CC0 800020C0 8FB30024 */ lw $s3, 0x24($sp)
/* 002CC4 800020C4 8FB40028 */ lw $s4, 0x28($sp)
/* 002CC8 800020C8 8FB5002C */ lw $s5, 0x2c($sp)
/* 002CCC 800020CC 8FB60030 */ lw $s6, 0x30($sp)
/* 002CD0 800020D0 03E00008 */ jr $ra
/* 002CD4 800020D4 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -0,0 +1,77 @@
glabel func_80002168
/* 002D68 80002168 3C02800E */ lui $v0, %hi(D_800DC594) # $v0, 0x800e
/* 002D6C 8000216C 2442C594 */ addiu $v0, %lo(D_800DC594) # addiu $v0, $v0, -0x3a6c
/* 002D70 80002170 C4440000 */ lwc1 $f4, ($v0)
/* 002D74 80002174 3C01800F */ lui $at, %hi(D_800EB640)
/* 002D78 80002178 D428B640 */ ldc1 $f8, %lo(D_800EB640)($at)
/* 002D7C 8000217C 460021A1 */ cvt.d.s $f6, $f4
/* 002D80 80002180 3C03800E */ lui $v1, %hi(sNumVBlanks) # $v1, 0x800e
/* 002D84 80002184 46283280 */ add.d $f10, $f6, $f8
/* 002D88 80002188 2463C58C */ addiu $v1, %lo(sNumVBlanks) # addiu $v1, $v1, -0x3a74
/* 002D8C 8000218C 846E0000 */ lh $t6, ($v1)
/* 002D90 80002190 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 002D94 80002194 46205420 */ cvt.s.d $f16, $f10
/* 002D98 80002198 AFBF0014 */ sw $ra, 0x14($sp)
/* 002D9C 8000219C 25CF0001 */ addiu $t7, $t6, 1
/* 002DA0 800021A0 A46F0000 */ sh $t7, ($v1)
/* 002DA4 800021A4 0C0007EB */ jal func_80001FAC
/* 002DA8 800021A8 E4500000 */ swc1 $f16, ($v0)
/* 002DAC 800021AC 3C18800E */ lui $t8, %hi(sCurrentAudioSPTask) # $t8, 0x800e
/* 002DB0 800021B0 8F18C4AC */ lw $t8, %lo(sCurrentAudioSPTask)($t8)
/* 002DB4 800021B4 3C19800E */ lui $t9, %hi(gActiveSPTask) # $t9, 0x800e
/* 002DB8 800021B8 3C08800E */ lui $t0, %hi(gActiveSPTask) # $t0, 0x800e
/* 002DBC 800021BC 1300000E */ beqz $t8, .L800021F8
/* 002DC0 800021C0 00000000 */ nop
/* 002DC4 800021C4 8F39C4A8 */ lw $t9, %lo(gActiveSPTask)($t9)
/* 002DC8 800021C8 13200005 */ beqz $t9, .L800021E0
/* 002DCC 800021CC 00000000 */ nop
/* 002DD0 800021D0 0C0007DC */ jal interrupt_gfx_sptask
/* 002DD4 800021D4 00000000 */ nop
/* 002DD8 800021D8 10000016 */ b .L80002234
/* 002DDC 800021DC 00000000 */ nop
.L800021E0:
/* 002DE0 800021E0 0C000DBB */ jal profiler_log_vblank_time
/* 002DE4 800021E4 00000000 */ nop
/* 002DE8 800021E8 0C00019F */ jal start_sptask
/* 002DEC 800021EC 24040002 */ li $a0, 2
/* 002DF0 800021F0 10000010 */ b .L80002234
/* 002DF4 800021F4 00000000 */ nop
.L800021F8:
/* 002DF8 800021F8 8D08C4A8 */ lw $t0, %lo(gActiveSPTask)($t0)
/* 002DFC 800021FC 3C02800E */ lui $v0, %hi(sCurrentDisplaySPTask) # $v0, 0x800e
/* 002E00 80002200 1500000C */ bnez $t0, .L80002234
/* 002E04 80002204 00000000 */ nop
/* 002E08 80002208 8C42C4B0 */ lw $v0, %lo(sCurrentDisplaySPTask)($v0)
/* 002E0C 8000220C 10400009 */ beqz $v0, .L80002234
/* 002E10 80002210 00000000 */ nop
/* 002E14 80002214 8C490048 */ lw $t1, 0x48($v0)
/* 002E18 80002218 24010003 */ li $at, 3
/* 002E1C 8000221C 11210005 */ beq $t1, $at, .L80002234
/* 002E20 80002220 00000000 */ nop
/* 002E24 80002224 0C000D97 */ jal profiler_log_gfx_time
/* 002E28 80002228 00002025 */ move $a0, $zero
/* 002E2C 8000222C 0C00019F */ jal start_sptask
/* 002E30 80002230 24040001 */ li $a0, 1
.L80002234:
/* 002E34 80002234 3C02800E */ lui $v0, %hi(gVblankHandler1) # $v0, 0x800e
/* 002E38 80002238 8C42C4A0 */ lw $v0, %lo(gVblankHandler1)($v0)
/* 002E3C 8000223C 00003025 */ move $a2, $zero
/* 002E40 80002240 10400004 */ beqz $v0, .L80002254
/* 002E44 80002244 00000000 */ nop
/* 002E48 80002248 8C440000 */ lw $a0, ($v0)
/* 002E4C 8000224C 0C033630 */ jal osSendMesg
/* 002E50 80002250 8C450004 */ lw $a1, 4($v0)
.L80002254:
/* 002E54 80002254 3C02800E */ lui $v0, %hi(gVblankHandler2) # $v0, 0x800e
/* 002E58 80002258 8C42C4A4 */ lw $v0, %lo(gVblankHandler2)($v0)
/* 002E5C 8000225C 00003025 */ move $a2, $zero
/* 002E60 80002260 50400005 */ beql $v0, $zero, .L80002278
/* 002E64 80002264 8FBF0014 */ lw $ra, 0x14($sp)
/* 002E68 80002268 8C440000 */ lw $a0, ($v0)
/* 002E6C 8000226C 0C033630 */ jal osSendMesg
/* 002E70 80002270 8C450004 */ lw $a1, 4($v0)
/* 002E74 80002274 8FBF0014 */ lw $ra, 0x14($sp)
.L80002278:
/* 002E78 80002278 27BD0018 */ addiu $sp, $sp, 0x18
/* 002E7C 8000227C 03E00008 */ jr $ra
/* 002E80 80002280 00000000 */ nop

View File

@ -0,0 +1,73 @@
glabel func_800022DC
/* 002EDC 800022DC 3C02800E */ lui $v0, %hi(gActiveSPTask) # $v0, 0x800e
/* 002EE0 800022E0 2442C4A8 */ addiu $v0, %lo(gActiveSPTask) # addiu $v0, $v0, -0x3b58
/* 002EE4 800022E4 8C470000 */ lw $a3, ($v0)
/* 002EE8 800022E8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 002EEC 800022EC AFBF0014 */ sw $ra, 0x14($sp)
/* 002EF0 800022F0 AC400000 */ sw $zero, ($v0)
/* 002EF4 800022F4 8CEE0048 */ lw $t6, 0x48($a3)
/* 002EF8 800022F8 24010002 */ li $at, 2
/* 002EFC 800022FC 00E02025 */ move $a0, $a3
/* 002F00 80002300 55C10010 */ bnel $t6, $at, .L80002344
/* 002F04 80002304 8CF90000 */ lw $t9, ($a3)
/* 002F08 80002308 0C033758 */ jal func_800CDD60
/* 002F0C 8000230C AFA7001C */ sw $a3, 0x1c($sp)
/* 002F10 80002310 14400005 */ bnez $v0, .L80002328
/* 002F14 80002314 8FA7001C */ lw $a3, 0x1c($sp)
/* 002F18 80002318 240F0003 */ li $t7, 3
/* 002F1C 8000231C ACEF0048 */ sw $t7, 0x48($a3)
/* 002F20 80002320 0C000D97 */ jal profiler_log_gfx_time
/* 002F24 80002324 24040001 */ li $a0, 1
.L80002328:
/* 002F28 80002328 0C000DBB */ jal profiler_log_vblank_time
/* 002F2C 8000232C 00000000 */ nop
/* 002F30 80002330 0C00019F */ jal start_sptask
/* 002F34 80002334 24040002 */ li $a0, 2
/* 002F38 80002338 10000027 */ b .L800023D8
/* 002F3C 8000233C 8FBF0014 */ lw $ra, 0x14($sp)
/* 002F40 80002340 8CF90000 */ lw $t9, ($a3)
.L80002344:
/* 002F44 80002344 24180003 */ li $t8, 3
/* 002F48 80002348 24010002 */ li $at, 2
/* 002F4C 8000234C 1721001F */ bne $t9, $at, .L800023CC
/* 002F50 80002350 ACF80048 */ sw $t8, 0x48($a3)
/* 002F54 80002354 0C000DBB */ jal profiler_log_vblank_time
/* 002F58 80002358 AFA7001C */ sw $a3, 0x1c($sp)
/* 002F5C 8000235C 3C02800E */ lui $v0, %hi(sCurrentDisplaySPTask) # $v0, 0x800e
/* 002F60 80002360 8C42C4B0 */ lw $v0, %lo(sCurrentDisplaySPTask)($v0)
/* 002F64 80002364 8FA7001C */ lw $a3, 0x1c($sp)
/* 002F68 80002368 1040000E */ beqz $v0, .L800023A4
/* 002F6C 8000236C 00000000 */ nop
/* 002F70 80002370 8C430048 */ lw $v1, 0x48($v0)
/* 002F74 80002374 24010003 */ li $at, 3
/* 002F78 80002378 1061000A */ beq $v1, $at, .L800023A4
/* 002F7C 8000237C 24010002 */ li $at, 2
/* 002F80 80002380 10610004 */ beq $v1, $at, .L80002394
/* 002F84 80002384 00002025 */ move $a0, $zero
/* 002F88 80002388 0C000D97 */ jal profiler_log_gfx_time
/* 002F8C 8000238C AFA7001C */ sw $a3, 0x1c($sp)
/* 002F90 80002390 8FA7001C */ lw $a3, 0x1c($sp)
.L80002394:
/* 002F94 80002394 24040001 */ li $a0, 1
/* 002F98 80002398 0C00019F */ jal start_sptask
/* 002F9C 8000239C AFA7001C */ sw $a3, 0x1c($sp)
/* 002FA0 800023A0 8FA7001C */ lw $a3, 0x1c($sp)
.L800023A4:
/* 002FA4 800023A4 3C01800E */ lui $at, %hi(sCurrentAudioSPTask) # $at, 0x800e
/* 002FA8 800023A8 AC20C4AC */ sw $zero, %lo(sCurrentAudioSPTask)($at)
/* 002FAC 800023AC 8CE40040 */ lw $a0, 0x40($a3)
/* 002FB0 800023B0 00003025 */ move $a2, $zero
/* 002FB4 800023B4 50800008 */ beql $a0, $zero, .L800023D8
/* 002FB8 800023B8 8FBF0014 */ lw $ra, 0x14($sp)
/* 002FBC 800023BC 0C033630 */ jal osSendMesg
/* 002FC0 800023C0 8CE50044 */ lw $a1, 0x44($a3)
/* 002FC4 800023C4 10000004 */ b .L800023D8
/* 002FC8 800023C8 8FBF0014 */ lw $ra, 0x14($sp)
.L800023CC:
/* 002FCC 800023CC 0C000D97 */ jal profiler_log_gfx_time
/* 002FD0 800023D0 24040001 */ li $a0, 1
/* 002FD4 800023D4 8FBF0014 */ lw $ra, 0x14($sp)
.L800023D8:
/* 002FD8 800023D8 27BD0020 */ addiu $sp, $sp, 0x20
/* 002FDC 800023DC 03E00008 */ jr $ra
/* 002FE0 800023E0 00000000 */ nop

View File

@ -0,0 +1,73 @@
glabel func_80002684
/* 003284 80002684 3C0E800E */ lui $t6, %hi(D_800DC50C) # $t6, 0x800e
/* 003288 80002688 8DCEC50C */ lw $t6, %lo(D_800DC50C)($t6)
/* 00328C 8000268C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 003290 80002690 AFBF0014 */ sw $ra, 0x14($sp)
/* 003294 80002694 2DC1000A */ sltiu $at, $t6, 0xa
/* 003298 80002698 10200034 */ beqz $at, .L8000276C
/* 00329C 8000269C 000E7080 */ sll $t6, $t6, 2
/* 0032A0 800026A0 3C01800F */ lui $at, %hi(D_800EB648)
/* 0032A4 800026A4 002E0821 */ addu $at, $at, $t6
/* 0032A8 800026A8 8C2EB648 */ lw $t6, %lo(D_800EB648)($at)
/* 0032AC 800026AC 01C00008 */ jr $t6
/* 0032B0 800026B0 00000000 */ nop
glabel L800026B4
/* 0032B4 800026B4 0C000996 */ jal func_80002658
/* 0032B8 800026B8 00000000 */ nop
/* 0032BC 800026BC 240F00FF */ li $t7, 255
/* 0032C0 800026C0 3C01800E */ lui $at, %hi(D_800DC5A4) # $at, 0x800e
/* 0032C4 800026C4 10000029 */ b .L8000276C
/* 0032C8 800026C8 A42FC5A4 */ sh $t7, %lo(D_800DC5A4)($at)
glabel L800026CC
/* 0032CC 800026CC 0C000975 */ jal func_800025D4
/* 0032D0 800026D0 00000000 */ nop
/* 0032D4 800026D4 241800FF */ li $t8, 255
/* 0032D8 800026D8 3C01800E */ lui $at, %hi(D_800DC5A4) # $at, 0x800e
/* 0032DC 800026DC 10000023 */ b .L8000276C
/* 0032E0 800026E0 A438C5A4 */ sh $t8, %lo(D_800DC5A4)($at)
glabel L800026E4
/* 0032E4 800026E4 0C000980 */ jal func_80002600
/* 0032E8 800026E8 00000000 */ nop
/* 0032EC 800026EC 241900FF */ li $t9, 255
/* 0032F0 800026F0 3C01800E */ lui $at, %hi(D_800DC5A4) # $at, 0x800e
/* 0032F4 800026F4 1000001D */ b .L8000276C
/* 0032F8 800026F8 A439C5A4 */ sh $t9, %lo(D_800DC5A4)($at)
glabel L800026FC
/* 0032FC 800026FC 0C00098B */ jal func_8000262C
/* 003300 80002700 00000000 */ nop
/* 003304 80002704 240800FF */ li $t0, 255
/* 003308 80002708 3C01800E */ lui $at, %hi(D_800DC5A4) # $at, 0x800e
/* 00330C 8000270C 10000017 */ b .L8000276C
/* 003310 80002710 A428C5A4 */ sh $t0, %lo(D_800DC5A4)($at)
glabel L80002714
/* 003314 80002714 0C000433 */ jal func_800010CC
/* 003318 80002718 00000000 */ nop
/* 00331C 8000271C 0C000A86 */ jal func_80002A18
/* 003320 80002720 00000000 */ nop
/* 003324 80002724 10000012 */ b .L80002770
/* 003328 80002728 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8000272C
/* 00332C 8000272C 240900FF */ li $t1, 255
/* 003330 80002730 3C01800E */ lui $at, %hi(D_800DC5A4) # $at, 0x800e
/* 003334 80002734 0C000417 */ jal func_8000105C
/* 003338 80002738 A429C5A4 */ sh $t1, %lo(D_800DC5A4)($at)
/* 00333C 8000273C 0C0A065A */ jal load_ending_sequence_royalraceway
/* 003340 80002740 00000000 */ nop
/* 003344 80002744 1000000A */ b .L80002770
/* 003348 80002748 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8000274C
/* 00334C 8000274C 240A00FF */ li $t2, 255
/* 003350 80002750 3C01800E */ lui $at, %hi(D_800DC5A4) # $at, 0x800e
/* 003354 80002754 0C000433 */ jal func_800010CC
/* 003358 80002758 A42AC5A4 */ sh $t2, %lo(D_800DC5A4)($at)
/* 00335C 8000275C 0C000417 */ jal func_8000105C
/* 003360 80002760 00000000 */ nop
/* 003364 80002764 0C0A0108 */ jal func_80280420
/* 003368 80002768 00000000 */ nop
.L8000276C:
glabel L8000276C
/* 00336C 8000276C 8FBF0014 */ lw $ra, 0x14($sp)
.L80002770:
/* 003370 80002770 27BD0018 */ addiu $sp, $sp, 0x18
/* 003374 80002774 03E00008 */ jr $ra
/* 003378 80002778 00000000 */ nop

View File

@ -0,0 +1,39 @@
glabel init_controllers
/* 0014A4 800008A4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0014A8 800008A8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0014AC 800008AC 3C048015 */ lui $a0, %hi(D_8014F0B8) # $a0, 0x8015
/* 0014B0 800008B0 3C058015 */ lui $a1, %hi(D_8014F0D0) # $a1, 0x8015
/* 0014B4 800008B4 24A5F0D0 */ addiu $a1, %lo(D_8014F0D0) # addiu $a1, $a1, -0xf30
/* 0014B8 800008B8 2484F0B8 */ addiu $a0, %lo(D_8014F0B8) # addiu $a0, $a0, -0xf48
/* 0014BC 800008BC 0C033358 */ jal osCreateMesgQueue
/* 0014C0 800008C0 24060003 */ li $a2, 3
/* 0014C4 800008C4 3C058015 */ lui $a1, %hi(D_8014F0B8) # $a1, 0x8015
/* 0014C8 800008C8 3C063333 */ lui $a2, (0x33333333 >> 16) # lui $a2, 0x3333
/* 0014CC 800008CC 34C63333 */ ori $a2, (0x33333333 & 0xFFFF) # ori $a2, $a2, 0x3333
/* 0014D0 800008D0 24A5F0B8 */ addiu $a1, %lo(D_8014F0B8) # addiu $a1, $a1, -0xf48
/* 0014D4 800008D4 0C033380 */ jal osSetEventMesg
/* 0014D8 800008D8 24040005 */ li $a0, 5
/* 0014DC 800008DC 3C048015 */ lui $a0, %hi(D_8014F0B8) # $a0, 0x8015
/* 0014E0 800008E0 3C058015 */ lui $a1, %hi(D_8014F108) # $a1, 0x8015
/* 0014E4 800008E4 3C068015 */ lui $a2, %hi(D_8014F0E0) # $a2, 0x8015
/* 0014E8 800008E8 24C6F0E0 */ addiu $a2, %lo(D_8014F0E0) # addiu $a2, $a2, -0xf20
/* 0014EC 800008EC 24A5F108 */ addiu $a1, %lo(D_8014F108) # addiu $a1, $a1, -0xef8
/* 0014F0 800008F0 0C03344C */ jal osContInit
/* 0014F4 800008F4 2484F0B8 */ addiu $a0, %lo(D_8014F0B8) # addiu $a0, $a0, -0xf48
/* 0014F8 800008F8 3C0E8015 */ lui $t6, %hi(D_8014F108) # $t6, 0x8015
/* 0014FC 800008FC 91CEF108 */ lbu $t6, %lo(D_8014F108)($t6)
/* 001500 80000900 24180001 */ li $t8, 1
/* 001504 80000904 3C018016 */ lui $at, 0x8016
/* 001508 80000908 31CF0001 */ andi $t7, $t6, 1
/* 00150C 8000090C 15E00004 */ bnez $t7, .L80000920
/* 001510 80000910 00000000 */ nop
/* 001514 80000914 3C018016 */ lui $at, %hi(D_801625EA) # $at, 0x8016
/* 001518 80000918 10000002 */ b .L80000924
/* 00151C 8000091C A43825EA */ sh $t8, %lo(D_801625EA)($at)
.L80000920:
/* 001520 80000920 A42025EA */ sh $zero, %lo(D_801625EA)($at)
.L80000924:
/* 001524 80000924 8FBF0014 */ lw $ra, 0x14($sp)
/* 001528 80000928 27BD0018 */ addiu $sp, $sp, 0x18
/* 00152C 8000092C 03E00008 */ jr $ra
/* 001530 80000930 00000000 */ nop

View File

@ -0,0 +1,105 @@
glabel init_game
/* 001E64 80001264 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 001E68 80001268 AFBF0024 */ sw $ra, 0x24($sp)
/* 001E6C 8000126C 0C000433 */ jal func_800010CC
/* 001E70 80001270 00000000 */ nop
/* 001E74 80001274 3C0E8028 */ lui $t6, (0x8028DF00 >> 16) # lui $t6, 0x8028
/* 001E78 80001278 35CEDF00 */ ori $t6, (0x8028DF00 & 0xFFFF) # ori $t6, $t6, 0xdf00
/* 001E7C 8000127C 3C018016 */ lui $at, %hi(gHeapEndPtr) # $at, 0x8016
/* 001E80 80001280 AC2EF72C */ sw $t6, %lo(gHeapEndPtr)($at)
/* 001E84 80001284 00002025 */ move $a0, $zero
/* 001E88 80001288 0C0A9EE5 */ jal set_segment_base_addr
/* 001E8C 8000128C 3C058000 */ lui $a1, 0x8000
/* 001E90 80001290 3C048019 */ lui $a0, %hi(D_801978D0) # $a0, 0x8019
/* 001E94 80001294 3C058024 */ lui $a1, (0x80242F00 >> 16) # lui $a1, 0x8024
/* 001E98 80001298 34A52F00 */ ori $a1, (0x80242F00 & 0xFFFF) # ori $a1, $a1, 0x2f00
/* 001E9C 8000129C 0C0A9F3C */ jal func_802A7CF0
/* 001EA0 800012A0 248478D0 */ addiu $a0, %lo(D_801978D0) # addiu $a0, $a0, 0x78d0
/* 001EA4 800012A4 0C0002FB */ jal func_80000BEC
/* 001EA8 800012A8 00000000 */ nop
/* 001EAC 800012AC 3C04802B */ lui $a0, (0x802BA370 >> 16) # lui $a0, 0x802b
/* 001EB0 800012B0 3484A370 */ ori $a0, (0x802BA370 & 0xFFFF) # ori $a0, $a0, 0xa370
/* 001EB4 800012B4 0C0336E0 */ jal osInvalDCache
/* 001EB8 800012B8 24055810 */ li $a1, 22544
/* 001EBC 800012BC 3C0F802B */ lui $t7, (0x802BA370 >> 16) # lui $t7, 0x802b
/* 001EC0 800012C0 3C198015 */ lui $t9, %hi(D_8014EF58) # $t9, 0x8015
/* 001EC4 800012C4 2739EF58 */ addiu $t9, %lo(D_8014EF58) # addiu $t9, $t9, -0x10a8
/* 001EC8 800012C8 35EFA370 */ ori $t7, (0x802BA370 & 0xFFFF) # ori $t7, $t7, 0xa370
/* 001ECC 800012CC 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 001ED0 800012D0 3C070072 */ lui $a3, %hi(_data_802BA370SegmentRomStart) # $a3, 0x72
/* 001ED4 800012D4 24185810 */ li $t8, 22544
/* 001ED8 800012D8 AFB80014 */ sw $t8, 0x14($sp)
/* 001EDC 800012DC 24E74220 */ addiu $a3, %lo(_data_802BA370SegmentRomStart) # addiu $a3, $a3, 0x4220
/* 001EE0 800012E0 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 001EE4 800012E4 AFAF0010 */ sw $t7, 0x10($sp)
/* 001EE8 800012E8 AFB90018 */ sw $t9, 0x18($sp)
/* 001EEC 800012EC 00002825 */ move $a1, $zero
/* 001EF0 800012F0 0C03370C */ jal osPiStartDma
/* 001EF4 800012F4 00003025 */ move $a2, $zero
/* 001EF8 800012F8 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 001EFC 800012FC 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001F00 80001300 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001F04 80001304 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 001F08 80001308 0C0335D4 */ jal osRecvMesg
/* 001F0C 8000130C 24060001 */ li $a2, 1
/* 001F10 80001310 3C040013 */ lui $a0, %hi(_data_segment2SegmentRomStart) # $a0, 0x13
/* 001F14 80001314 3C050013 */ lui $a1, %hi(_data_segment2SegmentRomEnd) # $a1, 0x13
/* 001F18 80001318 24A52B50 */ addiu $a1, %lo(_data_segment2SegmentRomEnd) # addiu $a1, $a1, 0x2b50
/* 001F1C 8000131C 0C0A9F5C */ jal func_802A7D70
/* 001F20 80001320 2484AAE0 */ addiu $a0, %lo(_data_segment2SegmentRomStart) # addiu $a0, $a0, -0x5520
/* 001F24 80001324 24040002 */ li $a0, 2
/* 001F28 80001328 0C0A9EE5 */ jal set_segment_base_addr
/* 001F2C 8000132C 00402825 */ move $a1, $v0
/* 001F30 80001330 3C070013 */ lui $a3, %hi(_common_texturesSegmentRomStart) # $a3, 0x13
/* 001F34 80001334 3C090014 */ lui $t1, %hi(_common_texturesSegmentRomEnd) # $t1, 0x14
/* 001F38 80001338 25295470 */ addiu $t1, %lo(_common_texturesSegmentRomEnd) # addiu $t1, $t1, 0x5470
/* 001F3C 8000133C 24E72B50 */ addiu $a3, %lo(_common_texturesSegmentRomStart) # addiu $a3, $a3, 0x2b50
/* 001F40 80001340 01271823 */ subu $v1, $t1, $a3
/* 001F44 80001344 2463000F */ addiu $v1, $v1, 0xf
/* 001F48 80001348 2401FFF0 */ li $at, -16
/* 001F4C 8000134C 3C0B8028 */ lui $t3, (0x8028DF00 >> 16) # lui $t3, 0x8028
/* 001F50 80001350 356BDF00 */ ori $t3, (0x8028DF00 & 0xFFFF) # ori $t3, $t3, 0xdf00
/* 001F54 80001354 00615024 */ and $t2, $v1, $at
/* 001F58 80001358 3C0C8015 */ lui $t4, %hi(D_8014EF58) # $t4, 0x8015
/* 001F5C 8000135C 258CEF58 */ addiu $t4, %lo(D_8014EF58) # addiu $t4, $t4, -0x10a8
/* 001F60 80001360 016A4023 */ subu $t0, $t3, $t2
/* 001F64 80001364 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 001F68 80001368 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 001F6C 8000136C AFA80010 */ sw $t0, 0x10($sp)
/* 001F70 80001370 AFA8002C */ sw $t0, 0x2c($sp)
/* 001F74 80001374 AFAC0018 */ sw $t4, 0x18($sp)
/* 001F78 80001378 01401825 */ move $v1, $t2
/* 001F7C 8000137C AFAA0014 */ sw $t2, 0x14($sp)
/* 001F80 80001380 00002825 */ move $a1, $zero
/* 001F84 80001384 0C03370C */ jal osPiStartDma
/* 001F88 80001388 00003025 */ move $a2, $zero
/* 001F8C 8000138C 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 001F90 80001390 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001F94 80001394 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001F98 80001398 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 001F9C 8000139C 0C0335D4 */ jal osRecvMesg
/* 001FA0 800013A0 24060001 */ li $a2, 1
/* 001FA4 800013A4 8FA4002C */ lw $a0, 0x2c($sp)
/* 001FA8 800013A8 3C058016 */ lui $a1, %hi(D_8015F728) # $a1, 0x8016
/* 001FAC 800013AC 8CA5F728 */ lw $a1, %lo(D_8015F728)($a1)
/* 001FB0 800013B0 8C830004 */ lw $v1, 4($a0)
/* 001FB4 800013B4 2401FFF0 */ li $at, -16
/* 001FB8 800013B8 AFA50038 */ sw $a1, 0x38($sp)
/* 001FBC 800013BC 2463000F */ addiu $v1, $v1, 0xf
/* 001FC0 800013C0 00616824 */ and $t5, $v1, $at
/* 001FC4 800013C4 0C010034 */ jal mio0decode
/* 001FC8 800013C8 AFAD0040 */ sw $t5, 0x40($sp)
/* 001FCC 800013CC 8FA50038 */ lw $a1, 0x38($sp)
/* 001FD0 800013D0 0C0A9EE5 */ jal set_segment_base_addr
/* 001FD4 800013D4 2404000D */ li $a0, 13
/* 001FD8 800013D8 3C048016 */ lui $a0, %hi(D_8015F728) # $a0, 0x8016
/* 001FDC 800013DC 2484F728 */ addiu $a0, %lo(D_8015F728) # addiu $a0, $a0, -0x8d8
/* 001FE0 800013E0 8FA30040 */ lw $v1, 0x40($sp)
/* 001FE4 800013E4 8C8E0000 */ lw $t6, ($a0)
/* 001FE8 800013E8 8FBF0024 */ lw $ra, 0x24($sp)
/* 001FEC 800013EC 3C018016 */ lui $at, %hi(D_8015F734) # $at, 0x8016
/* 001FF0 800013F0 01C37821 */ addu $t7, $t6, $v1
/* 001FF4 800013F4 AC8F0000 */ sw $t7, ($a0)
/* 001FF8 800013F8 AC2FF734 */ sw $t7, %lo(D_8015F734)($at)
/* 001FFC 800013FC 03E00008 */ jr $ra
/* 002000 80001400 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -0,0 +1,114 @@
glabel read_controllers
/* 001628 80000A28 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 00162C 80000A2C AFBF0014 */ sw $ra, 0x14($sp)
/* 001630 80000A30 3C048015 */ lui $a0, %hi(D_8014F0B8) # $a0, 0x8015
/* 001634 80000A34 0C03353C */ jal osContStartReadData
/* 001638 80000A38 2484F0B8 */ addiu $a0, %lo(D_8014F0B8) # addiu $a0, $a0, -0xf48
/* 00163C 80000A3C 3C048015 */ lui $a0, %hi(D_8014F0B8) # $a0, 0x8015
/* 001640 80000A40 2484F0B8 */ addiu $a0, %lo(D_8014F0B8) # addiu $a0, $a0, -0xf48
/* 001644 80000A44 27A5001C */ addiu $a1, $sp, 0x1c
/* 001648 80000A48 0C0335D4 */ jal osRecvMesg
/* 00164C 80000A4C 24060001 */ li $a2, 1
/* 001650 80000A50 3C048015 */ lui $a0, %hi(D_8014F0F0) # $a0, 0x8015
/* 001654 80000A54 0C03356D */ jal osContGetReadData
/* 001658 80000A58 2484F0F0 */ addiu $a0, %lo(D_8014F0F0) # addiu $a0, $a0, -0xf10
/* 00165C 80000A5C 0C00024D */ jal func_80000934
/* 001660 80000A60 00002025 */ move $a0, $zero
/* 001664 80000A64 0C00024D */ jal func_80000934
/* 001668 80000A68 24040001 */ li $a0, 1
/* 00166C 80000A6C 0C00024D */ jal func_80000934
/* 001670 80000A70 24040002 */ li $a0, 2
/* 001674 80000A74 0C00024D */ jal func_80000934
/* 001678 80000A78 24040003 */ li $a0, 3
/* 00167C 80000A7C 3C03800E */ lui $v1, %hi(D_800DC4BC) # $v1, 0x800e
/* 001680 80000A80 3C04800E */ lui $a0, %hi(D_800DC4C0) # $a0, 0x800e
/* 001684 80000A84 2484C4C0 */ addiu $a0, %lo(D_800DC4C0) # addiu $a0, $a0, -0x3b40
/* 001688 80000A88 2463C4BC */ addiu $v1, %lo(D_800DC4BC) # addiu $v1, $v1, -0x3b44
/* 00168C 80000A8C 3C05800E */ lui $a1, %hi(D_800DC4C4) # $a1, 0x800e
/* 001690 80000A90 8C6E0000 */ lw $t6, ($v1)
/* 001694 80000A94 8C980000 */ lw $t8, ($a0)
/* 001698 80000A98 24A5C4C4 */ addiu $a1, %lo(D_800DC4C4) # addiu $a1, $a1, -0x3b3c
/* 00169C 80000A9C 3C06800E */ lui $a2, %hi(D_800DC4C8) # $a2, 0x800e
/* 0016A0 80000AA0 8CA90000 */ lw $t1, ($a1)
/* 0016A4 80000AA4 24C6C4C8 */ addiu $a2, %lo(D_800DC4C8) # addiu $a2, $a2, -0x3b38
/* 0016A8 80000AA8 8CCC0000 */ lw $t4, ($a2)
/* 0016AC 80000AAC 95CF0004 */ lhu $t7, 4($t6)
/* 0016B0 80000AB0 97190004 */ lhu $t9, 4($t8)
/* 0016B4 80000AB4 952A0004 */ lhu $t2, 4($t1)
/* 0016B8 80000AB8 3C02800E */ lui $v0, %hi(D_800DC4CC) # $v0, 0x800e
/* 0016BC 80000ABC 958D0004 */ lhu $t5, 4($t4)
/* 0016C0 80000AC0 2442C4CC */ addiu $v0, %lo(D_800DC4CC) # addiu $v0, $v0, -0x3b34
/* 0016C4 80000AC4 8C580000 */ lw $t8, ($v0)
/* 0016C8 80000AC8 01F94025 */ or $t0, $t7, $t9
/* 0016CC 80000ACC 010A5825 */ or $t3, $t0, $t2
/* 0016D0 80000AD0 016D7025 */ or $t6, $t3, $t5
/* 0016D4 80000AD4 A70E0004 */ sh $t6, 4($t8)
/* 0016D8 80000AD8 8C890000 */ lw $t1, ($a0)
/* 0016DC 80000ADC 8C6F0000 */ lw $t7, ($v1)
/* 0016E0 80000AE0 8CAC0000 */ lw $t4, ($a1)
/* 0016E4 80000AE4 8CCE0000 */ lw $t6, ($a2)
/* 0016E8 80000AE8 95280006 */ lhu $t0, 6($t1)
/* 0016EC 80000AEC 95F90006 */ lhu $t9, 6($t7)
/* 0016F0 80000AF0 958B0006 */ lhu $t3, 6($t4)
/* 0016F4 80000AF4 95D80006 */ lhu $t8, 6($t6)
/* 0016F8 80000AF8 8C490000 */ lw $t1, ($v0)
/* 0016FC 80000AFC 03285025 */ or $t2, $t9, $t0
/* 001700 80000B00 014B6825 */ or $t5, $t2, $t3
/* 001704 80000B04 01B87825 */ or $t7, $t5, $t8
/* 001708 80000B08 A52F0006 */ sh $t7, 6($t1)
/* 00170C 80000B0C 8C8C0000 */ lw $t4, ($a0)
/* 001710 80000B10 8C790000 */ lw $t9, ($v1)
/* 001714 80000B14 8CAE0000 */ lw $t6, ($a1)
/* 001718 80000B18 8CCF0000 */ lw $t7, ($a2)
/* 00171C 80000B1C 958A0008 */ lhu $t2, 8($t4)
/* 001720 80000B20 97280008 */ lhu $t0, 8($t9)
/* 001724 80000B24 95CD0008 */ lhu $t5, 8($t6)
/* 001728 80000B28 95E90008 */ lhu $t1, 8($t7)
/* 00172C 80000B2C 8C4C0000 */ lw $t4, ($v0)
/* 001730 80000B30 010A5825 */ or $t3, $t0, $t2
/* 001734 80000B34 016DC025 */ or $t8, $t3, $t5
/* 001738 80000B38 0309C825 */ or $t9, $t8, $t1
/* 00173C 80000B3C A5990008 */ sh $t9, 8($t4)
/* 001740 80000B40 8C8E0000 */ lw $t6, ($a0)
/* 001744 80000B44 8C680000 */ lw $t0, ($v1)
/* 001748 80000B48 8CAF0000 */ lw $t7, ($a1)
/* 00174C 80000B4C 8CD90000 */ lw $t9, ($a2)
/* 001750 80000B50 95CB000A */ lhu $t3, 0xa($t6)
/* 001754 80000B54 950A000A */ lhu $t2, 0xa($t0)
/* 001758 80000B58 95F8000A */ lhu $t8, 0xa($t7)
/* 00175C 80000B5C 972C000A */ lhu $t4, 0xa($t9)
/* 001760 80000B60 8C4E0000 */ lw $t6, ($v0)
/* 001764 80000B64 014B6825 */ or $t5, $t2, $t3
/* 001768 80000B68 01B84825 */ or $t1, $t5, $t8
/* 00176C 80000B6C 012C4025 */ or $t0, $t1, $t4
/* 001770 80000B70 A5C8000A */ sh $t0, 0xa($t6)
/* 001774 80000B74 8C8F0000 */ lw $t7, ($a0)
/* 001778 80000B78 8C6A0000 */ lw $t2, ($v1)
/* 00177C 80000B7C 8CB90000 */ lw $t9, ($a1)
/* 001780 80000B80 8CC80000 */ lw $t0, ($a2)
/* 001784 80000B84 95ED000C */ lhu $t5, 0xc($t7)
/* 001788 80000B88 954B000C */ lhu $t3, 0xc($t2)
/* 00178C 80000B8C 9729000C */ lhu $t1, 0xc($t9)
/* 001790 80000B90 950E000C */ lhu $t6, 0xc($t0)
/* 001794 80000B94 8C4F0000 */ lw $t7, ($v0)
/* 001798 80000B98 016DC025 */ or $t8, $t3, $t5
/* 00179C 80000B9C 03096025 */ or $t4, $t8, $t1
/* 0017A0 80000BA0 018E5025 */ or $t2, $t4, $t6
/* 0017A4 80000BA4 A5EA000C */ sh $t2, 0xc($t7)
/* 0017A8 80000BA8 8C990000 */ lw $t9, ($a0)
/* 0017AC 80000BAC 8C6B0000 */ lw $t3, ($v1)
/* 0017B0 80000BB0 8CA80000 */ lw $t0, ($a1)
/* 0017B4 80000BB4 8CCA0000 */ lw $t2, ($a2)
/* 0017B8 80000BB8 9738000E */ lhu $t8, 0xe($t9)
/* 0017BC 80000BBC 956D000E */ lhu $t5, 0xe($t3)
/* 0017C0 80000BC0 950C000E */ lhu $t4, 0xe($t0)
/* 0017C4 80000BC4 954F000E */ lhu $t7, 0xe($t2)
/* 0017C8 80000BC8 8C590000 */ lw $t9, ($v0)
/* 0017CC 80000BCC 01B84825 */ or $t1, $t5, $t8
/* 0017D0 80000BD0 012C7025 */ or $t6, $t1, $t4
/* 0017D4 80000BD4 01CF5825 */ or $t3, $t6, $t7
/* 0017D8 80000BD8 A72B000E */ sh $t3, 0xe($t9)
/* 0017DC 80000BDC 8FBF0014 */ lw $ra, 0x14($sp)
/* 0017E0 80000BE0 27BD0020 */ addiu $sp, $sp, 0x20
/* 0017E4 80000BE4 03E00008 */ jr $ra
/* 0017E8 80000BE8 00000000 */ nop

View File

@ -0,0 +1,131 @@
glabel thread3_video
/* 002FE4 800023E4 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 002FE8 800023E8 3C038015 */ lui $v1, %hi(D_801502A8) # $v1, 0x8015
/* 002FEC 800023EC 246302A8 */ addiu $v1, %lo(D_801502A8) # addiu $v1, $v1, 0x2a8
/* 002FF0 800023F0 3C0E8032 */ lui $t6, %hi(D_8031F780) # $t6, 0x8032
/* 002FF4 800023F4 3C0F8034 */ lui $t7, %hi(D_80344F80) # $t7, 0x8034
/* 002FF8 800023F8 3C188037 */ lui $t8, %hi(D_8036A780) # $t8, 0x8037
/* 002FFC 800023FC 25CEF780 */ addiu $t6, %lo(D_8031F780) # addiu $t6, $t6, -0x880
/* 003000 80002400 25EF4F80 */ addiu $t7, %lo(D_80344F80) # addiu $t7, $t7, 0x4f80
/* 003004 80002404 2718A780 */ addiu $t8, %lo(D_8036A780) # addiu $t8, $t8, -0x5880
/* 003008 80002408 AC6E0000 */ sw $t6, ($v1)
/* 00300C 8000240C AC6F0004 */ sw $t7, 4($v1)
/* 003010 80002410 AC780008 */ sw $t8, 8($v1)
/* 003014 80002414 3C038037 */ lui $v1, %hi(D_8036A780) # $v1, 0x8037
/* 003018 80002418 3C028034 */ lui $v0, %hi(D_80344F80) # $v0, 0x8034
/* 00301C 8000241C AFBF0034 */ sw $ra, 0x34($sp)
/* 003020 80002420 AFB50030 */ sw $s5, 0x30($sp)
/* 003024 80002424 AFB4002C */ sw $s4, 0x2c($sp)
/* 003028 80002428 AFB30028 */ sw $s3, 0x28($sp)
/* 00302C 8000242C AFB20024 */ sw $s2, 0x24($sp)
/* 003030 80002430 AFB10020 */ sw $s1, 0x20($sp)
/* 003034 80002434 AFB0001C */ sw $s0, 0x1c($sp)
/* 003038 80002438 AFA40060 */ sw $a0, 0x60($sp)
/* 00303C 8000243C 24424F80 */ addiu $v0, %lo(D_80344F80) # addiu $v0, $v0, 0x4f80
/* 003040 80002440 2463A780 */ addiu $v1, %lo(D_8036A780) # addiu $v1, $v1, -0x5880
.L80002444:
/* 003044 80002444 240A0000 */ li $t2, 0
/* 003048 80002448 240B0000 */ li $t3, 0
/* 00304C 8000244C 240C0000 */ li $t4, 0
/* 003050 80002450 240D0000 */ li $t5, 0
/* 003054 80002454 240E0000 */ li $t6, 0
/* 003058 80002458 240F0000 */ li $t7, 0
/* 00305C 8000245C 24420020 */ addiu $v0, $v0, 0x20
/* 003060 80002460 24080000 */ li $t0, 0
/* 003064 80002464 24090000 */ li $t1, 0
/* 003068 80002468 AC4FFFFC */ sw $t7, -4($v0)
/* 00306C 8000246C AC4EFFF8 */ sw $t6, -8($v0)
/* 003070 80002470 AC4DFFF4 */ sw $t5, -0xc($v0)
/* 003074 80002474 AC4CFFF0 */ sw $t4, -0x10($v0)
/* 003078 80002478 AC4BFFEC */ sw $t3, -0x14($v0)
/* 00307C 8000247C AC4AFFE8 */ sw $t2, -0x18($v0)
/* 003080 80002480 AC49FFE4 */ sw $t1, -0x1c($v0)
/* 003084 80002484 1443FFEF */ bne $v0, $v1, .L80002444
/* 003088 80002488 AC48FFE0 */ sw $t0, -0x20($v0)
/* 00308C 8000248C 0C000178 */ jal setup_mesg_queues
/* 003090 80002490 00000000 */ nop
/* 003094 80002494 0C000499 */ jal init_game
/* 003098 80002498 00000000 */ nop
/* 00309C 8000249C 3C108016 */ lui $s0, %hi(D_8015AB80) # $s0, 0x8016
/* 0030A0 800024A0 3C198016 */ lui $t9, %hi(D_8015CD30) # $t9, 0x8016
/* 0030A4 800024A4 2610AB80 */ addiu $s0, %lo(D_8015AB80) # addiu $s0, $s0, -0x5480
/* 0030A8 800024A8 2739CD30 */ addiu $t9, %lo(D_8015CD30) # addiu $t9, $t9, -0x32d0
/* 0030AC 800024AC 3C068000 */ lui $a2, %hi(thread4_audio) # $a2, 0x8000
/* 0030B0 800024B0 24180014 */ li $t8, 20
/* 0030B4 800024B4 AFB80014 */ sw $t8, 0x14($sp)
/* 0030B8 800024B8 24C628E4 */ addiu $a2, %lo(thread4_audio) # addiu $a2, $a2, 0x28e4
/* 0030BC 800024BC AFB90010 */ sw $t9, 0x10($sp)
/* 0030C0 800024C0 02002025 */ move $a0, $s0
/* 0030C4 800024C4 24050004 */ li $a1, 4
/* 0030C8 800024C8 0C000114 */ jal create_thread
/* 0030CC 800024CC 00003825 */ move $a3, $zero
/* 0030D0 800024D0 0C0330D8 */ jal osStartThread
/* 0030D4 800024D4 02002025 */ move $a0, $s0
/* 0030D8 800024D8 3C108016 */ lui $s0, %hi(D_801589D0) # $s0, 0x8016
/* 0030DC 800024DC 3C088016 */ lui $t0, %hi(D_8015AB80) # $t0, 0x8016
/* 0030E0 800024E0 261089D0 */ addiu $s0, %lo(D_801589D0) # addiu $s0, $s0, -0x7630
/* 0030E4 800024E4 2508AB80 */ addiu $t0, %lo(D_8015AB80) # addiu $t0, $t0, -0x5480
/* 0030E8 800024E8 3C068000 */ lui $a2, %hi(thread5_game_logic) # $a2, 0x8000
/* 0030EC 800024EC 2409000A */ li $t1, 10
/* 0030F0 800024F0 AFA90014 */ sw $t1, 0x14($sp)
/* 0030F4 800024F4 24C6277C */ addiu $a2, %lo(thread5_game_logic) # addiu $a2, $a2, 0x277c
/* 0030F8 800024F8 AFA80010 */ sw $t0, 0x10($sp)
/* 0030FC 800024FC 02002025 */ move $a0, $s0
/* 003100 80002500 24050005 */ li $a1, 5
/* 003104 80002504 0C000114 */ jal create_thread
/* 003108 80002508 00003825 */ move $a3, $zero
/* 00310C 8000250C 0C0330D8 */ jal osStartThread
/* 003110 80002510 02002025 */ move $a0, $s0
/* 003114 80002514 3C108015 */ lui $s0, %hi(D_8014EFB8) # $s0, 0x8015
/* 003118 80002518 2610EFB8 */ addiu $s0, %lo(D_8014EFB8) # addiu $s0, $s0, -0x1048
/* 00311C 8000251C 24150067 */ li $s5, 103
/* 003120 80002520 24140066 */ li $s4, 102
/* 003124 80002524 24130065 */ li $s3, 101
/* 003128 80002528 24120064 */ li $s2, 100
/* 00312C 8000252C 27B10054 */ addiu $s1, $sp, 0x54
/* 003130 80002530 02002025 */ move $a0, $s0
.L80002534:
/* 003134 80002534 02202825 */ move $a1, $s1
/* 003138 80002538 0C0335D4 */ jal osRecvMesg
/* 00313C 8000253C 24060001 */ li $a2, 1
/* 003140 80002540 8FA20054 */ lw $v0, 0x54($sp)
/* 003144 80002544 1052000D */ beq $v0, $s2, .L8000257C
/* 003148 80002548 00000000 */ nop
/* 00314C 8000254C 1053000F */ beq $v0, $s3, .L8000258C
/* 003150 80002550 00000000 */ nop
/* 003154 80002554 10540005 */ beq $v0, $s4, .L8000256C
/* 003158 80002558 00000000 */ nop
/* 00315C 8000255C 1055000F */ beq $v0, $s5, .L8000259C
/* 003160 80002560 00000000 */ nop
/* 003164 80002564 1000FFF3 */ b .L80002534
/* 003168 80002568 02002025 */ move $a0, $s0
.L8000256C:
/* 00316C 8000256C 0C00085A */ jal func_80002168
/* 003170 80002570 00000000 */ nop
/* 003174 80002574 1000FFEF */ b .L80002534
/* 003178 80002578 02002025 */ move $a0, $s0
.L8000257C:
/* 00317C 8000257C 0C0008B7 */ jal func_800022DC
/* 003180 80002580 00000000 */ nop
/* 003184 80002584 1000FFEB */ b .L80002534
/* 003188 80002588 02002025 */ move $a0, $s0
.L8000258C:
/* 00318C 8000258C 0C0008A1 */ jal func_80002284
/* 003190 80002590 00000000 */ nop
/* 003194 80002594 1000FFE7 */ b .L80002534
/* 003198 80002598 02002025 */ move $a0, $s0
.L8000259C:
/* 00319C 8000259C 0C000846 */ jal start_gfx_sptask
/* 0031A0 800025A0 00000000 */ nop
/* 0031A4 800025A4 1000FFE3 */ b .L80002534
/* 0031A8 800025A8 02002025 */ move $a0, $s0
/* 0031AC 800025AC 00000000 */ nop
/* 0031B0 800025B0 8FBF0034 */ lw $ra, 0x34($sp)
/* 0031B4 800025B4 8FB0001C */ lw $s0, 0x1c($sp)
/* 0031B8 800025B8 8FB10020 */ lw $s1, 0x20($sp)
/* 0031BC 800025BC 8FB20024 */ lw $s2, 0x24($sp)
/* 0031C0 800025C0 8FB30028 */ lw $s3, 0x28($sp)
/* 0031C4 800025C4 8FB4002C */ lw $s4, 0x2c($sp)
/* 0031C8 800025C8 8FB50030 */ lw $s5, 0x30($sp)
/* 0031CC 800025CC 03E00008 */ jr $ra
/* 0031D0 800025D0 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -0,0 +1,94 @@
glabel thread5_game_logic
/* 00337C 8000277C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 003380 80002780 AFA40020 */ sw $a0, 0x20($sp)
/* 003384 80002784 AFBF001C */ sw $ra, 0x1c($sp)
/* 003388 80002788 3C048015 */ lui $a0, %hi(D_8014EF88) # $a0, 0x8015
/* 00338C 8000278C 3C058015 */ lui $a1, %hi(D_8014F00C) # $a1, 0x8015
/* 003390 80002790 AFB10018 */ sw $s1, 0x18($sp)
/* 003394 80002794 AFB00014 */ sw $s0, 0x14($sp)
/* 003398 80002798 24A5F00C */ addiu $a1, %lo(D_8014F00C) # addiu $a1, $a1, -0xff4
/* 00339C 8000279C 2484EF88 */ addiu $a0, %lo(D_8014EF88) # addiu $a0, $a0, -0x1078
/* 0033A0 800027A0 0C033358 */ jal osCreateMesgQueue
/* 0033A4 800027A4 24060001 */ li $a2, 1
/* 0033A8 800027A8 3C108015 */ lui $s0, %hi(D_8014EF70) # $s0, 0x8015
/* 0033AC 800027AC 2610EF70 */ addiu $s0, %lo(D_8014EF70) # addiu $s0, $s0, -0x1090
/* 0033B0 800027B0 3C058015 */ lui $a1, %hi(D_8014F008) # $a1, 0x8015
/* 0033B4 800027B4 24A5F008 */ addiu $a1, %lo(D_8014F008) # addiu $a1, $a1, -0xff8
/* 0033B8 800027B8 02002025 */ move $a0, $s0
/* 0033BC 800027BC 0C033358 */ jal osCreateMesgQueue
/* 0033C0 800027C0 24060001 */ li $a2, 1
/* 0033C4 800027C4 0C000229 */ jal init_controllers
/* 0033C8 800027C8 00000000 */ nop
/* 0033CC 800027CC 3C0E8015 */ lui $t6, %hi(D_8015011C) # $t6, 0x8015
/* 0033D0 800027D0 95CE011C */ lhu $t6, %lo(D_8015011C)($t6)
/* 0033D4 800027D4 15C00003 */ bnez $t6, .L800027E4
/* 0033D8 800027D8 00000000 */ nop
/* 0033DC 800027DC 0C000C04 */ jal func_80003010
/* 0033E0 800027E0 00000000 */ nop
.L800027E4:
/* 0033E4 800027E4 3C058015 */ lui $a1, %hi(D_8014EF48) # $a1, 0x8015
/* 0033E8 800027E8 24A5EF48 */ addiu $a1, %lo(D_8014EF48) # addiu $a1, $a1, -0x10b8
/* 0033EC 800027EC 24040002 */ li $a0, 2
/* 0033F0 800027F0 02003025 */ move $a2, $s0
/* 0033F4 800027F4 0C000836 */ jal func_800020D8
/* 0033F8 800027F8 24070001 */ li $a3, 1
/* 0033FC 800027FC 3C02800E */ lui $v0, %hi(D_800DC600) # $v0, 0x800e
/* 003400 80002800 8C42C600 */ lw $v0, %lo(D_800DC600)($v0)
/* 003404 80002804 3C018016 */ lui $at, %hi(D_8015F8B8) # $at, 0x8016
/* 003408 80002808 AC22F8B8 */ sw $v0, %lo(D_8015F8B8)($at)
/* 00340C 8000280C 3C018016 */ lui $at, %hi(D_8015F8BC) # $at, 0x8016
/* 003410 80002810 244F0002 */ addiu $t7, $v0, 2
/* 003414 80002814 AC2FF8BC */ sw $t7, %lo(D_8015F8BC)($at)
/* 003418 80002818 3C018016 */ lui $at, %hi(D_8015F8C0) # $at, 0x8016
/* 00341C 8000281C 2458000B */ addiu $t8, $v0, 0xb
/* 003420 80002820 AC38F8C0 */ sw $t8, %lo(D_8015F8C0)($at)
/* 003424 80002824 3C018016 */ lui $at, %hi(D_8015F8C4) # $at, 0x8016
/* 003428 80002828 24590017 */ addiu $t9, $v0, 0x17
/* 00342C 8000282C AC39F8C4 */ sw $t9, %lo(D_8015F8C4)($at)
/* 003430 80002830 3C018016 */ lui $at, %hi(D_8015F8C8) # $at, 0x8016
/* 003434 80002834 24480019 */ addiu $t0, $v0, 0x19
/* 003438 80002838 AC28F8C8 */ sw $t0, %lo(D_8015F8C8)($at)
/* 00343C 8000283C 3C018016 */ lui $at, %hi(D_8015F8CC) # $at, 0x8016
/* 003440 80002840 2449001C */ addiu $t1, $v0, 0x1c
/* 003444 80002844 0C000380 */ jal func_80000E00
/* 003448 80002848 AC29F8CC */ sw $t1, %lo(D_8015F8CC)($at)
/* 00344C 8000284C 0C00028A */ jal read_controllers
/* 003450 80002850 00000000 */ nop
/* 003454 80002854 0C03172E */ jal func_800C5CB8
/* 003458 80002858 00000000 */ nop
/* 00345C 8000285C 3C11800E */ lui $s1, %hi(D_800DC524) # $s1, 0x800e
/* 003460 80002860 3C10800E */ lui $s0, %hi(D_800DC50C) # $s0, 0x800e
/* 003464 80002864 2610C50C */ addiu $s0, %lo(D_800DC50C) # addiu $s0, $s0, -0x3af4
/* 003468 80002868 2631C524 */ addiu $s1, %lo(D_800DC524) # addiu $s1, $s1, -0x3adc
.L8000286C:
/* 00346C 8000286C 0C032CB1 */ jal func_800CB2C4
/* 003470 80002870 00000000 */ nop
/* 003474 80002874 8E220000 */ lw $v0, ($s1)
/* 003478 80002878 8E0A0000 */ lw $t2, ($s0)
/* 00347C 8000287C 11420003 */ beq $t2, $v0, .L8000288C
/* 003480 80002880 00000000 */ nop
/* 003484 80002884 0C0009A1 */ jal func_80002684
/* 003488 80002888 AE020000 */ sw $v0, ($s0)
.L8000288C:
/* 00348C 8000288C 0C000D54 */ jal profiler_log_thread5_time
/* 003490 80002890 00002025 */ move $a0, $zero
/* 003494 80002894 0C0003AD */ jal func_80000EB4
/* 003498 80002898 00000000 */ nop
/* 00349C 8000289C 0C00028A */ jal read_controllers
/* 0034A0 800028A0 00000000 */ nop
/* 0034A4 800028A4 0C0007B3 */ jal func_80001ECC
/* 0034A8 800028A8 00000000 */ nop
/* 0034AC 800028AC 0C00033A */ jal func_80000CE8
/* 0034B0 800028B0 00000000 */ nop
/* 0034B4 800028B4 0C0003CD */ jal func_80000F34
/* 0034B8 800028B8 00000000 */ nop
/* 0034BC 800028BC 1000FFEB */ b .L8000286C
/* 0034C0 800028C0 00000000 */ nop
/* 0034C4 800028C4 00000000 */ nop
/* 0034C8 800028C8 00000000 */ nop
/* 0034CC 800028CC 00000000 */ nop
/* 0034D0 800028D0 8FBF001C */ lw $ra, 0x1c($sp)
/* 0034D4 800028D4 8FB00014 */ lw $s0, 0x14($sp)
/* 0034D8 800028D8 8FB10018 */ lw $s1, 0x18($sp)
/* 0034DC 800028DC 03E00008 */ jr $ra
/* 0034E0 800028E0 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -0,0 +1,38 @@
glabel profiler_log_gfx_time
/* 00425C 8000365C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 004260 80003660 1480000F */ bnez $a0, .L800036A0
/* 004264 80003664 AFBF0014 */ sw $ra, 0x14($sp)
/* 004268 80003668 3C02800E */ lui $v0, %hi(D_800DC66C) # $v0, 0x800e
/* 00426C 8000366C 2442C66C */ addiu $v0, %lo(D_800DC66C) # addiu $v0, $v0, -0x3994
/* 004270 80003670 844E0000 */ lh $t6, ($v0)
/* 004274 80003674 3C018016 */ lui $at, 0x8016
/* 004278 80003678 39CF0001 */ xori $t7, $t6, 1
/* 00427C 8000367C A44F0000 */ sh $t7, ($v0)
/* 004280 80003680 84580000 */ lh $t8, ($v0)
/* 004284 80003684 0018C880 */ sll $t9, $t8, 2
/* 004288 80003688 0338C823 */ subu $t9, $t9, $t8
/* 00428C 8000368C 0019C8C0 */ sll $t9, $t9, 3
/* 004290 80003690 0338C821 */ addu $t9, $t9, $t8
/* 004294 80003694 0019C8C0 */ sll $t9, $t9, 3
/* 004298 80003698 00390821 */ addu $at, $at, $t9
/* 00429C 8000369C A4202602 */ sh $zero, 0x2602($at)
.L800036A0:
/* 0042A0 800036A0 0C033778 */ jal osGetTime
/* 0042A4 800036A4 AFA40018 */ sw $a0, 0x18($sp)
/* 0042A8 800036A8 3C08800E */ lui $t0, %hi(D_800DC66C) # $t0, 0x800e
/* 0042AC 800036AC 8508C66C */ lh $t0, %lo(D_800DC66C)($t0)
/* 0042B0 800036B0 8FA40018 */ lw $a0, 0x18($sp)
/* 0042B4 800036B4 8FBF0014 */ lw $ra, 0x14($sp)
/* 0042B8 800036B8 00084880 */ sll $t1, $t0, 2
/* 0042BC 800036BC 01284823 */ subu $t1, $t1, $t0
/* 0042C0 800036C0 000948C0 */ sll $t1, $t1, 3
/* 0042C4 800036C4 01284821 */ addu $t1, $t1, $t0
/* 0042C8 800036C8 000948C0 */ sll $t1, $t1, 3
/* 0042CC 800036CC 000450C0 */ sll $t2, $a0, 3
/* 0042D0 800036D0 012A5821 */ addu $t3, $t1, $t2
/* 0042D4 800036D4 3C018016 */ lui $at, 0x8016
/* 0042D8 800036D8 002B0821 */ addu $at, $at, $t3
/* 0042DC 800036DC AC222630 */ sw $v0, 0x2630($at)
/* 0042E0 800036E0 AC232634 */ sw $v1, 0x2634($at)
/* 0042E4 800036E4 03E00008 */ jr $ra
/* 0042E8 800036E8 27BD0018 */ addiu $sp, $sp, 0x18

25
asm/rom_header.s Normal file
View File

@ -0,0 +1,25 @@
/*
* Mario Kart 64 ROM header
* Only the first 0x18 bytes matter to the console.
*/
.byte 0x80, 0x37, 0x12, 0x40 /* PI BSD Domain 1 register */
.word 0x0000000F /* Clockrate setting*/
.word entry_point /* Entrypoint */
/* Revision */
.word 0x00001446 /* NTSC-U */
.word 0x3E5055B6 /* Checksum 1 */
.word 0x2E92DA52 /* Checksum 2 */
.word 0x00000000 /* Unknown */
.word 0x00000000 /* Unknown */
.ascii "MARIOKART64 " /* Internal ROM name */
.word 0x00000000 /* Unknown */
.word 0x0000004E /* Cartridge */
.ascii "KT" /* Cartridge ID */
/* Region */
.ascii "E" /* NTSC-U */
.byte 0x00 /* Version */

13581
assets.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
.include "macros.inc"
.data
.align 2, 0x00
.incbin "bin/common_textures.mio0"

View File

@ -0,0 +1,852 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
.include "macros.inc"
.data
# segment 0x0A000000 (0x729A30 - 0x7E684F)
.align 2, 0x00
glabel gTextureMarioFace00
.incbin "textures/standalone/mario_face_00.rgba16.mio0"
glabel gTextureMarioFace00_end
.align 2, 0x00
glabel gTextureMarioFace01
.incbin "textures/standalone/mario_face_01.rgba16.mio0"
glabel gTextureMarioFace01_end
.align 2, 0x00
glabel gTextureMarioFace02
.incbin "textures/standalone/mario_face_02.rgba16.mio0"
glabel gTextureMarioFace02_end
.align 2, 0x00
glabel gTextureMarioFace03
.incbin "textures/standalone/mario_face_03.rgba16.mio0"
glabel gTextureMarioFace03_end
.align 2, 0x00
glabel gTextureMarioFace04
.incbin "textures/standalone/mario_face_04.rgba16.mio0"
glabel gTextureMarioFace04_end
.align 2, 0x00
glabel gTextureMarioFace05
.incbin "textures/standalone/mario_face_05.rgba16.mio0"
glabel gTextureMarioFace05_end
.align 2, 0x00
glabel gTextureMarioFace06
.incbin "textures/standalone/mario_face_06.rgba16.mio0"
glabel gTextureMarioFace06_end
.align 2, 0x00
glabel gTextureMarioFace07
.incbin "textures/standalone/mario_face_07.rgba16.mio0"
glabel gTextureMarioFace07_end
.align 2, 0x00
glabel gTextureMarioFace08
.incbin "textures/standalone/mario_face_08.rgba16.mio0"
glabel gTextureMarioFace08_end
.align 2, 0x00
glabel gTextureMarioFace09
.incbin "textures/standalone/mario_face_09.rgba16.mio0"
glabel gTextureMarioFace09_end
.align 2, 0x00
glabel gTextureMarioFace10
.incbin "textures/standalone/mario_face_10.rgba16.mio0"
glabel gTextureMarioFace10_end
.align 2, 0x00
glabel gTextureMarioFace11
.incbin "textures/standalone/mario_face_11.rgba16.mio0"
glabel gTextureMarioFace11_end
.align 2, 0x00
glabel gTextureMarioFace12
.incbin "textures/standalone/mario_face_12.rgba16.mio0"
glabel gTextureMarioFace12_end
.align 2, 0x00
glabel gTextureMarioFace13
.incbin "textures/standalone/mario_face_13.rgba16.mio0"
glabel gTextureMarioFace13_end
.align 2, 0x00
glabel gTextureMarioFace14
.incbin "textures/standalone/mario_face_14.rgba16.mio0"
glabel gTextureMarioFace14_end
.align 2, 0x00
glabel gTextureMarioFace15
.incbin "textures/standalone/mario_face_15.rgba16.mio0"
glabel gTextureMarioFace15_end
.align 2, 0x00
glabel gTextureMarioFace16
.incbin "textures/standalone/mario_face_16.rgba16.mio0"
glabel gTextureMarioFace16_end
.align 2, 0x00
glabel gTextureLuigiFace00
.incbin "textures/standalone/luigi_face_00.rgba16.mio0"
glabel gTextureLuigiFace00_end
.align 2, 0x00
glabel gTextureLuigiFace01
.incbin "textures/standalone/luigi_face_01.rgba16.mio0"
glabel gTextureLuigiFace01_end
.align 2, 0x00
glabel gTextureLuigiFace02
.incbin "textures/standalone/luigi_face_02.rgba16.mio0"
glabel gTextureLuigiFace02_end
.align 2, 0x00
glabel gTextureLuigiFace03
.incbin "textures/standalone/luigi_face_03.rgba16.mio0"
glabel gTextureLuigiFace03_end
.align 2, 0x00
glabel gTextureLuigiFace04
.incbin "textures/standalone/luigi_face_04.rgba16.mio0"
glabel gTextureLuigiFace04_end
.align 2, 0x00
glabel gTextureLuigiFace05
.incbin "textures/standalone/luigi_face_05.rgba16.mio0"
glabel gTextureLuigiFace05_end
.align 2, 0x00
glabel gTextureLuigiFace06
.incbin "textures/standalone/luigi_face_06.rgba16.mio0"
glabel gTextureLuigiFace06_end
.align 2, 0x00
glabel gTextureLuigiFace07
.incbin "textures/standalone/luigi_face_07.rgba16.mio0"
glabel gTextureLuigiFace07_end
.align 2, 0x00
glabel gTextureLuigiFace08
.incbin "textures/standalone/luigi_face_08.rgba16.mio0"
glabel gTextureLuigiFace08_end
.align 2, 0x00
glabel gTextureLuigiFace09
.incbin "textures/standalone/luigi_face_09.rgba16.mio0"
glabel gTextureLuigiFace09_end
.align 2, 0x00
glabel gTextureLuigiFace10
.incbin "textures/standalone/luigi_face_10.rgba16.mio0"
glabel gTextureLuigiFace10_end
.align 2, 0x00
glabel gTextureLuigiFace11
.incbin "textures/standalone/luigi_face_11.rgba16.mio0"
glabel gTextureLuigiFace11_end
.align 2, 0x00
glabel gTextureLuigiFace12
.incbin "textures/standalone/luigi_face_12.rgba16.mio0"
glabel gTextureLuigiFace12_end
.align 2, 0x00
glabel gTextureLuigiFace13
.incbin "textures/standalone/luigi_face_13.rgba16.mio0"
glabel gTextureLuigiFace13_end
.align 2, 0x00
glabel gTextureLuigiFace14
.incbin "textures/standalone/luigi_face_14.rgba16.mio0"
glabel gTextureLuigiFace14_end
.align 2, 0x00
glabel gTextureLuigiFace15
.incbin "textures/standalone/luigi_face_15.rgba16.mio0"
glabel gTextureLuigiFace15_end
.align 2, 0x00
glabel gTextureLuigiFace16
.incbin "textures/standalone/luigi_face_16.rgba16.mio0"
glabel gTextureLuigiFace16_end
.align 2, 0x00
glabel gTexturePeachFace00
.incbin "textures/standalone/peach_face_00.rgba16.mio0"
glabel gTexturePeachFace00_end
.align 2, 0x00
glabel gTexturePeachFace01
.incbin "textures/standalone/peach_face_01.rgba16.mio0"
glabel gTexturePeachFace01_end
.align 2, 0x00
glabel gTexturePeachFace02
.incbin "textures/standalone/peach_face_02.rgba16.mio0"
glabel gTexturePeachFace02_end
.align 2, 0x00
glabel gTexturePeachFace03
.incbin "textures/standalone/peach_face_03.rgba16.mio0"
glabel gTexturePeachFace03_end
.align 2, 0x00
glabel gTexturePeachFace04
.incbin "textures/standalone/peach_face_04.rgba16.mio0"
glabel gTexturePeachFace04_end
.align 2, 0x00
glabel gTexturePeachFace05
.incbin "textures/standalone/peach_face_05.rgba16.mio0"
glabel gTexturePeachFace05_end
.align 2, 0x00
glabel gTexturePeachFace06
.incbin "textures/standalone/peach_face_06.rgba16.mio0"
glabel gTexturePeachFace06_end
.align 2, 0x00
glabel gTexturePeachFace07
.incbin "textures/standalone/peach_face_07.rgba16.mio0"
glabel gTexturePeachFace07_end
.align 2, 0x00
glabel gTexturePeachFace08
.incbin "textures/standalone/peach_face_08.rgba16.mio0"
glabel gTexturePeachFace08_end
.align 2, 0x00
glabel gTexturePeachFace09
.incbin "textures/standalone/peach_face_09.rgba16.mio0"
glabel gTexturePeachFace09_end
.align 2, 0x00
glabel gTexturePeachFace10
.incbin "textures/standalone/peach_face_10.rgba16.mio0"
glabel gTexturePeachFace10_end
.align 2, 0x00
glabel gTexturePeachFace11
.incbin "textures/standalone/peach_face_11.rgba16.mio0"
glabel gTexturePeachFace11_end
.align 2, 0x00
glabel gTexturePeachFace12
.incbin "textures/standalone/peach_face_12.rgba16.mio0"
glabel gTexturePeachFace12_end
.align 2, 0x00
glabel gTexturePeachFace13
.incbin "textures/standalone/peach_face_13.rgba16.mio0"
glabel gTexturePeachFace13_end
.align 2, 0x00
glabel gTexturePeachFace14
.incbin "textures/standalone/peach_face_14.rgba16.mio0"
glabel gTexturePeachFace14_end
.align 2, 0x00
glabel gTexturePeachFace15
.incbin "textures/standalone/peach_face_15.rgba16.mio0"
glabel gTexturePeachFace15_end
.align 2, 0x00
glabel gTexturePeachFace16
.incbin "textures/standalone/peach_face_16.rgba16.mio0"
glabel gTexturePeachFace16_end
.align 2, 0x00
glabel gTextureToadFace00
.incbin "textures/standalone/toad_face_00.rgba16.mio0"
glabel gTextureToadFace00_end
.align 2, 0x00
glabel gTextureToadFace01
.incbin "textures/standalone/toad_face_01.rgba16.mio0"
glabel gTextureToadFace01_end
.align 2, 0x00
glabel gTextureToadFace02
.incbin "textures/standalone/toad_face_02.rgba16.mio0"
glabel gTextureToadFace02_end
.align 2, 0x00
glabel gTextureToadFace03
.incbin "textures/standalone/toad_face_03.rgba16.mio0"
glabel gTextureToadFace03_end
.align 2, 0x00
glabel gTextureToadFace04
.incbin "textures/standalone/toad_face_04.rgba16.mio0"
glabel gTextureToadFace04_end
.align 2, 0x00
glabel gTextureToadFace05
.incbin "textures/standalone/toad_face_05.rgba16.mio0"
glabel gTextureToadFace05_end
.align 2, 0x00
glabel gTextureToadFace06
.incbin "textures/standalone/toad_face_06.rgba16.mio0"
glabel gTextureToadFace06_end
.align 2, 0x00
glabel gTextureToadFace07
.incbin "textures/standalone/toad_face_07.rgba16.mio0"
glabel gTextureToadFace07_end
.align 2, 0x00
glabel gTextureToadFace08
.incbin "textures/standalone/toad_face_08.rgba16.mio0"
glabel gTextureToadFace08_end
.align 2, 0x00
glabel gTextureToadFace09
.incbin "textures/standalone/toad_face_09.rgba16.mio0"
glabel gTextureToadFace09_end
.align 2, 0x00
glabel gTextureToadFace10
.incbin "textures/standalone/toad_face_10.rgba16.mio0"
glabel gTextureToadFace10_end
.align 2, 0x00
glabel gTextureToadFace11
.incbin "textures/standalone/toad_face_11.rgba16.mio0"
glabel gTextureToadFace11_end
.align 2, 0x00
glabel gTextureToadFace12
.incbin "textures/standalone/toad_face_12.rgba16.mio0"
glabel gTextureToadFace12_end
.align 2, 0x00
glabel gTextureToadFace13
.incbin "textures/standalone/toad_face_13.rgba16.mio0"
glabel gTextureToadFace13_end
.align 2, 0x00
glabel gTextureToadFace14
.incbin "textures/standalone/toad_face_14.rgba16.mio0"
glabel gTextureToadFace14_end
.align 2, 0x00
glabel gTextureToadFace15
.incbin "textures/standalone/toad_face_15.rgba16.mio0"
glabel gTextureToadFace15_end
.align 2, 0x00
glabel gTextureToadFace16
.incbin "textures/standalone/toad_face_16.rgba16.mio0"
glabel gTextureToadFace16_end
.align 2, 0x00
glabel gTextureYoshiFace00
.incbin "textures/standalone/yoshi_face_00.rgba16.mio0"
glabel gTextureYoshiFace00_end
.align 2, 0x00
glabel gTextureYoshiFace01
.incbin "textures/standalone/yoshi_face_01.rgba16.mio0"
glabel gTextureYoshiFace01_end
.align 2, 0x00
glabel gTextureYoshiFace02
.incbin "textures/standalone/yoshi_face_02.rgba16.mio0"
glabel gTextureYoshiFace02_end
.align 2, 0x00
glabel gTextureYoshiFace03
.incbin "textures/standalone/yoshi_face_03.rgba16.mio0"
glabel gTextureYoshiFace03_end
.align 2, 0x00
glabel gTextureYoshiFace04
.incbin "textures/standalone/yoshi_face_04.rgba16.mio0"
glabel gTextureYoshiFace04_end
.align 2, 0x00
glabel gTextureYoshiFace05
.incbin "textures/standalone/yoshi_face_05.rgba16.mio0"
glabel gTextureYoshiFace05_end
.align 2, 0x00
glabel gTextureYoshiFace06
.incbin "textures/standalone/yoshi_face_06.rgba16.mio0"
glabel gTextureYoshiFace06_end
.align 2, 0x00
glabel gTextureYoshiFace07
.incbin "textures/standalone/yoshi_face_07.rgba16.mio0"
glabel gTextureYoshiFace07_end
.align 2, 0x00
glabel gTextureYoshiFace08
.incbin "textures/standalone/yoshi_face_08.rgba16.mio0"
glabel gTextureYoshiFace08_end
.align 2, 0x00
glabel gTextureYoshiFace09
.incbin "textures/standalone/yoshi_face_09.rgba16.mio0"
glabel gTextureYoshiFace09_end
.align 2, 0x00
glabel gTextureYoshiFace10
.incbin "textures/standalone/yoshi_face_10.rgba16.mio0"
glabel gTextureYoshiFace10_end
.align 2, 0x00
glabel gTextureYoshiFace11
.incbin "textures/standalone/yoshi_face_11.rgba16.mio0"
glabel gTextureYoshiFace11_end
.align 2, 0x00
glabel gTextureYoshiFace12
.incbin "textures/standalone/yoshi_face_12.rgba16.mio0"
glabel gTextureYoshiFace12_end
.align 2, 0x00
glabel gTextureYoshiFace13
.incbin "textures/standalone/yoshi_face_13.rgba16.mio0"
glabel gTextureYoshiFace13_end
.align 2, 0x00
glabel gTextureYoshiFace14
.incbin "textures/standalone/yoshi_face_14.rgba16.mio0"
glabel gTextureYoshiFace14_end
.align 2, 0x00
glabel gTextureYoshiFace15
.incbin "textures/standalone/yoshi_face_15.rgba16.mio0"
glabel gTextureYoshiFace15_end
.align 2, 0x00
glabel gTextureYoshiFace16
.incbin "textures/standalone/yoshi_face_16.rgba16.mio0"
glabel gTextureYoshiFace16_end
.align 2, 0x00
glabel gTextureDkFace00
.incbin "textures/standalone/dk_face_00.rgba16.mio0"
glabel gTextureDkFace00_end
.align 2, 0x00
glabel gTextureDkFace01
.incbin "textures/standalone/dk_face_01.rgba16.mio0"
glabel gTextureDkFace01_end
.align 2, 0x00
glabel gTextureDkFace02
.incbin "textures/standalone/dk_face_02.rgba16.mio0"
glabel gTextureDkFace02_end
.align 2, 0x00
glabel gTextureDkFace03
.incbin "textures/standalone/dk_face_03.rgba16.mio0"
glabel gTextureDkFace03_end
.align 2, 0x00
glabel gTextureDkFace04
.incbin "textures/standalone/dk_face_04.rgba16.mio0"
glabel gTextureDkFace04_end
.align 2, 0x00
glabel gTextureDkFace05
.incbin "textures/standalone/dk_face_05.rgba16.mio0"
glabel gTextureDkFace05_end
.align 2, 0x00
glabel gTextureDkFace06
.incbin "textures/standalone/dk_face_06.rgba16.mio0"
glabel gTextureDkFace06_end
.align 2, 0x00
glabel gTextureDkFace07
.incbin "textures/standalone/dk_face_07.rgba16.mio0"
glabel gTextureDkFace07_end
.align 2, 0x00
glabel gTextureDkFace08
.incbin "textures/standalone/dk_face_08.rgba16.mio0"
glabel gTextureDkFace08_end
.align 2, 0x00
glabel gTextureDkFace09
.incbin "textures/standalone/dk_face_09.rgba16.mio0"
glabel gTextureDkFace09_end
.align 2, 0x00
glabel gTextureDkFace10
.incbin "textures/standalone/dk_face_10.rgba16.mio0"
glabel gTextureDkFace10_end
.align 2, 0x00
glabel gTextureDkFace11
.incbin "textures/standalone/dk_face_11.rgba16.mio0"
glabel gTextureDkFace11_end
.align 2, 0x00
glabel gTextureDkFace12
.incbin "textures/standalone/dk_face_12.rgba16.mio0"
glabel gTextureDkFace12_end
.align 2, 0x00
glabel gTextureDkFace13
.incbin "textures/standalone/dk_face_13.rgba16.mio0"
glabel gTextureDkFace13_end
.align 2, 0x00
glabel gTextureDkFace14
.incbin "textures/standalone/dk_face_14.rgba16.mio0"
glabel gTextureDkFace14_end
.align 2, 0x00
glabel gTextureDkFace15
.incbin "textures/standalone/dk_face_15.rgba16.mio0"
glabel gTextureDkFace15_end
.align 2, 0x00
glabel gTextureDkFace16
.incbin "textures/standalone/dk_face_16.rgba16.mio0"
glabel gTextureDkFace16_end
.align 2, 0x00
glabel gTextureWarioFace00
.incbin "textures/standalone/wario_face_00.rgba16.mio0"
glabel gTextureWarioFace00_end
.align 2, 0x00
glabel gTextureWarioFace01
.incbin "textures/standalone/wario_face_01.rgba16.mio0"
glabel gTextureWarioFace01_end
.align 2, 0x00
glabel gTextureWarioFace02
.incbin "textures/standalone/wario_face_02.rgba16.mio0"
glabel gTextureWarioFace02_end
.align 2, 0x00
glabel gTextureWarioFace03
.incbin "textures/standalone/wario_face_03.rgba16.mio0"
glabel gTextureWarioFace03_end
.align 2, 0x00
glabel gTextureWarioFace04
.incbin "textures/standalone/wario_face_04.rgba16.mio0"
glabel gTextureWarioFace04_end
.align 2, 0x00
glabel gTextureWarioFace05
.incbin "textures/standalone/wario_face_05.rgba16.mio0"
glabel gTextureWarioFace05_end
.align 2, 0x00
glabel gTextureWarioFace06
.incbin "textures/standalone/wario_face_06.rgba16.mio0"
glabel gTextureWarioFace06_end
.align 2, 0x00
glabel gTextureWarioFace07
.incbin "textures/standalone/wario_face_07.rgba16.mio0"
glabel gTextureWarioFace07_end
.align 2, 0x00
glabel gTextureWarioFace08
.incbin "textures/standalone/wario_face_08.rgba16.mio0"
glabel gTextureWarioFace08_end
.align 2, 0x00
glabel gTextureWarioFace09
.incbin "textures/standalone/wario_face_09.rgba16.mio0"
glabel gTextureWarioFace09_end
.align 2, 0x00
glabel gTextureWarioFace10
.incbin "textures/standalone/wario_face_10.rgba16.mio0"
glabel gTextureWarioFace10_end
.align 2, 0x00
glabel gTextureWarioFace11
.incbin "textures/standalone/wario_face_11.rgba16.mio0"
glabel gTextureWarioFace11_end
.align 2, 0x00
glabel gTextureWarioFace12
.incbin "textures/standalone/wario_face_12.rgba16.mio0"
glabel gTextureWarioFace12_end
.align 2, 0x00
glabel gTextureWarioFace13
.incbin "textures/standalone/wario_face_13.rgba16.mio0"
glabel gTextureWarioFace13_end
.align 2, 0x00
glabel gTextureWarioFace14
.incbin "textures/standalone/wario_face_14.rgba16.mio0"
glabel gTextureWarioFace14_end
.align 2, 0x00
glabel gTextureWarioFace15
.incbin "textures/standalone/wario_face_15.rgba16.mio0"
glabel gTextureWarioFace15_end
.align 2, 0x00
glabel gTextureWarioFace16
.incbin "textures/standalone/wario_face_16.rgba16.mio0"
glabel gTextureWarioFace16_end
.align 2, 0x00
glabel gTextureBowserFace00
.incbin "textures/standalone/bowser_face_00.rgba16.mio0"
glabel gTextureBowserFace00_end
.align 2, 0x00
glabel gTextureBowserFace01
.incbin "textures/standalone/bowser_face_01.rgba16.mio0"
glabel gTextureBowserFace01_end
.align 2, 0x00
glabel gTextureBowserFace02
.incbin "textures/standalone/bowser_face_02.rgba16.mio0"
glabel gTextureBowserFace02_end
.align 2, 0x00
glabel gTextureBowserFace03
.incbin "textures/standalone/bowser_face_03.rgba16.mio0"
glabel gTextureBowserFace03_end
.align 2, 0x00
glabel gTextureBowserFace04
.incbin "textures/standalone/bowser_face_04.rgba16.mio0"
glabel gTextureBowserFace04_end
.align 2, 0x00
glabel gTextureBowserFace05
.incbin "textures/standalone/bowser_face_05.rgba16.mio0"
glabel gTextureBowserFace05_end
.align 2, 0x00
glabel gTextureBowserFace06
.incbin "textures/standalone/bowser_face_06.rgba16.mio0"
glabel gTextureBowserFace06_end
.align 2, 0x00
glabel gTextureBowserFace07
.incbin "textures/standalone/bowser_face_07.rgba16.mio0"
glabel gTextureBowserFace07_end
.align 2, 0x00
glabel gTextureBowserFace08
.incbin "textures/standalone/bowser_face_08.rgba16.mio0"
glabel gTextureBowserFace08_end
.align 2, 0x00
glabel gTextureBowserFace09
.incbin "textures/standalone/bowser_face_09.rgba16.mio0"
glabel gTextureBowserFace09_end
.align 2, 0x00
glabel gTextureBowserFace10
.incbin "textures/standalone/bowser_face_10.rgba16.mio0"
glabel gTextureBowserFace10_end
.align 2, 0x00
glabel gTextureBowserFace11
.incbin "textures/standalone/bowser_face_11.rgba16.mio0"
glabel gTextureBowserFace11_end
.align 2, 0x00
glabel gTextureBowserFace12
.incbin "textures/standalone/bowser_face_12.rgba16.mio0"
glabel gTextureBowserFace12_end
.align 2, 0x00
glabel gTextureBowserFace13
.incbin "textures/standalone/bowser_face_13.rgba16.mio0"
glabel gTextureBowserFace13_end
.align 2, 0x00
glabel gTextureBowserFace14
.incbin "textures/standalone/bowser_face_14.rgba16.mio0"
glabel gTextureBowserFace14_end
.align 2, 0x00
glabel gTextureBowserFace15
.incbin "textures/standalone/bowser_face_15.rgba16.mio0"
glabel gTextureBowserFace15_end
.align 2, 0x00
glabel gTextureBowserFace16
.incbin "textures/standalone/bowser_face_16.rgba16.mio0"
glabel gTextureBowserFace16_end
.align 2, 0x00
glabel gCoursePreviewMarioRaceway
.incbin "textures/standalone/course_preview_mario_raceway.rgba16.mio0"
glabel gCoursePreviewMarioRaceway_end
.align 2, 0x00
glabel gCoursePreviewChocoMountain
.incbin "textures/standalone/course_preview_choco_mountain.rgba16.mio0"
glabel gCoursePreviewChocoMountain_end
.align 2, 0x00
glabel gCoursePreviewBowsersCastle
.incbin "textures/standalone/course_preview_bowsers_castle.rgba16.mio0"
glabel gCoursePreviewBowsersCastle_end
.align 2, 0x00
glabel gCoursePreviewBansheeBoardwalk
.incbin "textures/standalone/course_preview_banshee_boardwalk.rgba16.mio0"
glabel gCoursePreviewBansheeBoardwalk_end
.align 2, 0x00
glabel gCoursePreviewYoshiValley
.incbin "textures/standalone/course_preview_yoshi_valley.rgba16.mio0"
glabel gCoursePreviewYoshiValley_end
.align 2, 0x00
glabel gCoursePreviewFrappeSnowland
.incbin "textures/standalone/course_preview_frappe_snowland.rgba16.mio0"
glabel gCoursePreviewFrappeSnowland_end
.align 2, 0x00
glabel gCoursePreviewKoopaTroopaBeach
.incbin "textures/standalone/course_preview_koopa_troopa_beach.rgba16.mio0"
glabel gCoursePreviewKoopaTroopaBeach_end
.align 2, 0x00
glabel gCoursePreviewRoyalRaceway
.incbin "textures/standalone/course_preview_royal_raceway.rgba16.mio0"
glabel gCoursePreviewRoyalRaceway_end
.align 2, 0x00
glabel gCoursePreviewLuigiRaceway
.incbin "textures/standalone/course_preview_luigi_raceway.rgba16.mio0"
glabel gCoursePreviewLuigiRaceway_end
.align 2, 0x00
glabel gCoursePreviewMooMooFarm
.incbin "textures/standalone/course_preview_moo_moo_farm.rgba16.mio0"
glabel gCoursePreviewMooMooFarm_end
.align 2, 0x00
glabel gCoursePreviewToadsTurnpike
.incbin "textures/standalone/course_preview_toads_turnpike.rgba16.mio0"
glabel gCoursePreviewToadsTurnpike_end
.align 2, 0x00
glabel gCoursePreviewKalimariDesert
.incbin "textures/standalone/course_preview_kalimari_desert.rgba16.mio0"
glabel gCoursePreviewKalimariDesert_end
.align 2, 0x00
glabel gCoursePreviewSherbetLand
.incbin "textures/standalone/course_preview_sherbet_land.rgba16.mio0"
glabel gCoursePreviewSherbetLand_end
.align 2, 0x00
glabel gCoursePreviewRainbowRoad
.incbin "textures/standalone/course_preview_rainbow_road.rgba16.mio0"
glabel gCoursePreviewRainbowRoad_end
.align 2, 0x00
glabel gCoursePreviewWarioStadium
.incbin "textures/standalone/course_preview_wario_stadium.rgba16.mio0"
glabel gCoursePreviewWarioStadium_end
.align 2, 0x00
glabel gCoursePreviewBlockFort
.incbin "textures/standalone/course_preview_block_fort.rgba16.mio0"
glabel gCoursePreviewBlockFort_end
.align 2, 0x00
glabel gCoursePreviewSkyscraper
.incbin "textures/standalone/course_preview_skyscraper.rgba16.mio0"
glabel gCoursePreviewSkyscraper_end
.align 2, 0x00
glabel gCoursePreviewDoubleDeck
.incbin "textures/standalone/course_preview_double_deck.rgba16.mio0"
glabel gCoursePreviewDoubleDeck_end
.align 2, 0x00
glabel gCoursePreviewDksJungleParkway
.incbin "textures/standalone/course_preview_dks_jungle_parkway.rgba16.mio0"
glabel gCoursePreviewDksJungleParkway_end
.align 2, 0x00
glabel gCoursePreviewBigDonut
.incbin "textures/standalone/course_preview_big_donut.rgba16.mio0"
glabel gCoursePreviewBigDonut_end
.align 2, 0x00
glabel gTextureTrophyGold
.incbin "textures/standalone/trophy_gold.rgba16.mio0"
glabel gTextureTrophyGold_end
.align 2, 0x00
glabel gTextureTrophySilver
.incbin "textures/standalone/trophy_silver.rgba16.mio0"
glabel gTextureTrophySilver_end
.align 2, 0x00
glabel gTextureTrophyBronze
.incbin "textures/standalone/trophy_bronze.rgba16.mio0"
glabel gTextureTrophyBronze_end
.align 2, 0x00
glabel gTextureCupGold
.incbin "textures/standalone/cup_gold.rgba16.mio0"
glabel gTextureCupGold_end
.align 2, 0x00
glabel gTextureCupSilver
.incbin "textures/standalone/cup_silver.rgba16.mio0"
glabel gTextureCupSilver_end
.align 2, 0x00
glabel gTextureCupBronze
.incbin "textures/standalone/cup_bronze.rgba16.mio0"
glabel gTextureCupBronze_end
.align 2, 0x00
glabel gTexturePushStartButton
.incbin "textures/raw/push_start_button.rgba16"
.align 2, 0x00
glabel gTextureCopyright1996
.incbin "textures/raw/copyright_1996.rgba16"
.align 2, 0x00
glabel gTextureP1BorderBlue
.incbin "textures/raw/p1_border_blue.rgba16"
.align 2, 0x00
glabel gTextureP2BorderRed
.incbin "textures/raw/p2_border_red.rgba16"
.align 2, 0x00
glabel gTextureP3BorderOrange
.incbin "textures/raw/p3_border_orange.rgba16"
.align 2, 0x00
glabel gTextureP4BorderGreen
.incbin "textures/raw/p4_border_green.rgba16"
.align 2, 0x00
glabel gTextureSmallGreenTriangle
.incbin "textures/raw/small_green_triangle.rgba16"
.align 2, 0x00
glabel gTexture7E56E4
.incbin "textures/standalone/texture_7E56E4.ia16.mio0"
glabel gTexture7E56E4_end

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_banshee_boardwalk_vertex
.incbin "bin/course_banshee_boardwalk_vertex.mio0"
.balign 4
glabel d_course_banshee_boardwalk_packed
.incbin "bin/course_banshee_boardwalk_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_big_donut_vertex
.incbin "bin/course_big_donut_vertex.mio0"
.balign 4
glabel d_course_big_donut_packed
.incbin "bin/course_big_donut_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_block_fort_vertex
.incbin "bin/course_block_fort_vertex.mio0"
.balign 4
glabel d_course_block_fort_packed
.incbin "bin/course_block_fort_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_bowsers_castle_vertex
.incbin "bin/course_bowsers_castle_vertex.mio0"
.balign 4
glabel d_course_bowsers_castle_packed
.incbin "bin/course_bowsers_castle_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_choco_mountain_vertex
.incbin "bin/course_choco_mountain_vertex.mio0"
.balign 4
glabel d_course_choco_mountain_packed
.incbin "bin/course_choco_mountain_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_dks_jungle_parkway_vertex
.incbin "bin/course_dks_jungle_parkway_vertex.mio0"
.balign 4
glabel d_course_dks_jungle_parkway_packed
.incbin "bin/course_dks_jungle_parkway_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_double_deck_vertex
.incbin "bin/course_double_deck_vertex.mio0"
.balign 4
glabel d_course_double_deck_packed
.incbin "bin/course_double_deck_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_frappe_snowland_vertex
.incbin "bin/course_frappe_snowland_vertex.mio0"
.balign 4
glabel d_course_frappe_snowland_packed
.incbin "bin/course_frappe_snowland_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_kalimari_desert_vertex
.incbin "bin/course_kalimari_desert_vertex.mio0"
.balign 4
glabel d_course_kalimari_desert_packed
.incbin "bin/course_kalimari_desert_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_koopa_troopa_beach_vertex
.incbin "bin/course_koopa_troopa_beach_vertex.mio0"
.balign 4
glabel d_course_koopa_troopa_beach_packed
.incbin "bin/course_koopa_troopa_beach_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_luigi_raceway_vertex
.incbin "bin/course_luigi_raceway_vertex.mio0"
.balign 4
glabel d_course_luigi_raceway_packed
.incbin "bin/course_luigi_raceway_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_mario_raceway_vertex
.incbin "bin/course_mario_raceway_vertex.mio0"
.balign 4
glabel d_course_mario_raceway_packed
.incbin "bin/course_mario_raceway_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_moo_moo_farm_vertex
.incbin "bin/course_moo_moo_farm_vertex.mio0"
.balign 4
glabel d_course_moo_moo_farm_packed
.incbin "bin/course_moo_moo_farm_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_rainbow_road_vertex
.incbin "bin/course_rainbow_road_vertex.mio0"
.balign 4
glabel d_course_rainbow_road_packed
.incbin "bin/course_rainbow_road_packed.bin"

View File

@ -0,0 +1,11 @@
.include "macros.inc"
.section .data
.balign 4
glabel d_course_royal_raceway_vertex
.incbin "bin/course_royal_raceway_vertex.mio0"
.balign 4
glabel d_course_royal_raceway_packed
.incbin "bin/course_royal_raceway_packed.bin"

Some files were not shown because too many files have changed in this diff Show More