diff --git a/.gitignore b/.gitignore index e0f93177d..94f979227 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,23 @@ ../* + +# NEW Splat Things +asm/* +undefined_syms_auto.txt +undefined_funcs_auto.txt +kirby.ld +assets/boot.bin + **/**/*.bin build/* tools/GeoFromBin* tools/level_settings/convert tools/img_getprop tools/rgb2c +tools/armips_bin/* assets/*.bin assets/**/*.png assets/tools/__pycache__/* +tools/splat_ext/__pycache__/* f3dex2/F3DEX2_2.04H/* *.z64 textures/* diff --git a/.gitmodules b/.gitmodules index 64e9ec03b..dad048a3d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,6 +10,16 @@ [submodule "tools/rgb2c"] path = tools/modern_rgb2c url = https://github.com/someone2639/modern_rgb2c +[submodule "splat"] + path = splat + url = https://github.com/ethteck/splat/ [submodule "tools/armips"] path = tools/armips url = https://github.com/Kingcom/armips + +[submodule "tools/asm-processor"] + path = tools/asm-processor + url = https://github.com/simonlindholm/asm-processor +[submodule "asm-differ"] + path = asm-differ + url = https://github.com/simonlindholm/asm-differ diff --git a/Makefile b/Makefile index 77fe9f6e0..a44bb3346 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,17 @@ -# Makefile to rebuild Kirby 64 split image +# New Makefile ################ Target Executable and Sources ############### # BUILD_DIR is location where all build artifacts are placed -BUILD_DIR_BASE = build +BUILD_DIR = build VERSION = us -BUILD_DIR = $(BUILD_DIR_BASE)/$(VERSION) GRUCODE := F3DEX2_2.04H -LOCAL_ARMIPS=tools/armips/build/armips +LOCAL_ARMIPS=tools/armips_bin/armips VERBOSE := 1 -# 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 +GAME_ASSETS := $(BUILD_DIR)/assets/game_assets.o V := @ ifeq (VERBOSE, 1) @@ -26,26 +19,23 @@ ifeq (VERBOSE, 1) endif ##################### Compiler Options ####################### -# IRIX_ROOT := tools/ido5.3_compiler IRIX_ROOT := tools/ido7.1 -# CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc CC := tools/ido-7.1recomp/cc -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 ifeq ($(shell type mips-n64-ld >/dev/null 2>/dev/null; echo $$?), 0) - CROSS := mips-n64- +ifeq ($(shell type mips-linux-gnu-cpp >/dev/null 2>/dev/null; echo $$?), 0) + CROSS := mips-linux-gnu- +else ifeq ($(shell type mips64-linux-gnu-cpp >/dev/null 2>/dev/null; echo $$?), 0) + CROSS := mips64-linux-gnu- +else ifeq ($(shell type mips-n64-cpp >/dev/null 2>/dev/null; echo $$?), 0) + CROSS := mips-n64- else - CROSS := mips64-elf- + CROSS := mips64-elf- endif GCC := $(CROSS)gcc AS = $(CROSS)as -# CC = $(CROSS)gcc CPP := $(CROSS)cpp -P -Wno-trigraphs LD = $(CROSS)ld OBJDUMP = $(CROSS)objdump @@ -54,14 +44,15 @@ PYTHON := python3 TEXTURES_DIR := textures -# UNNAMED_SYMS := -T unnamed_syms.txt - -INCLUDE_FLAGS := -I$(BUILD_DIR) +INCLUDE_FLAGS := -I$(BUILD_DIR) -Iinclude ASFLAGS = -mtune=vr4300 -march=vr4300 --no-pad-sections -mabi=32 -mips3 $(INCLUDE_FLAGS) -# CFLAGS = -Wall -O2 -mtune=vr4300 -march=vr4300 -G 0 -c -Wab,-r4300_mul LDFLAGS = --no-check-sections -mips3 --accept-unknown-input-arch \ - -T $(BUILD_DIR)/$(LD_SCRIPT) -T libultra_unused.txt $(UNNAMED_SYMS) -T undefined_syms.txt -T rcp_syms.txt \ - -Map $(BUILD_DIR)/$(TARGET).map + -T libultra_unused.txt $(UNNAMED_SYMS) -T rcp_syms.txt \ + -Map $(BUILD_DIR)/$(TARGET).map \ + -T funcstodo.txt \ + -T datatodo.txt \ + -T ramvals.txt \ + -T $(BUILD_DIR)/$(LD_SCRIPT) PRELIM_OBJCOPY_FLAGS = --pad-to=0x101000 --gap-fill=0x00 OBJCOPY_FLAGS = --pad-to=0x2000000 --gap-fill=0xFF @@ -71,11 +62,6 @@ OBJCOPY_FLAGS = --pad-to=0x2000000 --gap-fill=0xFF TOOLS_DIR = tools N64CRC = tools/n64crc N64GRAPHICS = $(TOOLS_DIR)/n64graphics -EMULATOR = ~/Downloads/mupen64plus/mupen64plus-gui -EMU_FLAGS = # --noosd --gfx mupen64plus-video-glide64mk2 -LOADER = loader64 -LOADER_FLAGS = -vwf -FixPath = $(subst /,/,$1) ASSET_DIRS := $(wildcard assets/geo/bank_0/**) \ $(wildcard assets/geo/bank_1/**) \ @@ -83,10 +69,9 @@ ASSET_DIRS := $(wildcard assets/geo/bank_0/**) \ $(wildcard assets/geo/bank_7/**) \ $(wildcard assets/geo/bank_3/**) -ASM_DIRS := asm data $(wildcard asm/ovl*) asm/ovl0/lib \ - asm/data asm/banks $(wildcard data/ovl*) +ASM_DIRS := asm asm/data asm/data/main $(wildcard asm/data/ovl*) asm/main $(wildcard asm/*) -SRC_DIRS := src $(wildcard src/ovl*) data $(wildcard data/ovl*) +SRC_DIRS := src src/main src/os $(wildcard src/ovl*) BIN_DIRS := bin/geo bin/image bin/misc bin/anim @@ -102,13 +87,13 @@ TEXTURES_DIR = textures MIPSISET := -mips2 -32 -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)) S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) -# S_FILES += $(LEVEL_S_FILES) C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) +GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(C_FILES) +GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o)) + MODEL_FILES := $(foreach dir,$(ASSET_DIRS),$(wildcard $(dir)/geo.bin)) MODEL_C_FILES := $(foreach file,$(MODEL_FILES),$(file:.bin=.c)) @@ -125,9 +110,15 @@ UCODE_DATA_O_FILES := $(addprefix $(BUILD_DIR)/,$(UCODE_DATA_FILES:.data=.data.o BUILD_ASM_DIRS := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/**/)) +SOUND_BINS := $(wildcard assets/sound/*.bin) +MISC_SPLAT_BINS := $(wildcard assets/*.bin) # Object files O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ - $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) + $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \ + $(BUILD_DIR)/assets/boot.o \ + $(foreach file,$(SOUND_BINS),$(BUILD_DIR)/$(file:.bin=.o)) \ + $(foreach file,$(MISC_SPLAT_BINS),$(BUILD_DIR)/$(file:.bin=.o)) + ASSET_O_FILES := $(foreach file,$(MODEL_C_FILES),$(BUILD_DIR)/$(file:.c=.o)) @@ -138,12 +129,13 @@ ACTOR_FILES := $(foreach file,$(DATA_FILES),$(BUILD_DIR)/$(file:.c=.o)) # FLAGS OPT_FLAGS := -O2 -INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I $(BUILD_DIR)/assets -I src -I . +DEFS := -D_LANGUAGE_C -D_FINALROM +INCLUDE_CFLAGS := -I include -Ilibreultra/include/2.0I -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I $(BUILD_DIR)/assets -I src -Isrc.old -I . TARGET_CFLAGS := -nostdinc -I include/libc -DTARGET_N64 -DF3DEX_GBI_2 -CFLAGS = -Wab,-r4300_mul -non_shared -G0 -Xcpluscomm -Xfullwarn -signed $(OPT_FLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) $(MIPSISET) -GCC_CFLAGS = -Wall $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -march=vr4300 -mtune=vr4300 -mfix4300 -mabi=32 -mno-shared -G 0 -fno-PIC -mno-abicalls -fno-zero-initialized-in-bss -fno-toplevel-reorder -Wno-missing-braces +CFLAGS = -Wab,-r4300_mul -non_shared -G0 -Xcpluscomm -Xfullwarn -signed $(DEFS) $(OPT_FLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) $(MIPSISET) +GCC_CFLAGS = -Wall $(DEFS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -march=vr4300 -mtune=vr4300 -mfix4300 -mabi=32 -mno-shared -G 0 -fno-PIC -mno-abicalls -fno-zero-initialized-in-bss -fno-toplevel-reorder -Wno-missing-braces -CC_CHECK := gcc -fsyntax-only -fsigned-char -m32 $(CC_CFLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -std=gnu90 -Wall -Wextra -Wno-format-security -Wno-main -DNON_MATCHING -DAVOID_UB $(VERSION_CFLAGS) $(GRUCODE_CFLAGS) +CC_CHECK := gcc -fsyntax-only -fsigned-char -m32 $(DEFS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -std=gnu90 -Wall -Wextra -Wno-format-security -Wno-main -DNON_MATCHING -DAVOID_UB $(VERSION_CFLAGS) $(GRUCODE_CFLAGS) CC_TEST := gcc -Wall @@ -153,7 +145,7 @@ CC_TEST := gcc -Wall NOEXTRACT ?= 0 -ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(LEVEL_DIRS) $(ASSET_DIRS) $(SRC_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone $(UCODE_DIRS)) +ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/, assets/sound $(LEVEL_DIRS) $(ASSET_DIRS) $(SRC_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone $(UCODE_DIRS)) DUMMY != mkdir -p $(ALL_DIRS) # Checking if submodules exist @@ -169,22 +161,14 @@ endif # hardcoded compiler for ml.c until i figure out why it's breaking recomp -$(BUILD_DIR)/src/ovl0/memory_layer.o: CC = $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc +# $(BUILD_DIR)/src/ovl0/memory_layer.o: CC = $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc default: all TARGET = kirby.us -LD_SCRIPT = $(TARGET).ld -# TEXTURE_DIR = textures -# RAW_TEXTURE_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(wildcard $(TEXTURES_DIR)/raw/*.png))) +LD_SCRIPT = kirby.ld -$(BUILD_DIR)/data/kirby.066630.o: $(BUILD_DIR)/assets/assets.marker - -libreultra/build/2.0I/libultra_rom.a: - $(MAKE) -C libreultra -j4 - -libreultra/build/2.0I/libn_audio.a: - $(MAKE) -C libreultra naudio -j4 +$(BUILD_DIR)/data/kirby.066630.o: $(GAME_ASSETS) all: $(BUILD_DIR)/$(TARGET).z64 @sha1sum -c $(TARGET).sha1 @@ -209,58 +193,43 @@ softclean: rm -rf build/us/src/ rm -rf build/us/asm/ -# $(BUILD_DIR)/src/ovl0/ovl0_8.o: OPT_FLAGS += -framepointer $(BUILD_DIR)/src/ovl7/yakulib.o: OPT_FLAGS = -O2 -Olimit 1000 $(BUILD_DIR)/src/ovl1/ovl1_5.o: OPT_FLAGS = -O2 $(BUILD_DIR)/src/ovl3/ovl3_1.o: OPT_FLAGS = -O2 -Wo,-loopunroll -# $(BUILD_DIR)/src/ovl7/yakulib.o: CC = $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc - -# $(BUILD_DIR)/src/ovl1/save_file.o: OPT_FLAGS += -Wo,-loopunroll,0 - - -$(BUILD_DIR): - mkdir $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS)) -# assets/misc/%.s: assets/misc/%.bin -# python3 tools/level_settings/helper.py $< - -$(BUILD_DIR)/libultra.a: libreultra/build/2.0I/libultra_rom.a - cp $< $@ +$(BUILD_DIR)/libultra_rom.a: + $(MAKE) -C libreultra BUILD_DIR=../$(BUILD_DIR) VERSION= $(TOOLS_DIR)/patch_libultra_math $@ -$(BUILD_DIR)/libn_audio.a: libreultra/build/2.0I/libn_audio.a - cp $< $@ +$(BUILD_DIR)/libn_audio.a: + $(MAKE) -C libreultra naudio BUILD_DIR=../$(BUILD_DIR) VERSION= $(TOOLS_DIR)/patch_libultra_math $@ -$(BUILD_DIR)/$(UCODE_BASE_DIR)/$(GRUCODE)/$(GRUCODE).%.o: f3dex2/$(GRUCODE)/$(GRUCODE).% +$(BUILD_DIR)/$(UCODE_BASE_DIR)/$(GRUCODE)/$(GRUCODE).%.o: $(BUILD_DIR)/$(GRUCODE)/$(GRUCODE).% $(OBJCOPY) -I binary -O elf32-big $< $@ +$(BUILD_DIR)/%.o: %.bin + @printf " [BIN] $<\n" + $(V)$(LD) -r -b binary -o $@ $< + $(BUILD_DIR)/%.o: %.s - $(CPP) $(GCC_CFLAGS) -o $(@:.o=.i) $< - $(AS) $(ASFLAGS) -o $@ $(@:.o=.i) + @printf " [ASM] $<\n" + $(V)$(CPP) $(GCC_CFLAGS) -o $(@:.o=.i) $< + $(V)$(AS) $(ASFLAGS) -o $@ $(@:.o=.i) $(BUILD_DIR)/%.o: %.c - @$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $< - $(CC) -c $(CFLAGS) -o $@ $< + @printf " [CC] $<\n" + $(V)$(CC_CHECK) -Wno-unknown-pragmas -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $< + $(V)$(CC) -c $(CFLAGS) -o $@ $< $(BUILD_DIR)/data/%.o: data/%.c -# $(CC_TEST) -c $(INCLUDE_CFLAGS) -o $@ $< $(GCC) -c $(GCC_CFLAGS) -D__sgi -o $@ $< -# assets/geo/%.c: assets/geo/%.bin -# python3 tools/decompile_geos.py $< - -# $(BUILD_DIR)/assets/geo/%.o: assets/geo/%.c -# $(GCC) -c $(GCC_CFLAGS) -D__sgi -o $@ $< - -# $(BUILD_DIR)/assets/geo/%.o: assets/geo/%.s -# $(AS) -c $(ASFLAGS) -o $@ $< - -$(BUILD_DIR)/assets/assets.marker: +$(GAME_ASSETS): assets/assets.ld $(MAKE) -C assets -# $(BUILD_DIR)/assets/misc/%.o: assets/misc/%.s -# $(AS) $(ASFLAGS) -o $@ $< +# TODO: make this a real dependency +DUMMY != $(MAKE) -C f3dex2 $(GRUCODE) PARENT_OUTPUT_DIR=../$(BUILD_DIR)/ ARMIPS=../$(LOCAL_ARMIPS) $(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c @$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $< @@ -269,12 +238,12 @@ $(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c $(BUILD_DIR)/$(UCODE_BASE_DIR)/%.o : $(UCODE_BASE_DIR)/% $(OBJCOPY) -I binary -O elf32-big $< $@ -$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(UCODE_LD) rcp_syms.txt undefined_syms.txt unnamed_syms.txt $(BUILD_DIR)/assets/assets.marker +$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(UCODE_LD) rcp_syms.txt undefined_syms.txt unnamed_syms.txt $(GAME_ASSETS) $(CPP) $(VERSION_CFLAGS) $(INCLUDE_CFLAGS) -MMD -MP -MT $@ -MF $@.d -o $@ $< \ -DBUILD_DIR=$(BUILD_DIR) -Umips -$(BUILD_DIR)/$(TARGET).elf: $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libultra.a $(BUILD_DIR)/libn_audio.a $(UCODE_TEXT_O_FILES) $(UCODE_DATA_O_FILES) - $(V)$(LD) -L $(BUILD_DIR) $(LDFLAGS) -o $@ $(LIBS) -lultra -ln_audio +$(BUILD_DIR)/$(TARGET).elf: $(GAME_ASSETS) $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libultra_rom.a $(BUILD_DIR)/libn_audio.a $(UCODE_TEXT_O_FILES) $(UCODE_DATA_O_FILES) + $(V)$(LD) -L $(BUILD_DIR) $(LDFLAGS) -o $@ $(LIBS) -ln_audio -lultra_rom # final z64 updates checksum $(BUILD_DIR)/$(TARGET).z64: $(BUILD_DIR)/$(TARGET).elf @@ -287,24 +256,12 @@ $(BUILD_DIR)/$(TARGET).z64: $(BUILD_DIR)/$(TARGET).elf $(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- -test: $(BUILD_DIR)/$(TARGET).z64 - $(EMULATOR) $(EMU_FLAGS) $< - -test2: $(BUILD_DIR)/$(TARGET).z64 - flatpak run --file-forwarding io.github.m64p.m64p @@ $< @@ - -test-pj64: $(BUILD_DIR)/$(TARGET).z64 - wine ~/Desktop/new64/Project64.exe $< - -load: $(BUILD_DIR)/$(TARGET).z64 - $(LOADER) $(LOADER_FLAGS) $< - setup: - $(MAKE) -C libreultra -j4 - $(MAKE) -C libreultra naudio -j4 - $(MAKE) -C tools -j4 - $(MAKE) -C f3dex2 $(GRUCODE) PARENT_OUTPUT_DIR=../f3dex2/ ARMIPS=../$(LOCAL_ARMIPS) + $(MAKE) -C libreultra BUILD_DIR=../$(BUILD_DIR) VERSION= + $(MAKE) -C libreultra naudio BUILD_DIR=../$(BUILD_DIR) VERSION= + $(MAKE) -C tools tools/extract_assets baserom.$(VERSION).z64 + ./splat/split.py kirby64.yaml .PHONY: all clean default diff test distclean diff --git a/Makefile.old b/Makefile.old new file mode 100644 index 000000000..921e75e2d --- /dev/null +++ b/Makefile.old @@ -0,0 +1,316 @@ +# Makefile to rebuild Kirby 64 split image + +################ Target Executable and Sources ############### + +# BUILD_DIR is location where all build artifacts are placed +BUILD_DIR_BASE = build +VERSION = us +BUILD_DIR = $(BUILD_DIR_BASE)/$(VERSION) + +GRUCODE := F3DEX2_2.04H + +VERBOSE := 1 + +# 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 + +V := @ +ifeq (VERBOSE, 1) + V= +endif + +##################### Compiler Options ####################### +# IRIX_ROOT := tools/ido5.3_compiler +IRIX_ROOT := tools/ido7.1 +# CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc +CC := tools/ido-7.1recomp/cc + + +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 ifeq ($(shell type mips-n64-ld >/dev/null 2>/dev/null; echo $$?), 0) + CROSS := mips-n64- +else + CROSS := mips64-elf- +endif + +GCC := $(CROSS)gcc + +AS = $(CROSS)as +# CC = $(CROSS)gcc +CPP := $(CROSS)cpp -P -Wno-trigraphs +LD = $(CROSS)ld +OBJDUMP = $(CROSS)objdump +OBJCOPY = $(CROSS)objcopy +PYTHON := python3 + +TEXTURES_DIR := textures + +# UNNAMED_SYMS := -T unnamed_syms.txt + +INCLUDE_FLAGS := -I$(BUILD_DIR) +ASFLAGS = -mtune=vr4300 -march=vr4300 --no-pad-sections -mabi=32 -mips3 $(INCLUDE_FLAGS) +# CFLAGS = -Wall -O2 -mtune=vr4300 -march=vr4300 -G 0 -c -Wab,-r4300_mul +LDFLAGS = --no-check-sections -mips3 --accept-unknown-input-arch \ + -T $(BUILD_DIR)/$(LD_SCRIPT) -T libultra_unused.txt $(UNNAMED_SYMS) -T undefined_syms.txt -T rcp_syms.txt \ + -Map $(BUILD_DIR)/$(TARGET).map +PRELIM_OBJCOPY_FLAGS = --pad-to=0x101000 --gap-fill=0x00 +OBJCOPY_FLAGS = --pad-to=0x2000000 --gap-fill=0xFF + +####################### Other Tools ######################### + +# N64 tools +TOOLS_DIR = tools +N64CRC = tools/n64crc +N64GRAPHICS = $(TOOLS_DIR)/n64graphics +EMULATOR = ~/Downloads/mupen64plus/mupen64plus-gui +EMU_FLAGS = # --noosd --gfx mupen64plus-video-glide64mk2 +LOADER = loader64 +LOADER_FLAGS = -vwf +FixPath = $(subst /,/,$1) + +ASSET_DIRS := $(wildcard assets/geo/bank_0/**) \ + $(wildcard assets/geo/bank_1/**) \ + $(wildcard assets/geo/bank_2/**) \ + $(wildcard assets/geo/bank_7/**) \ + $(wildcard assets/geo/bank_3/**) + +ASM_DIRS := asm data $(wildcard asm/ovl*) asm/ovl0/lib \ + asm/data asm/banks $(wildcard data/ovl*) + +SRC_DIRS := src $(wildcard src/ovl*) data $(wildcard data/ovl*) + +BIN_DIRS := bin/geo bin/image bin/misc bin/anim + +DATA_DIRS := actors +DATA_FILES := $(foreach dir,$(DATA_DIRS),$(wildcard $(dir)/*.c)) + +LEVEL_DIRS = $(wildcard assets/misc/bank_7/*) +LEVEL_FILES = $(foreach dir, $(LEVEL_DIRS), $(wildcard $(dir)/level.bin)) +LEVEL_S_FILES = $(foreach file, $(LEVEL_FILES), $(file:.bin=.s)) +LEVEL_O_FILES = $(foreach file, $(LEVEL_S_FILES), $(BUILD_DIR)/$(file:.s=.o)) + +TEXTURES_DIR = textures + +MIPSISET := -mips2 -32 + +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)) + +S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) +# S_FILES += $(LEVEL_S_FILES) +C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) + +MODEL_FILES := $(foreach dir,$(ASSET_DIRS),$(wildcard $(dir)/geo.bin)) +MODEL_C_FILES := $(foreach file,$(MODEL_FILES),$(file:.bin=.c)) + + +UCODE_BASE_DIR := ucode +UCODES := L3DEX2_2.04H S2DEX2_2.04 + +UCODE_DIRS := $(foreach ucode,$(UCODES) $(GRUCODE),$(UCODE_BASE_DIR)/$(ucode)) +UCODE_TEXT_FILES := $(foreach ucode,$(UCODES),$(UCODE_BASE_DIR)/$(ucode)/$(ucode).code) +UCODE_DATA_FILES := $(foreach ucode,$(UCODES),$(UCODE_BASE_DIR)/$(ucode)/$(ucode).data) + +UCODE_TEXT_O_FILES := $(addprefix $(BUILD_DIR)/,$(UCODE_TEXT_FILES:.code=.code.o)) $(BUILD_DIR)/$(UCODE_BASE_DIR)/$(GRUCODE)/$(GRUCODE).code.o +UCODE_DATA_O_FILES := $(addprefix $(BUILD_DIR)/,$(UCODE_DATA_FILES:.data=.data.o)) $(BUILD_DIR)/$(UCODE_BASE_DIR)/$(GRUCODE)/$(GRUCODE).data.o + +BUILD_ASM_DIRS := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/**/)) + +# Object files +O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ + $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) + +ASSET_O_FILES := $(foreach file,$(MODEL_C_FILES),$(BUILD_DIR)/$(file:.c=.o)) + +D_FILES := $(O_FILES:.o=.d) + +ACTOR_FILES := $(foreach file,$(DATA_FILES),$(BUILD_DIR)/$(file:.c=.o)) + + +# FLAGS +OPT_FLAGS := -O2 +INCLUDE_CFLAGS := -I include -I $(BUILD_DIR) -I $(BUILD_DIR)/include -I $(BUILD_DIR)/assets -I src -I . +TARGET_CFLAGS := -nostdinc -I include/libc -DTARGET_N64 -DF3DEX_GBI_2 +CFLAGS = -Wab,-r4300_mul -non_shared -G0 -Xcpluscomm -Xfullwarn -signed $(OPT_FLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) $(MIPSISET) +GCC_CFLAGS = -Wall $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -march=vr4300 -mtune=vr4300 -mfix4300 -mabi=32 -mno-shared -G 0 -fno-PIC -mno-abicalls -fno-zero-initialized-in-bss -fno-toplevel-reorder -Wno-missing-braces + +CC_CHECK := gcc -fsyntax-only -fsigned-char -m32 $(CC_CFLAGS) $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -std=gnu90 -Wall -Wextra -Wno-format-security -Wno-main -DNON_MATCHING -DAVOID_UB $(VERSION_CFLAGS) $(GRUCODE_CFLAGS) + +CC_TEST := gcc -Wall + + +######################## Targets ############################# + +NOEXTRACT ?= 0 + + +ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(LEVEL_DIRS) $(ASSET_DIRS) $(SRC_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone $(UCODE_DIRS)) +DUMMY != mkdir -p $(ALL_DIRS) + +# Checking if submodules exist +DUMMY != ls libreultra >/dev/null || echo FAIL +ifeq ($(DUMMY),FAIL) + $(error Missing submodule libreultra. Please run 'git submodule update --init') +endif + +DUMMY != ls f3dex2 >/dev/null || echo FAIL +ifeq ($(DUMMY),FAIL) + $(error Missing submodule f3dex2. Please run 'git submodule update --init') +endif + + +# hardcoded compiler for ml.c until i figure out why it's breaking recomp +$(BUILD_DIR)/src/ovl0/memory_layer.o: CC = $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc + +default: all + +TARGET = kirby.us +LD_SCRIPT = $(TARGET).ld +# TEXTURE_DIR = textures +# RAW_TEXTURE_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(wildcard $(TEXTURES_DIR)/raw/*.png))) + +$(BUILD_DIR)/data/kirby.066630.o: $(BUILD_DIR)/assets/assets.marker + +libreultra/build/2.0I/libultra_rom.a: + $(MAKE) -C libreultra -j4 + +libreultra/build/2.0I/libn_audio.a: + $(MAKE) -C libreultra naudio -j4 + +all: $(BUILD_DIR)/$(TARGET).z64 + @sha1sum -c $(TARGET).sha1 + +clean: + rm -rf build/ + +distclean: + rm -rf build/ + tools/extract_assets --clean + $(MAKE) -C tools clean + $(MAKE) -C libreultra clean + $(MAKE) -C f3dex2 clean + # TODO: remove these + rm -rf assets/geo + rm -rf assets/image + rm -rf assets/anim + rm -rf assets/misc + +softclean: + rm -rf build/us/src/ + rm -rf build/us/asm/ + +# $(BUILD_DIR)/src/ovl0/ovl0_8.o: OPT_FLAGS += -framepointer +$(BUILD_DIR)/src/ovl7/yakulib.o: OPT_FLAGS = -O2 -Olimit 1000 +$(BUILD_DIR)/src/ovl1/ovl1_5.o: OPT_FLAGS = -O2 +$(BUILD_DIR)/src/ovl3/ovl3_1.o: OPT_FLAGS = -O2 -Wo,-loopunroll +# $(BUILD_DIR)/src/ovl7/yakulib.o: CC = $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc + +# $(BUILD_DIR)/src/ovl1/save_file.o: OPT_FLAGS += -Wo,-loopunroll,0 + + +$(BUILD_DIR): + mkdir $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS)) + +# assets/misc/%.s: assets/misc/%.bin +# python3 tools/level_settings/helper.py $< + +$(BUILD_DIR)/libultra.a: libreultra/build/2.0I/libultra_rom.a + cp $< $@ + $(TOOLS_DIR)/patch_libultra_math $@ + +$(BUILD_DIR)/libn_audio.a: libreultra/build/2.0I/libn_audio.a + cp $< $@ + $(TOOLS_DIR)/patch_libultra_math $@ + +$(BUILD_DIR)/$(UCODE_BASE_DIR)/$(GRUCODE)/$(GRUCODE).%.o: f3dex2/$(GRUCODE)/$(GRUCODE).% + $(OBJCOPY) -I binary -O elf32-big $< $@ + +$(BUILD_DIR)/%.o: %.s + $(CPP) $(GCC_CFLAGS) -o $(@:.o=.i) $< + $(AS) $(ASFLAGS) -o $@ $(@:.o=.i) + +$(BUILD_DIR)/%.o: %.c + @$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $< + $(CC) -c $(CFLAGS) -o $@ $< + +$(BUILD_DIR)/data/%.o: data/%.c +# $(CC_TEST) -c $(INCLUDE_CFLAGS) -o $@ $< + $(GCC) -c $(GCC_CFLAGS) -D__sgi -o $@ $< + +# assets/geo/%.c: assets/geo/%.bin +# python3 tools/decompile_geos.py $< + +# $(BUILD_DIR)/assets/geo/%.o: assets/geo/%.c +# $(GCC) -c $(GCC_CFLAGS) -D__sgi -o $@ $< + +# $(BUILD_DIR)/assets/geo/%.o: assets/geo/%.s +# $(AS) -c $(ASFLAGS) -o $@ $< + +$(BUILD_DIR)/assets/assets.marker: + $(MAKE) -C assets + +# $(BUILD_DIR)/assets/misc/%.o: assets/misc/%.s +# $(AS) $(ASFLAGS) -o $@ $< + +$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c + @$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $< + $(CC) -c $(CFLAGS) -o $@ $< + +$(BUILD_DIR)/$(UCODE_BASE_DIR)/%.o : $(UCODE_BASE_DIR)/% + $(OBJCOPY) -I binary -O elf32-big $< $@ + +$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(UCODE_LD) rcp_syms.txt undefined_syms.txt unnamed_syms.txt $(BUILD_DIR)/assets/assets.marker + $(CPP) $(VERSION_CFLAGS) $(INCLUDE_CFLAGS) -MMD -MP -MT $@ -MF $@.d -o $@ $< \ + -DBUILD_DIR=$(BUILD_DIR) -Umips + +$(BUILD_DIR)/$(TARGET).elf: $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libultra.a $(BUILD_DIR)/libn_audio.a $(UCODE_TEXT_O_FILES) $(UCODE_DATA_O_FILES) + $(V)$(LD) -L $(BUILD_DIR) $(LDFLAGS) -o $@ $(LIBS) -lultra -ln_audio + +# final z64 updates checksum +$(BUILD_DIR)/$(TARGET).z64: $(BUILD_DIR)/$(TARGET).elf + $(OBJCOPY) $< $(BUILD_DIR)/$(@F).bin -O binary $(PRELIM_OBJCOPY_FLAGS) + $(LD) -r -b binary -o $(BUILD_DIR)/$(@F).elf.1 $(BUILD_DIR)/$(@F).bin + $(OBJCOPY) $(BUILD_DIR)/$(@F).elf.1 $@ -O binary $(OBJCOPY_FLAGS) + $(N64CRC) $@ + @python3 tools/progress2.py -m + + +$(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- + +test: $(BUILD_DIR)/$(TARGET).z64 + $(EMULATOR) $(EMU_FLAGS) $< + +test2: $(BUILD_DIR)/$(TARGET).z64 + flatpak run --file-forwarding io.github.m64p.m64p @@ $< @@ + +test-pj64: $(BUILD_DIR)/$(TARGET).z64 + wine ~/Desktop/new64/Project64.exe $< + +load: $(BUILD_DIR)/$(TARGET).z64 + $(LOADER) $(LOADER_FLAGS) $< + +setup: + $(MAKE) -C libreultra -j4 + $(MAKE) -C libreultra naudio -j4 + $(MAKE) -C tools -j4 + $(MAKE) -C f3dex2 VERSION=2.04H ARMIPS=../tools/armips + tools/extract_assets baserom.$(VERSION).z64 + +.PHONY: all clean default diff test distclean + +# Remove built-in rules, to improve performance +MAKEFLAGS += --no-builtin-rules + +-include $(D_FILES) +-include $(BUILD_DIR)/$(LD_SCRIPT).d + +print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true + diff --git a/README.md b/README.md index f8837555a..ec2507740 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,9 @@ You will need an original copy of the ROM to proceed. ## Installation - First, get Linux, or [Windows Subsystem for Linux](https://aka.ms/wslinstall) if you use Windows - - Next, clone the repo by running `sudo apt update && sudo apt install git gcc-mips-linux-gnu && git clone https://github.com/farisawan-2000/kirby64 --recursive` - - Get the GitPython submodule by doing `pip3 install gitpython` + - Next, clone the repo by running `sudo apt update && sudo apt install git gcc-mips-linux-gnu && git clone https://github.com/Kirby64Ret/kirby64 --recursive` + - Install the relevant Python packages by running `pip3 install gitpython splat64[mips]` + - **Warning:** For Arch Linux (and newer versions of Debian apparently, if it complains about `externally-managed-environment`, install gitpython from your package repos, and install `splat64[mips]` from pip using `--break-system-packages` at your own risk (in my tests it works fine)) - Grab the qemu-irix deb from [here](https://github.com/n64decomp/qemu-irix/releases) and install it with `sudo dpkg -i path/to/qemu(press tab here to autocomplete the name)` (Use `alien` on Fedora or `debtap` on Arch to convert) - Now just follow the instructions for SM64 decomp [here](https://github.com/n64decomp/sm64/tree/master/README.md), but before you go, keep reading. - Once dependencies are installed, run `make setup` to get assets extracted, then `make` to build! diff --git a/asm-differ b/asm-differ new file mode 160000 index 000000000..f24945ceb --- /dev/null +++ b/asm-differ @@ -0,0 +1 @@ +Subproject commit f24945ceb2baa77dcc2bbef4390aa90b58f26d7f diff --git a/asm-differ/README.md b/asm-differ/README.md deleted file mode 100644 index 4c0b3b010..000000000 --- a/asm-differ/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# asm-differ - -Nice differ for assembly code (MIPS and AArch64; should be easy to hack to support other instruction sets). - -![](screenshot.png) - -## Dependencies - -- Python >= 3.6 -- `python3 -m pip install --user colorama ansiwrap watchdog python-Levenshtein` - -## Usage - -Create a file `diff-settings.sh` in some directory (see the one in this repo for an example). Then from that directory, run - -``` -/path/to/diff.sh [flags] (function|rom addr) -``` - -Recommended flags are `-mwo` (automatically run `make` on source file changes, and include symbols in diff). See `--help` for more details. - -### Tab completion - -[argcomplete](https://kislyuk.github.io/argcomplete/) can be optionally installed (with `python3 -m pip install argcomplete`) to enable tab completion in a bash shell, completing options and symbol names using the linker map. It also requires a bit more setup: - -If invoking the script **exactly** as `./diff.py`, the following should be added to the `.bashrc` according to argcomplete's instructions: - -```sh -eval "$(register-python-argcomplete ./diff.py)" -``` - -If that doesn't work, run `register-python-argcomplete ./diff.py` in your terminal and copy the output to `.bashrc`. - -If setup correctly (don't forget to restart the shell), `complete | grep ./diff.py` should output: - -``` -complete -o bashdefault -o default -o nospace -F _python_argcomplete ./diff.py -``` - -Note for developers or for general troubleshooting: run `export _ARC_DEBUG=` to enable debug output during tab-completion, it may show otherwise silenced errors. Use `unset _ARC_DEBUG` or restart the terminal to disable. diff --git a/asm-differ/diff.py b/asm-differ/diff.py deleted file mode 100755 index ce478037a..000000000 --- a/asm-differ/diff.py +++ /dev/null @@ -1,1607 +0,0 @@ -#!/usr/bin/env python3 -# PYTHON_ARGCOMPLETE_OK -import argparse -import sys -from typing import ( - Any, - Dict, - List, - Match, - NamedTuple, - NoReturn, - Optional, - Set, - Tuple, - Union, - Callable, - Pattern, -) - - -def fail(msg: str) -> NoReturn: - print(msg, file=sys.stderr) - sys.exit(1) - - -# Prefer to use diff_settings.py from the current working directory -sys.path.insert(0, ".") -try: - import diff_settings -except ModuleNotFoundError: - fail("Unable to find diff_settings.py in the same directory.") -sys.path.pop(0) - -# ==== COMMAND-LINE ==== - -try: - import argcomplete # type: ignore -except ModuleNotFoundError: - argcomplete = None - -parser = argparse.ArgumentParser(description="Diff MIPS or AArch64 assembly.") - -start_argument = parser.add_argument( - "start", - help="Function name or address to start diffing from.", -) - -if argcomplete: - - def complete_symbol( - prefix: str, parsed_args: argparse.Namespace, **kwargs: object - ) -> List[str]: - if not prefix or prefix.startswith("-"): - # skip reading the map file, which would - # result in a lot of useless completions - return [] - config: Dict[str, Any] = {} - diff_settings.apply(config, parsed_args) # type: ignore - mapfile = config.get("mapfile") - if not mapfile: - return [] - completes = [] - with open(mapfile) as f: - data = f.read() - # assume symbols are prefixed by a space character - search = f" {prefix}" - pos = data.find(search) - while pos != -1: - # skip the space character in the search string - pos += 1 - # assume symbols are suffixed by either a space - # character or a (unix-style) line return - spacePos = data.find(" ", pos) - lineReturnPos = data.find("\n", pos) - if lineReturnPos == -1: - endPos = spacePos - elif spacePos == -1: - endPos = lineReturnPos - else: - endPos = min(spacePos, lineReturnPos) - if endPos == -1: - match = data[pos:] - pos = -1 - else: - match = data[pos:endPos] - pos = data.find(search, endPos) - completes.append(match) - return completes - - setattr(start_argument, "completer", complete_symbol) - -parser.add_argument( - "end", - nargs="?", - help="Address to end diff at.", -) -parser.add_argument( - "-o", - dest="diff_obj", - action="store_true", - help="Diff .o files rather than a whole binary. This makes it possible to " - "see symbol names. (Recommended)", -) -parser.add_argument( - "-e", - "--elf", - dest="diff_elf_symbol", - metavar="SYMBOL", - help="Diff a given function in two ELFs, one being stripped and the other " - "one non-stripped. Requires objdump from binutils 2.33+.", -) -parser.add_argument( - "--source", - action="store_true", - help="Show source code (if possible). Only works with -o and -e.", -) -parser.add_argument( - "--inlines", - action="store_true", - help="Show inline function calls (if possible). Only works with -o and -e.", -) -parser.add_argument( - "--base-asm", - dest="base_asm", - metavar="FILE", - help="Read assembly from given file instead of configured base img.", -) -parser.add_argument( - "--write-asm", - dest="write_asm", - metavar="FILE", - help="Write the current assembly output to file, e.g. for use with --base-asm.", -) -parser.add_argument( - "-m", - "--make", - dest="make", - action="store_true", - help="Automatically run 'make' on the .o file or binary before diffing.", -) -parser.add_argument( - "-l", - "--skip-lines", - dest="skip_lines", - type=int, - default=0, - metavar="LINES", - help="Skip the first N lines of output.", -) -parser.add_argument( - "-s", - "--stop-jr-ra", - dest="stop_jrra", - action="store_true", - help="Stop disassembling at the first 'jr ra'. Some functions have multiple return points, so use with care!", -) -parser.add_argument( - "-i", - "--ignore-large-imms", - dest="ignore_large_imms", - action="store_true", - help="Pretend all large enough immediates are the same.", -) -parser.add_argument( - "-I", - "--ignore-addr-diffs", - action="store_true", - help="Ignore address differences. Currently only affects AArch64.", -) -parser.add_argument( - "-B", - "--no-show-branches", - dest="show_branches", - action="store_false", - help="Don't visualize branches/branch targets.", -) -parser.add_argument( - "-S", - "--base-shift", - dest="base_shift", - type=str, - default="0", - help="Diff position X in our img against position X + shift in the base img. " - 'Arithmetic is allowed, so e.g. |-S "0x1234 - 0x4321"| is a reasonable ' - "flag to pass if it is known that position 0x1234 in the base img syncs " - "up with position 0x4321 in our img. Not supported together with -o.", -) -parser.add_argument( - "-w", - "--watch", - dest="watch", - action="store_true", - help="Automatically update when source/object files change. " - "Recommended in combination with -m.", -) -parser.add_argument( - "-3", - "--threeway=prev", - dest="threeway", - action="store_const", - const="prev", - help="Show a three-way diff between target asm, current asm, and asm " - "prior to -w rebuild. Requires -w.", -) -parser.add_argument( - "-b", - "--threeway=base", - dest="threeway", - action="store_const", - const="base", - help="Show a three-way diff between target asm, current asm, and asm " - "when diff.py was started. Requires -w.", -) -parser.add_argument( - "--width", - dest="column_width", - type=int, - default=50, - help="Sets the width of the left and right view column.", -) -parser.add_argument( - "--algorithm", - dest="algorithm", - default="levenshtein", - choices=["levenshtein", "difflib"], - help="Diff algorithm to use. Levenshtein gives the minimum diff, while difflib " - "aims for long sections of equal opcodes. Defaults to %(default)s.", -) -parser.add_argument( - "--max-size", - "--max-lines", - dest="max_lines", - type=int, - default=1024, - help="The maximum length of the diff, in lines.", -) - -# Project-specific flags, e.g. different versions/make arguments. -add_custom_arguments_fn = getattr(diff_settings, "add_custom_arguments", None) -if add_custom_arguments_fn: - add_custom_arguments_fn(parser) - -if argcomplete: - argcomplete.autocomplete(parser) - -# ==== IMPORTS ==== - -# (We do imports late to optimize auto-complete performance.) - -import re -import os -import ast -import subprocess -import difflib -import string -import itertools -import threading -import queue -import time - - -MISSING_PREREQUISITES = ( - "Missing prerequisite python module {}. " - "Run `python3 -m pip install --user colorama ansiwrap watchdog python-Levenshtein cxxfilt` to install prerequisites (cxxfilt only needed with --source)." -) - -try: - from colorama import Fore, Style, Back # type: ignore - import ansiwrap # type: ignore - import watchdog # type: ignore -except ModuleNotFoundError as e: - fail(MISSING_PREREQUISITES.format(e.name)) - -# ==== CONFIG ==== - -args = parser.parse_args() - -# Set imgs, map file and make flags in a project-specific manner. -config: Dict[str, Any] = {} -diff_settings.apply(config, args) # type: ignore - -arch: str = config.get("arch", "mips") -baseimg: Optional[str] = config.get("baseimg") -myimg: Optional[str] = config.get("myimg") -mapfile: Optional[str] = config.get("mapfile") -build_command: List[str] = config.get("make_command", ["make", *config.get("makeflags", [])]) -source_directories: Optional[List[str]] = config.get("source_directories") -source_extensions: List[str] = config.get("source_extensions", [".c", ".h", ".cpp", ".hpp", ".s"]) -objdump_executable: Optional[str] = config.get("objdump_executable") -map_format: str = config.get("map_format", "gnu") -mw_build_dir: str = config.get("mw_build_dir", "build/") - -MAX_FUNCTION_SIZE_LINES: int = args.max_lines -MAX_FUNCTION_SIZE_BYTES: int = MAX_FUNCTION_SIZE_LINES * 4 - -COLOR_ROTATION: List[str] = [ - Fore.MAGENTA, - Fore.CYAN, - Fore.GREEN, - Fore.RED, - Fore.LIGHTYELLOW_EX, - Fore.LIGHTMAGENTA_EX, - Fore.LIGHTCYAN_EX, - Fore.LIGHTGREEN_EX, - Fore.LIGHTBLACK_EX, -] - -BUFFER_CMD: List[str] = ["tail", "-c", str(10 ** 9)] -LESS_CMD: List[str] = ["less", "-SRic", "-#6"] - -DEBOUNCE_DELAY: float = 0.1 -FS_WATCH_EXTENSIONS: List[str] = source_extensions - -# ==== LOGIC ==== - -ObjdumpCommand = Tuple[List[str], str, Optional[str]] - -if args.algorithm == "levenshtein": - try: - import Levenshtein # type: ignore - except ModuleNotFoundError as e: - fail(MISSING_PREREQUISITES.format(e.name)) - -if args.source: - try: - import cxxfilt # type: ignore - except ModuleNotFoundError as e: - fail(MISSING_PREREQUISITES.format(e.name)) - -if args.threeway and not args.watch: - fail("Threeway diffing requires -w.") - -if objdump_executable is None: - for objdump_cand in ["mips-linux-gnu-objdump", "mips64-elf-objdump"]: - try: - subprocess.check_call( - [objdump_cand, "--version"], - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL, - ) - objdump_executable = objdump_cand - break - except subprocess.CalledProcessError: - pass - except FileNotFoundError: - pass - -if not objdump_executable: - fail( - "Missing binutils; please ensure mips-linux-gnu-objdump or mips64-elf-objdump exist, or configure objdump_executable." - ) - - -def maybe_eval_int(expr: str) -> Optional[int]: - try: - ret = ast.literal_eval(expr) - if not isinstance(ret, int): - raise Exception("not an integer") - return ret - except Exception: - return None - - -def eval_int(expr: str, emsg: str) -> int: - ret = maybe_eval_int(expr) - if ret is None: - fail(emsg) - return ret - - -def eval_line_num(expr: str) -> int: - return int(expr.strip().replace(":", ""), 16) - - -def run_make(target: str) -> None: - subprocess.check_call(build_command + [target]) - - -def run_make_capture_output(target: str) -> "subprocess.CompletedProcess[bytes]": - return subprocess.run( - build_command + [target], - stderr=subprocess.PIPE, - stdout=subprocess.PIPE, - ) - - -def restrict_to_function(dump: str, fn_name: str) -> str: - out: List[str] = [] - search = f"<{fn_name}>:" - found = False - for line in dump.split("\n"): - if found: - if len(out) >= MAX_FUNCTION_SIZE_LINES: - break - out.append(line) - elif search in line: - found = True - return "\n".join(out) - - -def maybe_get_objdump_source_flags() -> List[str]: - if not args.source: - return [] - - flags = [ - "--source", - "--source-comment=│ ", - "-l", - ] - - if args.inlines: - flags.append("--inlines") - - return flags - - -def run_objdump(cmd: ObjdumpCommand) -> str: - flags, target, restrict = cmd - assert objdump_executable, "checked previously" - out = subprocess.check_output( - [objdump_executable] + arch_flags + flags + [target], universal_newlines=True - ) - if restrict is not None: - return restrict_to_function(out, restrict) - return out - - -base_shift: int = eval_int( - args.base_shift, "Failed to parse --base-shift (-S) argument as an integer." -) - - -def search_map_file(fn_name: str) -> Tuple[Optional[str], Optional[int]]: - if not mapfile: - fail(f"No map file configured; cannot find function {fn_name}.") - - try: - with open(mapfile) as f: - contents = f.read() - except Exception: - fail(f"Failed to open map file {mapfile} for reading.") - - if map_format == 'gnu': - lines = contents.split("\n") - - try: - cur_objfile = None - ram_to_rom = None - cands = [] - last_line = "" - for line in lines: - if line.startswith(" .text"): - cur_objfile = line.split()[3] - if "load address" in line: - tokens = last_line.split() + line.split() - ram = int(tokens[1], 0) - rom = int(tokens[5], 0) - ram_to_rom = rom - ram - if line.endswith(" " + fn_name): - ram = int(line.split()[0], 0) - if cur_objfile is not None and ram_to_rom is not None: - cands.append((cur_objfile, ram + ram_to_rom)) - last_line = line - except Exception as e: - import traceback - - traceback.print_exc() - fail(f"Internal error while parsing map file") - - if len(cands) > 1: - fail(f"Found multiple occurrences of function {fn_name} in map file.") - if len(cands) == 1: - return cands[0] - elif map_format == 'mw': - # ram elf rom object name - find = re.findall(re.compile(r' \S+ \S+ (\S+) (\S+) . ' + fn_name + r'(?: \(entry of \.(?:init|text)\))? \t(\S+)'), contents) - if len(find) > 1: - fail(f"Found multiple occurrences of function {fn_name} in map file.") - if len(find) == 1: - rom = int(find[0][1],16) - objname = find[0][2] - # The metrowerks linker map format does not contain the full object path, so we must complete it manually. - objfiles = [os.path.join(dirpath, f) for dirpath, _, filenames in os.walk(mw_build_dir) for f in filenames if f == objname] - if len(objfiles) > 1: - all_objects = "\n".join(objfiles) - fail(f"Found multiple objects of the same name {objname} in {mw_build_dir}, cannot determine which to diff against: \n{all_objects}") - if len(objfiles) == 1: - objfile = objfiles[0] - # TODO Currently the ram-rom conversion only works for diffing ELF executables, but it would likely be more convenient to diff DOLs. - # At this time it is recommended to always use -o when running the diff script as this mode does not make use of the ram-rom conversion - return objfile, rom - else: - fail(f"Linker map format {map_format} unrecognised.") - return None, None - - -def dump_elf() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: - if not baseimg or not myimg: - fail("Missing myimg/baseimg in config.") - if base_shift: - fail("--base-shift not compatible with -e") - - start_addr = eval_int(args.start, "Start address must be an integer expression.") - - if args.end is not None: - end_addr = eval_int(args.end, "End address must be an integer expression.") - else: - end_addr = start_addr + MAX_FUNCTION_SIZE_BYTES - - flags1 = [ - f"--start-address={start_addr}", - f"--stop-address={end_addr}", - ] - - flags2 = [ - f"--disassemble={args.diff_elf_symbol}", - ] - - objdump_flags = ["-drz", "-j", ".text"] - return ( - myimg, - (objdump_flags + flags1, baseimg, None), - (objdump_flags + flags2 + maybe_get_objdump_source_flags(), myimg, None), - ) - - -def dump_objfile() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: - if base_shift: - fail("--base-shift not compatible with -o") - if args.end is not None: - fail("end address not supported together with -o") - if args.start.startswith("0"): - fail("numerical start address not supported with -o; pass a function name") - - objfile, _ = search_map_file(args.start) - if not objfile: - fail("Not able to find .o file for function.") - - if args.make: - run_make(objfile) - - if not os.path.isfile(objfile): - fail(f"Not able to find .o file for function: {objfile} is not a file.") - - refobjfile = "expected/" + objfile - if not os.path.isfile(refobjfile): - fail(f'Please ensure an OK .o file exists at "{refobjfile}".') - - objdump_flags = ["-drz"] - return ( - objfile, - (objdump_flags, refobjfile, args.start), - (objdump_flags + maybe_get_objdump_source_flags(), objfile, args.start), - ) - - -def dump_binary() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: - if not baseimg or not myimg: - fail("Missing myimg/baseimg in config.") - if args.make: - run_make(myimg) - start_addr = maybe_eval_int(args.start) - if start_addr is None: - _, start_addr = search_map_file(args.start) - if start_addr is None: - fail("Not able to find function in map file.") - if args.end is not None: - end_addr = eval_int(args.end, "End address must be an integer expression.") - else: - end_addr = start_addr + MAX_FUNCTION_SIZE_BYTES - objdump_flags = ["-Dz", "-bbinary", "-EB"] - flags1 = [ - f"--start-address={start_addr + base_shift}", - f"--stop-address={end_addr + base_shift}", - ] - flags2 = [f"--start-address={start_addr}", f"--stop-address={end_addr}"] - return ( - myimg, - (objdump_flags + flags1, baseimg, None), - (objdump_flags + flags2, myimg, None), - ) - - -def ansi_ljust(s: str, width: int) -> str: - """Like s.ljust(width), but accounting for ANSI colors.""" - needed: int = width - ansiwrap.ansilen(s) - if needed > 0: - return s + " " * needed - else: - return s - - -if arch == "mips": - re_int = re.compile(r"[0-9]+") - re_comment = re.compile(r"<.*?>") - re_reg = re.compile( - r"\$?\b(a[0-3]|t[0-9]|s[0-8]|at|v[01]|f[12]?[0-9]|f3[01]|k[01]|fp|ra|zero)\b" - ) - re_sprel = re.compile(r"(?<=,)([0-9]+|0x[0-9a-f]+)\(sp\)") - re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}") - re_imm = re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(sp)|%(lo|hi)\([^)]*\)") - forbidden = set(string.ascii_letters + "_") - arch_flags = ["-m", "mips:4300"] - branch_likely_instructions = { - "beql", - "bnel", - "beqzl", - "bnezl", - "bgezl", - "bgtzl", - "blezl", - "bltzl", - "bc1tl", - "bc1fl", - } - branch_instructions = branch_likely_instructions.union( - { - "b", - "beq", - "bne", - "beqz", - "bnez", - "bgez", - "bgtz", - "blez", - "bltz", - "bc1t", - "bc1f", - } - ) - instructions_with_address_immediates = branch_instructions.union({"jal", "j"}) -elif arch == "aarch64": - re_int = re.compile(r"[0-9]+") - re_comment = re.compile(r"(<.*?>|//.*$)") - # GPRs and FP registers: X0-X30, W0-W30, [DSHQ]0..31 - # The zero registers and SP should not be in this list. - re_reg = re.compile(r"\$?\b([dshq][12]?[0-9]|[dshq]3[01]|[xw][12]?[0-9]|[xw]30)\b") - re_sprel = re.compile(r"sp, #-?(0x[0-9a-fA-F]+|[0-9]+)\b") - re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}") - re_imm = re.compile(r"(?|//.*$)") - re_reg = re.compile(r"\$?\b([rf][0-9]+)\b") - re_sprel = re.compile(r"(?<=,)(-?[0-9]+|-?0x[0-9a-f]+)\(r1\)") - re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}") - re_imm = re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(r1)|[^@]*@(ha|h|lo)") - arch_flags = [] - forbidden = set(string.ascii_letters + "_") - branch_likely_instructions = set() - branch_instructions = { - "b", - "beq", - "beq+", - "beq-", - "bne", - "bne+", - "bne-", - "blt", - "blt+", - "blt-", - "ble", - "ble+", - "ble-", - "bdnz", - "bdnz+", - "bdnz-", - "bge", - "bge+", - "bge-", - "bgt", - "bgt+", - "bgt-", - } - instructions_with_address_immediates = branch_instructions.union({"bl"}) -else: - fail(f"Unknown architecture: {arch}") - - -def hexify_int(row: str, pat: Match[str]) -> str: - full = pat.group(0) - if len(full) <= 1: - # leave one-digit ints alone - return full - start, end = pat.span() - if start and row[start - 1] in forbidden: - return full - if end < len(row) and row[end] in forbidden: - return full - return hex(int(full)) - - -def parse_relocated_line(line: str) -> Tuple[str, str, str]: - try: - ind2 = line.rindex(",") - except ValueError: - try: - ind2 = line.rindex("\t") - except ValueError: - ind2 = line.rindex(" ") - before = line[: ind2 + 1] - after = line[ind2 + 1 :] - ind2 = after.find("(") - if ind2 == -1: - imm, after = after, "" - else: - imm, after = after[:ind2], after[ind2:] - if imm == "0x0": - imm = "0" - return before, imm, after - - -def process_mips_reloc(row: str, prev: str) -> str: - before, imm, after = parse_relocated_line(prev) - repl = row.split()[-1] - if imm != "0": - # MIPS uses relocations with addends embedded in the code as immediates. - # If there is an immediate, show it as part of the relocation. Ideally - # we'd show this addend in both %lo/%hi, but annoyingly objdump's output - # doesn't include enough information to pair up %lo's and %hi's... - # TODO: handle unambiguous cases where all addends for a symbol are the - # same, or show "+???". - mnemonic = prev.split()[0] - if mnemonic in instructions_with_address_immediates and not imm.startswith("0x"): - imm = "0x" + imm - repl += "+" + imm if int(imm, 0) > 0 else imm - if "R_MIPS_LO16" in row: - repl = f"%lo({repl})" - elif "R_MIPS_HI16" in row: - # Ideally we'd pair up R_MIPS_LO16 and R_MIPS_HI16 to generate a - # correct addend for each, but objdump doesn't give us the order of - # the relocations, so we can't find the right LO16. :( - repl = f"%hi({repl})" - elif "R_MIPS_26" in row: - # Function calls - pass - elif "R_MIPS_PC16" in row: - # Branch to glabel. This gives confusing output, but there's not much - # we can do here. - pass - else: - assert False, f"unknown relocation type '{row}' for line '{prev}'" - return before + repl + after - - -def process_ppc_reloc(row: str, prev: str) -> str: - assert any(r in row for r in ["R_PPC_REL24", "R_PPC_ADDR16", "R_PPC_EMB_SDA21"]), f"unknown relocation type '{row}' for line '{prev}'" - before, imm, after = parse_relocated_line(prev) - repl = row.split()[-1] - if "R_PPC_REL24" in row: - # function calls - pass - elif "R_PPC_ADDR16_HI" in row: - # absolute hi of addr - repl = f"{repl}@h" - elif "R_PPC_ADDR16_HA" in row: - # adjusted hi of addr - repl = f"{repl}@ha" - elif "R_PPC_ADDR16_LO" in row: - # lo of addr - repl = f"{repl}@l" - elif "R_PPC_ADDR16" in row: - # 16-bit absolute addr - if "+0x7" in repl: - # remove the very large addends as they are an artifact of (label-_SDA(2)_BASE_) - # computations and are unimportant in a diff setting. - if int(repl.split("+")[1],16) > 0x70000000: - repl = repl.split("+")[0] - elif "R_PPC_EMB_SDA21" in row: - # small data area - pass - return before + repl + after - - -def pad_mnemonic(line: str) -> str: - if "\t" not in line: - return line - mn, args = line.split("\t", 1) - return f"{mn:<7s} {args}" - - -class Line(NamedTuple): - mnemonic: str - diff_row: str - original: str - normalized_original: str - line_num: str - branch_target: Optional[str] - source_lines: List[str] - comment: Optional[str] - - -class DifferenceNormalizer: - def normalize(self, mnemonic: str, row: str) -> str: - """This should be called exactly once for each line.""" - row = self._normalize_arch_specific(mnemonic, row) - if args.ignore_large_imms: - row = re.sub(re_large_imm, "", row) - return row - - def _normalize_arch_specific(self, mnemonic: str, row: str) -> str: - return row - - -class DifferenceNormalizerAArch64(DifferenceNormalizer): - def __init__(self) -> None: - super().__init__() - self._adrp_pair_registers: Set[str] = set() - - def _normalize_arch_specific(self, mnemonic: str, row: str) -> str: - if args.ignore_addr_diffs: - row = self._normalize_adrp_differences(mnemonic, row) - row = self._normalize_bl(mnemonic, row) - return row - - def _normalize_bl(self, mnemonic: str, row: str) -> str: - if mnemonic != "bl": - return row - - row, _ = split_off_branch(row) - return row - - def _normalize_adrp_differences(self, mnemonic: str, row: str) -> str: - """Identifies ADRP + LDR/ADD pairs that are used to access the GOT and - suppresses any immediate differences. - - Whenever an ADRP is seen, the destination register is added to the set of registers - that are part of an ADRP + LDR/ADD pair. Registers are removed from the set as soon - as they are used for an LDR or ADD instruction which completes the pair. - - This method is somewhat crude but should manage to detect most such pairs. - """ - row_parts = row.split("\t", 1) - if mnemonic == "adrp": - self._adrp_pair_registers.add(row_parts[1].strip().split(",")[0]) - row, _ = split_off_branch(row) - elif mnemonic == "ldr": - for reg in self._adrp_pair_registers: - # ldr xxx, [reg] - # ldr xxx, [reg, ] - if f", [{reg}" in row_parts[1]: - self._adrp_pair_registers.remove(reg) - return normalize_imms(row) - elif mnemonic == "add": - for reg in self._adrp_pair_registers: - # add reg, reg, - if row_parts[1].startswith(f"{reg}, {reg}, "): - self._adrp_pair_registers.remove(reg) - return normalize_imms(row) - - return row - - -def make_difference_normalizer() -> DifferenceNormalizer: - if arch == "aarch64": - return DifferenceNormalizerAArch64() - return DifferenceNormalizer() - - -def process(lines: List[str]) -> List[Line]: - normalizer = make_difference_normalizer() - skip_next = False - source_lines = [] - if not args.diff_obj: - lines = lines[7:] - if lines and not lines[-1]: - lines.pop() - - output: List[Line] = [] - stop_after_delay_slot = False - for row in lines: - if args.diff_obj and (">:" in row or not row): - continue - - if args.source and (row and row[0] != " "): - source_lines.append(row) - continue - - if "R_AARCH64_" in row: - # TODO: handle relocation - continue - - if "R_MIPS_" in row: - # N.B. Don't transform the diff rows, they already ignore immediates - # if output[-1].diff_row != "": - # output[-1] = output[-1].replace(diff_row=process_mips_reloc(row, output[-1].row_with_imm)) - new_original = process_mips_reloc(row, output[-1].original) - output[-1] = output[-1]._replace(original=new_original) - continue - - if "R_PPC_" in row: - new_original = process_ppc_reloc(row, output[-1].original) - output[-1] = output[-1]._replace(original=new_original) - continue - - m_comment = re.search(re_comment, row) - comment = m_comment[0] if m_comment else None - row = re.sub(re_comment, "", row) - row = row.rstrip() - tabs = row.split("\t") - row = "\t".join(tabs[2:]) - line_num = tabs[0].strip() - - if "\t" in row: - row_parts = row.split("\t", 1) - else: - # powerpc-eabi-objdump doesn't use tabs - row_parts = [part.lstrip() for part in row.split(" ", 1)] - mnemonic = row_parts[0].strip() - - if mnemonic not in instructions_with_address_immediates: - row = re.sub(re_int, lambda m: hexify_int(row, m), row) - original = row - normalized_original = normalizer.normalize(mnemonic, original) - if skip_next: - skip_next = False - row = "" - mnemonic = "" - if mnemonic in branch_likely_instructions: - skip_next = True - row = re.sub(re_reg, "", row) - row = re.sub(re_sprel, "addr(sp)", row) - row_with_imm = row - if mnemonic in instructions_with_address_immediates: - row = row.strip() - row, _ = split_off_branch(row) - row += "" - else: - row = normalize_imms(row) - - branch_target = None - if mnemonic in branch_instructions: - target = row_parts[1].strip().split(",")[-1] - if mnemonic in branch_likely_instructions: - target = hex(int(target, 16) - 4)[2:] - branch_target = target.strip() - - output.append( - Line( - mnemonic=mnemonic, - diff_row=row, - original=original, - normalized_original=normalized_original, - line_num=line_num, - branch_target=branch_target, - source_lines=source_lines, - comment=comment, - ) - ) - source_lines = [] - - if args.stop_jrra and mnemonic == "jr" and row_parts[1].strip() == "ra": - stop_after_delay_slot = True - elif stop_after_delay_slot: - break - - return output - - -def format_single_line_diff(line1: str, line2: str, column_width: int) -> str: - return ansi_ljust(line1, column_width) + line2 - - -class SymbolColorer: - symbol_colors: Dict[str, str] - - def __init__(self, base_index: int) -> None: - self.color_index = base_index - self.symbol_colors = {} - - def color_symbol(self, s: str, t: Optional[str] = None) -> str: - try: - color = self.symbol_colors[s] - except: - color = COLOR_ROTATION[self.color_index % len(COLOR_ROTATION)] - self.color_index += 1 - self.symbol_colors[s] = color - t = t or s - return f"{color}{t}{Fore.RESET}" - - -def normalize_imms(row: str) -> str: - return re.sub(re_imm, "", row) - - -def normalize_stack(row: str) -> str: - return re.sub(re_sprel, "addr(sp)", row) - - -def split_off_branch(line: str) -> Tuple[str, str]: - parts = line.split(",") - if len(parts) < 2: - parts = line.split(None, 1) - off = len(line) - len(parts[-1]) - return line[:off], line[off:] - -ColorFunction = Callable[[str], str] - -def color_fields(pat: Pattern[str], out1: str, out2: str, color1: ColorFunction, color2: Optional[ColorFunction]=None) -> Tuple[str, str]: - diffs = [of.group() != nf.group() for (of, nf) in zip(pat.finditer(out1), pat.finditer(out2))] - - it = iter(diffs) - def maybe_color(color: ColorFunction, s: str) -> str: - return color(s) if next(it, False) else f"{Style.RESET_ALL}{s}" - - out1 = pat.sub(lambda m: maybe_color(color1, m.group()), out1) - it = iter(diffs) - out2 = pat.sub(lambda m: maybe_color(color2 or color1, m.group()), out2) - - return out1, out2 - - -def color_branch_imms(br1: str, br2: str) -> Tuple[str, str]: - if br1 != br2: - br1 = f"{Fore.LIGHTBLUE_EX}{br1}{Style.RESET_ALL}" - br2 = f"{Fore.LIGHTBLUE_EX}{br2}{Style.RESET_ALL}" - return br1, br2 - - -def diff_sequences_difflib( - seq1: List[str], seq2: List[str] -) -> List[Tuple[str, int, int, int, int]]: - differ = difflib.SequenceMatcher(a=seq1, b=seq2, autojunk=False) - return differ.get_opcodes() - - -def diff_sequences( - seq1: List[str], seq2: List[str] -) -> List[Tuple[str, int, int, int, int]]: - if ( - args.algorithm != "levenshtein" - or len(seq1) * len(seq2) > 4 * 10 ** 8 - or len(seq1) + len(seq2) >= 0x110000 - ): - return diff_sequences_difflib(seq1, seq2) - - # The Levenshtein library assumes that we compare strings, not lists. Convert. - # (Per the check above we know we have fewer than 0x110000 unique elements, so chr() works.) - remapping: Dict[str, str] = {} - - def remap(seq: List[str]) -> str: - seq = seq[:] - for i in range(len(seq)): - val = remapping.get(seq[i]) - if val is None: - val = chr(len(remapping)) - remapping[seq[i]] = val - seq[i] = val - return "".join(seq) - - rem1 = remap(seq1) - rem2 = remap(seq2) - return Levenshtein.opcodes(rem1, rem2) # type: ignore - - -def diff_lines( - lines1: List[Line], - lines2: List[Line], -) -> List[Tuple[Optional[Line], Optional[Line]]]: - ret = [] - for (tag, i1, i2, j1, j2) in diff_sequences( - [line.mnemonic for line in lines1], - [line.mnemonic for line in lines2], - ): - for line1, line2 in itertools.zip_longest(lines1[i1:i2], lines2[j1:j2]): - if tag == "replace": - if line1 is None: - tag = "insert" - elif line2 is None: - tag = "delete" - elif tag == "insert": - assert line1 is None - elif tag == "delete": - assert line2 is None - ret.append((line1, line2)) - - return ret - - -class OutputLine: - base: Optional[str] - fmt2: str - key2: Optional[str] - - def __init__(self, base: Optional[str], fmt2: str, key2: Optional[str]) -> None: - self.base = base - self.fmt2 = fmt2 - self.key2 = key2 - - def __eq__(self, other: object) -> bool: - if not isinstance(other, OutputLine): - return NotImplemented - return self.key2 == other.key2 - - def __hash__(self) -> int: - return hash(self.key2) - - -def do_diff(basedump: str, mydump: str) -> List[OutputLine]: - output: List[OutputLine] = [] - - lines1 = process(basedump.split("\n")) - lines2 = process(mydump.split("\n")) - - sc1 = SymbolColorer(0) - sc2 = SymbolColorer(0) - sc3 = SymbolColorer(4) - sc4 = SymbolColorer(4) - sc5 = SymbolColorer(0) - sc6 = SymbolColorer(0) - bts1: Set[str] = set() - bts2: Set[str] = set() - - if args.show_branches: - for (lines, btset, sc) in [ - (lines1, bts1, sc5), - (lines2, bts2, sc6), - ]: - for line in lines: - bt = line.branch_target - if bt is not None: - btset.add(bt + ":") - sc.color_symbol(bt + ":") - - for (line1, line2) in diff_lines(lines1, lines2): - line_color1 = line_color2 = sym_color = Fore.RESET - line_prefix = " " - if line1 and line2 and line1.diff_row == line2.diff_row: - if line1.normalized_original == line2.normalized_original: - out1 = line1.original - out2 = line2.original - elif line1.diff_row == "": - out1 = f"{Style.BRIGHT}{Fore.LIGHTBLACK_EX}{line1.original}" - out2 = f"{Style.BRIGHT}{Fore.LIGHTBLACK_EX}{line2.original}" - else: - mnemonic = line1.original.split()[0] - out1, out2 = line1.original, line2.original - branch1 = branch2 = "" - if mnemonic in instructions_with_address_immediates: - out1, branch1 = split_off_branch(line1.original) - out2, branch2 = split_off_branch(line2.original) - branchless1 = out1 - branchless2 = out2 - out1, out2 = color_fields(re_imm, out1, out2, lambda s: f"{Fore.LIGHTBLUE_EX}{s}{Style.RESET_ALL}") - - same_relative_target = False - if line1.branch_target is not None and line2.branch_target is not None: - relative_target1 = eval_line_num(line1.branch_target) - eval_line_num(line1.line_num) - relative_target2 = eval_line_num(line2.branch_target) - eval_line_num(line2.line_num) - same_relative_target = relative_target1 == relative_target2 - - if not same_relative_target: - branch1, branch2 = color_branch_imms(branch1, branch2) - - out1 += branch1 - out2 += branch2 - if normalize_imms(branchless1) == normalize_imms(branchless2): - if not same_relative_target: - # only imms differences - sym_color = Fore.LIGHTBLUE_EX - line_prefix = "i" - else: - out1, out2 = color_fields(re_sprel, out1, out2, sc3.color_symbol, sc4.color_symbol) - if normalize_stack(branchless1) == normalize_stack(branchless2): - # only stack differences (luckily stack and imm - # differences can't be combined in MIPS, so we - # don't have to think about that case) - sym_color = Fore.YELLOW - line_prefix = "s" - else: - # regs differences and maybe imms as well - out1, out2 = color_fields(re_reg, out1, out2, sc1.color_symbol, sc2.color_symbol) - line_color1 = line_color2 = sym_color = Fore.YELLOW - line_prefix = "r" - elif line1 and line2: - line_prefix = "|" - line_color1 = Fore.LIGHTBLUE_EX - line_color2 = Fore.LIGHTBLUE_EX - sym_color = Fore.LIGHTBLUE_EX - out1 = line1.original - out2 = line2.original - elif line1: - line_prefix = "<" - line_color1 = sym_color = Fore.RED - out1 = line1.original - out2 = "" - elif line2: - line_prefix = ">" - line_color2 = sym_color = Fore.GREEN - out1 = "" - out2 = line2.original - - if args.source and line2 and line2.comment: - out2 += f" {line2.comment}" - - def format_part( - out: str, - line: Optional[Line], - line_color: str, - btset: Set[str], - sc: SymbolColorer, - ) -> Optional[str]: - if line is None: - return None - in_arrow = " " - out_arrow = "" - if args.show_branches: - if line.line_num in btset: - in_arrow = sc.color_symbol(line.line_num, "~>") + line_color - if line.branch_target is not None: - out_arrow = " " + sc.color_symbol(line.branch_target + ":", "~>") - out = pad_mnemonic(out) - return f"{line_color}{line.line_num} {in_arrow} {out}{Style.RESET_ALL}{out_arrow}" - - part1 = format_part(out1, line1, line_color1, bts1, sc5) - part2 = format_part(out2, line2, line_color2, bts2, sc6) - key2 = line2.original if line2 else None - - mid = f"{sym_color}{line_prefix}" - - if line2: - for source_line in line2.source_lines: - color = Style.DIM - # File names and function names - if source_line and source_line[0] != "│": - color += Style.BRIGHT - # Function names - if source_line.endswith("():"): - # Underline. Colorama does not provide this feature, unfortunately. - color += "\u001b[4m" - try: - source_line = cxxfilt.demangle( - source_line[:-3], external_only=False - ) - except: - pass - output.append( - OutputLine( - None, - f" {color}{source_line}{Style.RESET_ALL}", - source_line, - ) - ) - - fmt2 = mid + " " + (part2 or "") - output.append(OutputLine(part1, fmt2, key2)) - - return output - - -def chunk_diff(diff: List[OutputLine]) -> List[Union[List[OutputLine], OutputLine]]: - cur_right: List[OutputLine] = [] - chunks: List[Union[List[OutputLine], OutputLine]] = [] - for output_line in diff: - if output_line.base is not None: - chunks.append(cur_right) - chunks.append(output_line) - cur_right = [] - else: - cur_right.append(output_line) - chunks.append(cur_right) - return chunks - - -def format_diff( - old_diff: List[OutputLine], new_diff: List[OutputLine] -) -> Tuple[str, List[str]]: - old_chunks = chunk_diff(old_diff) - new_chunks = chunk_diff(new_diff) - output: List[Tuple[str, OutputLine, OutputLine]] = [] - assert len(old_chunks) == len(new_chunks), "same target" - empty = OutputLine("", "", None) - for old_chunk, new_chunk in zip(old_chunks, new_chunks): - if isinstance(old_chunk, list): - assert isinstance(new_chunk, list) - if not old_chunk and not new_chunk: - # Most of the time lines sync up without insertions/deletions, - # and there's no interdiffing to be done. - continue - differ = difflib.SequenceMatcher(a=old_chunk, b=new_chunk, autojunk=False) - for (tag, i1, i2, j1, j2) in differ.get_opcodes(): - if tag in ["equal", "replace"]: - for i, j in zip(range(i1, i2), range(j1, j2)): - output.append(("", old_chunk[i], new_chunk[j])) - if tag in ["insert", "replace"]: - for j in range(j1 + i2 - i1, j2): - output.append(("", empty, new_chunk[j])) - if tag in ["delete", "replace"]: - for i in range(i1 + j2 - j1, i2): - output.append(("", old_chunk[i], empty)) - else: - assert isinstance(new_chunk, OutputLine) - assert new_chunk.base - # old_chunk.base and new_chunk.base have the same text since - # both diffs are based on the same target, but they might - # differ in color. Use the new version. - output.append((new_chunk.base, old_chunk, new_chunk)) - - # TODO: status line, with e.g. approximate permuter score? - width = args.column_width - if args.threeway: - header_line = "TARGET".ljust(width) + " CURRENT".ljust(width) + " PREVIOUS" - diff_lines = [ - ansi_ljust(base, width) - + ansi_ljust(new.fmt2, width) - + (old.fmt2 or "-" if old != new else "") - for (base, old, new) in output - ] - else: - header_line = "" - diff_lines = [ - ansi_ljust(base, width) + new.fmt2 - for (base, old, new) in output - if base or new.key2 is not None - ] - return header_line, diff_lines - - -def debounced_fs_watch( - targets: List[str], - outq: "queue.Queue[Optional[float]]", - debounce_delay: float, -) -> None: - import watchdog.events # type: ignore - import watchdog.observers # type: ignore - - class WatchEventHandler(watchdog.events.FileSystemEventHandler): # type: ignore - def __init__( - self, queue: "queue.Queue[float]", file_targets: List[str] - ) -> None: - self.queue = queue - self.file_targets = file_targets - - def on_modified(self, ev: object) -> None: - if isinstance(ev, watchdog.events.FileModifiedEvent): - self.changed(ev.src_path) - - def on_moved(self, ev: object) -> None: - if isinstance(ev, watchdog.events.FileMovedEvent): - self.changed(ev.dest_path) - - def should_notify(self, path: str) -> bool: - for target in self.file_targets: - if path == target: - return True - if args.make and any( - path.endswith(suffix) for suffix in FS_WATCH_EXTENSIONS - ): - return True - return False - - def changed(self, path: str) -> None: - if self.should_notify(path): - self.queue.put(time.time()) - - def debounce_thread() -> NoReturn: - listenq: "queue.Queue[float]" = queue.Queue() - file_targets: List[str] = [] - event_handler = WatchEventHandler(listenq, file_targets) - observer = watchdog.observers.Observer() - observed = set() - for target in targets: - if os.path.isdir(target): - observer.schedule(event_handler, target, recursive=True) - else: - file_targets.append(target) - target = os.path.dirname(target) or "." - if target not in observed: - observed.add(target) - observer.schedule(event_handler, target) - observer.start() - while True: - t = listenq.get() - more = True - while more: - delay = t + debounce_delay - time.time() - if delay > 0: - time.sleep(delay) - # consume entire queue - more = False - try: - while True: - t = listenq.get(block=False) - more = True - except queue.Empty: - pass - outq.put(t) - - th = threading.Thread(target=debounce_thread, daemon=True) - th.start() - - -class Display: - basedump: str - mydump: str - emsg: Optional[str] - last_diff_output: Optional[List[OutputLine]] - pending_update: Optional[Tuple[str, bool]] - ready_queue: "queue.Queue[None]" - watch_queue: "queue.Queue[Optional[float]]" - less_proc: "Optional[subprocess.Popen[bytes]]" - - def __init__(self, basedump: str, mydump: str) -> None: - self.basedump = basedump - self.mydump = mydump - self.emsg = None - self.last_diff_output = None - - def run_less(self) -> "Tuple[subprocess.Popen[bytes], subprocess.Popen[bytes]]": - if self.emsg is not None: - output = self.emsg - else: - diff_output = do_diff(self.basedump, self.mydump) - last_diff_output = self.last_diff_output or diff_output - if args.threeway != "base" or not self.last_diff_output: - self.last_diff_output = diff_output - header, diff_lines = format_diff(last_diff_output, diff_output) - header_lines = [header] if header else [] - output = "\n".join(header_lines + diff_lines[args.skip_lines :]) - - # Pipe the output through 'tail' and only then to less, to ensure the - # write call doesn't block. ('tail' has to buffer all its input before - # it starts writing.) This also means we don't have to deal with pipe - # closure errors. - buffer_proc = subprocess.Popen( - BUFFER_CMD, stdin=subprocess.PIPE, stdout=subprocess.PIPE - ) - less_proc = subprocess.Popen(LESS_CMD, stdin=buffer_proc.stdout) - assert buffer_proc.stdin - assert buffer_proc.stdout - buffer_proc.stdin.write(output.encode()) - buffer_proc.stdin.close() - buffer_proc.stdout.close() - return (buffer_proc, less_proc) - - def run_sync(self) -> None: - proca, procb = self.run_less() - procb.wait() - proca.wait() - - def run_async(self, watch_queue: "queue.Queue[Optional[float]]") -> None: - self.watch_queue = watch_queue - self.ready_queue = queue.Queue() - self.pending_update = None - dthread = threading.Thread(target=self.display_thread) - dthread.start() - self.ready_queue.get() - - def display_thread(self) -> None: - proca, procb = self.run_less() - self.less_proc = procb - self.ready_queue.put(None) - while True: - ret = procb.wait() - proca.wait() - self.less_proc = None - if ret != 0: - # fix the terminal - os.system("tput reset") - if ret != 0 and self.pending_update is not None: - # killed by program with the intent to refresh - msg, error = self.pending_update - self.pending_update = None - if not error: - self.mydump = msg - self.emsg = None - else: - self.emsg = msg - proca, procb = self.run_less() - self.less_proc = procb - self.ready_queue.put(None) - else: - # terminated by user, or killed - self.watch_queue.put(None) - self.ready_queue.put(None) - break - - def progress(self, msg: str) -> None: - # Write message to top-left corner - sys.stdout.write("\x1b7\x1b[1;1f{}\x1b8".format(msg + " ")) - sys.stdout.flush() - - def update(self, text: str, error: bool) -> None: - if not error and not self.emsg and text == self.mydump: - self.progress("Unchanged. ") - return - self.pending_update = (text, error) - if not self.less_proc: - return - self.less_proc.kill() - self.ready_queue.get() - - def terminate(self) -> None: - if not self.less_proc: - return - self.less_proc.kill() - self.ready_queue.get() - - -def main() -> None: - if args.diff_elf_symbol: - make_target, basecmd, mycmd = dump_elf() - elif args.diff_obj: - make_target, basecmd, mycmd = dump_objfile() - else: - make_target, basecmd, mycmd = dump_binary() - - map_build_target_fn = getattr(diff_settings, "map_build_target", None) - if map_build_target_fn: - make_target = map_build_target_fn(make_target=make_target) - - if args.write_asm is not None: - mydump = run_objdump(mycmd) - with open(args.write_asm, "w") as f: - f.write(mydump) - print(f"Wrote assembly to {args.write_asm}.") - sys.exit(0) - - if args.base_asm is not None: - with open(args.base_asm) as f: - basedump = f.read() - else: - basedump = run_objdump(basecmd) - - mydump = run_objdump(mycmd) - - display = Display(basedump, mydump) - - if not args.watch: - display.run_sync() - else: - if not args.make: - yn = input( - "Warning: watch-mode (-w) enabled without auto-make (-m). " - "You will have to run make manually. Ok? (Y/n) " - ) - if yn.lower() == "n": - return - if args.make: - watch_sources = None - watch_sources_for_target_fn = getattr( - diff_settings, "watch_sources_for_target", None - ) - if watch_sources_for_target_fn: - watch_sources = watch_sources_for_target_fn(make_target) - watch_sources = watch_sources or source_directories - if not watch_sources: - fail("Missing source_directories config, don't know what to watch.") - else: - watch_sources = [make_target] - q: "queue.Queue[Optional[float]]" = queue.Queue() - debounced_fs_watch(watch_sources, q, DEBOUNCE_DELAY) - display.run_async(q) - last_build = 0.0 - try: - while True: - t = q.get() - if t is None: - break - if t < last_build: - continue - last_build = time.time() - if args.make: - display.progress("Building...") - ret = run_make_capture_output(make_target) - if ret.returncode != 0: - display.update( - ret.stderr.decode("utf-8-sig", "replace") - or ret.stdout.decode("utf-8-sig", "replace"), - error=True, - ) - continue - mydump = run_objdump(mycmd) - display.update(mydump, error=False) - except KeyboardInterrupt: - display.terminate() - - -main() diff --git a/asm-differ/mypy.ini b/asm-differ/mypy.ini deleted file mode 100644 index f7a01b342..000000000 --- a/asm-differ/mypy.ini +++ /dev/null @@ -1,16 +0,0 @@ -[mypy] -check_untyped_defs = True -disallow_any_generics = True -disallow_incomplete_defs = True -disallow_subclassing_any = True -disallow_untyped_calls = True -disallow_untyped_decorators = True -disallow_untyped_defs = True -no_implicit_optional = True -warn_redundant_casts = True -warn_return_any = True -warn_unused_ignores = True -python_version = 3.6 - -[mypy-diff_settings] -ignore_errors = True diff --git a/asm-differ/screenshot.png b/asm-differ/screenshot.png deleted file mode 100644 index 323055532..000000000 Binary files a/asm-differ/screenshot.png and /dev/null differ diff --git a/asm/EntryPoint.s b/asm.old/asm/EntryPoint.s similarity index 100% rename from asm/EntryPoint.s rename to asm.old/asm/EntryPoint.s diff --git a/asm/boot.s b/asm.old/asm/boot.s similarity index 100% rename from asm/boot.s rename to asm.old/asm/boot.s diff --git a/asm/data/kirby.u.1116010.s b/asm.old/asm/data/kirby.u.1116010.s similarity index 100% rename from asm/data/kirby.u.1116010.s rename to asm.old/asm/data/kirby.u.1116010.s diff --git a/asm/data/kirby.u.250320.s b/asm.old/asm/data/kirby.u.250320.s similarity index 100% rename from asm/data/kirby.u.250320.s rename to asm.old/asm/data/kirby.u.250320.s diff --git a/asm/data/kirby.u.2A8CB0.s b/asm.old/asm/data/kirby.u.2A8CB0.s similarity index 100% rename from asm/data/kirby.u.2A8CB0.s rename to asm.old/asm/data/kirby.u.2A8CB0.s diff --git a/asm/data/kirby.u.2B1510.s b/asm.old/asm/data/kirby.u.2B1510.s similarity index 100% rename from asm/data/kirby.u.2B1510.s rename to asm.old/asm/data/kirby.u.2B1510.s diff --git a/asm/data/kirby.u.3E1400.s b/asm.old/asm/data/kirby.u.3E1400.s similarity index 100% rename from asm/data/kirby.u.3E1400.s rename to asm.old/asm/data/kirby.u.3E1400.s diff --git a/asm/data/kirby.u.3E6BC0.s b/asm.old/asm/data/kirby.u.3E6BC0.s similarity index 100% rename from asm/data/kirby.u.3E6BC0.s rename to asm.old/asm/data/kirby.u.3E6BC0.s diff --git a/asm/data/kirby.u.49F590.s b/asm.old/asm/data/kirby.u.49F590.s similarity index 100% rename from asm/data/kirby.u.49F590.s rename to asm.old/asm/data/kirby.u.49F590.s diff --git a/asm/data/kirby.u.4A0340.s b/asm.old/asm/data/kirby.u.4A0340.s similarity index 100% rename from asm/data/kirby.u.4A0340.s rename to asm.old/asm/data/kirby.u.4A0340.s diff --git a/asm/data/kirby.u.4A3B60.s b/asm.old/asm/data/kirby.u.4A3B60.s similarity index 100% rename from asm/data/kirby.u.4A3B60.s rename to asm.old/asm/data/kirby.u.4A3B60.s diff --git a/asm/data/kirby.u.4AA8F0.s b/asm.old/asm/data/kirby.u.4AA8F0.s similarity index 100% rename from asm/data/kirby.u.4AA8F0.s rename to asm.old/asm/data/kirby.u.4AA8F0.s diff --git a/asm/kirby.u.7E2D70.s b/asm.old/asm/kirby.u.7E2D70.s similarity index 100% rename from asm/kirby.u.7E2D70.s rename to asm.old/asm/kirby.u.7E2D70.s diff --git a/asm/non_matchings/ovl0/ovl0/func_80000A44.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_80000A44.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_80000A44.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_80000A44.s diff --git a/asm/non_matchings/ovl0/ovl0/func_80000F78.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_80000F78.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_80000F78.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_80000F78.s diff --git a/asm/non_matchings/ovl0/ovl0/func_800019BC.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_800019BC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_800019BC.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_800019BC.s diff --git a/asm/non_matchings/ovl0/ovl0/func_80001E20.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_80001E20.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_80001E20.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_80001E20.s diff --git a/asm/non_matchings/ovl0/ovl0/func_80001FAC.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_80001FAC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_80001FAC.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_80001FAC.s diff --git a/asm/non_matchings/ovl0/ovl0/func_8000206C.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_8000206C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_8000206C.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_8000206C.s diff --git a/asm/non_matchings/ovl0/ovl0/func_800022DC.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_800022DC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_800022DC.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_800022DC.s diff --git a/asm/non_matchings/ovl0/ovl0/func_80002598.s b/asm.old/asm/non_matchings/ovl0/ovl0/func_80002598.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0/func_80002598.s rename to asm.old/asm/non_matchings/ovl0/ovl0/func_80002598.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004250.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004250.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004250.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004250.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_800045C0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_800045C0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_800045C0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_800045C0.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_800046FC.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_800046FC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_800046FC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_800046FC.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004810.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004810.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004810.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004810.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_800049BC.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_800049BC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_800049BC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_800049BC.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004A3C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004A3C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004A3C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004A3C.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004ABC.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004ABC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004ABC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004ABC.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004B50.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004B50.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004B50.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004B50.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004BD4.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004BD4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004BD4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004BD4.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004C5C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004C5C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004C5C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004C5C.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004D00.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004D00.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004D00.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004D00.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004D34.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004D34.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004D34.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004D34.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004D68.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004D68.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004D68.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004D68.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004DC8.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004DC8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004DC8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004DC8.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_80004E98.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004E98.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_80004E98.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_80004E98.s diff --git a/asm/non_matchings/ovl0/ovl0_2/func_800051E0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2/func_800051E0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2/func_800051E0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2/func_800051E0.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80005834.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80005834.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80005834.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80005834.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80005F10.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80005F10.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80005F10.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80005F10.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000630C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000630C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000630C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000630C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80006740.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80006740.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80006740.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80006740.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_800067E0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800067E0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_800067E0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800067E0.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_800068E4.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800068E4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_800068E4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800068E4.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000708C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000708C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000708C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000708C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80007380.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80007380.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80007380.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80007380.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_800076D0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800076D0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_800076D0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800076D0.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80007944.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80007944.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80007944.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80007944.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80007BF4.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80007BF4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80007BF4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80007BF4.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_800080C0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800080C0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_800080C0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_800080C0.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80008EC4.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80008EC4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80008EC4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80008EC4.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80009658.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009658.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80009658.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009658.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80009A44.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009A44.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80009A44.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009A44.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80009B5C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009B5C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80009B5C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009B5C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80009BD4.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009BD4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80009BD4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009BD4.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80009CE8.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009CE8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80009CE8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009CE8.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80009D5C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009D5C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80009D5C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009D5C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_80009DF4.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009DF4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_80009DF4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_80009DF4.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000A0C0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000A0C0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000A0C0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000A0C0.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000A180.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000A180.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000A180.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000A180.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000A350.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000A350.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000A350.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000A350.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000AC3C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000AC3C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000AC3C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000AC3C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000AE84.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000AE84.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000AE84.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000AE84.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B3E0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B3E0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B3E0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B3E0.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B448.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B448.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B448.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B448.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B4D4.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B4D4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B4D4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B4D4.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B57C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B57C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B57C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B57C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B8C0.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B8C0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B8C0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B8C0.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B908.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B908.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B908.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B908.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B9CC.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B9CC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B9CC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B9CC.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000B9FC.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B9FC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000B9FC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000B9FC.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA2C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA2C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000BA2C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA2C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA5C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA5C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000BA5C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA5C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA8C.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA8C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000BA8C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BA8C.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000BABC.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BABC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000BABC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BABC.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000BAEC.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BAEC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000BAEC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BAEC.s diff --git a/asm/non_matchings/ovl0/ovl0_2_5/func_8000BC34.s b/asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BC34.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_2_5/func_8000BC34.s rename to asm.old/asm/non_matchings/ovl0/ovl0_2_5/func_8000BC34.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000C10C.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C10C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000C10C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C10C.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000C144.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C144.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000C144.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C144.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000C17C.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C17C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000C17C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C17C.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000C218.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C218.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000C218.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C218.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000C2C8.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C2C8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000C2C8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C2C8.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000C3D8.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C3D8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000C3D8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000C3D8.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000CE18.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000CE18.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000CE18.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000CE18.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000CECC.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000CECC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000CECC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000CECC.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000CF84.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000CF84.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000CF84.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000CF84.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000D030.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000D030.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000D030.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000D030.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000D0AC.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000D0AC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000D0AC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000D0AC.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000D35C.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000D35C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000D35C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000D35C.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000DE30.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000DE30.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000DE30.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000DE30.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000E324.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E324.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000E324.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E324.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000E434.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E434.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000E434.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E434.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000E474.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E474.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000E474.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E474.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000E4E4.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E4E4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000E4E4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E4E4.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000E554.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E554.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000E554.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E554.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000E818.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E818.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000E818.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000E818.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000EC98.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000EC98.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000EC98.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000EC98.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F054.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F054.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F054.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F054.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F230.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F230.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F230.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F230.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F448.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F448.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F448.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F448.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F480.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F480.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F480.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F480.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F4B0.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F4B0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F4B0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F4B0.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F4E0.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F4E0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F4E0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F4E0.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F510.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F510.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F510.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F510.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F6EC.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F6EC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F6EC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F6EC.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F754.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F754.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F754.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F754.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000F980.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F980.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000F980.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000F980.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000FB10.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FB10.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000FB10.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FB10.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000FCE4.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FCE4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000FCE4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FCE4.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000FD78.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FD78.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000FD78.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FD78.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000FE2C.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FE2C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000FE2C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FE2C.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8000FE64.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FE64.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8000FE64.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8000FE64.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_8001074C.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_8001074C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_8001074C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_8001074C.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_80010988.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_80010988.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_80010988.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_80010988.s diff --git a/asm/non_matchings/ovl0/ovl0_3/func_800109B4.s b/asm.old/asm/non_matchings/ovl0/ovl0_3/func_800109B4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_3/func_800109B4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_3/func_800109B4.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80010B58.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80010B58.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80010B58.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80010B58.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80010D28.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80010D28.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80010D28.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80010D28.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80010EF8.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80010EF8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80010EF8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80010EF8.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_8001103C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001103C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_8001103C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001103C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80011180.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80011180.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80011180.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80011180.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80013300.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80013300.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80013300.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80013300.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800140FC.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800140FC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800140FC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800140FC.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80014264.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014264.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80014264.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014264.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800143A4.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800143A4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800143A4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800143A4.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800143D4.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800143D4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800143D4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800143D4.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80014768.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014768.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80014768.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014768.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_8001479C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001479C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_8001479C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001479C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800147C8.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800147C8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800147C8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800147C8.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80014B4C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014B4C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80014B4C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014B4C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80014C78.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014C78.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80014C78.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014C78.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80014DF0.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014DF0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80014DF0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014DF0.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80014FA4.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014FA4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80014FA4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80014FA4.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_8001503C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001503C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_8001503C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001503C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80015368.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015368.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80015368.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015368.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800156C4.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800156C4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800156C4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800156C4.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_8001585C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001585C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_8001585C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001585C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_8001588C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001588C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_8001588C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001588C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80015BFC.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015BFC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80015BFC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015BFC.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80015DC4.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015DC4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80015DC4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015DC4.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80015F78.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015F78.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80015F78.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80015F78.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800162D8.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800162D8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800162D8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800162D8.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_8001663C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001663C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_8001663C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_8001663C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80016940.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80016940.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80016940.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80016940.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80016DE8.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80016DE8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80016DE8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80016DE8.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800171E0.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800171E0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800171E0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800171E0.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80017B6C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80017B6C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80017B6C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80017B6C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80017C7C.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80017C7C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80017C7C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80017C7C.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80017DB0.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80017DB0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80017DB0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80017DB0.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_80018170.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_80018170.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_80018170.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_80018170.s diff --git a/asm/non_matchings/ovl0/ovl0_4/func_800183BC.s b/asm.old/asm/non_matchings/ovl0/ovl0_4/func_800183BC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_4/func_800183BC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_4/func_800183BC.s diff --git a/asm/non_matchings/ovl0/ovl0_5/func_800191F8.s b/asm.old/asm/non_matchings/ovl0/ovl0_5/func_800191F8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_5/func_800191F8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_5/func_800191F8.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_0x80040000.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_0x80040000.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_0x80040000.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_0x80040000.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001A488.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001A488.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001A488.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001A488.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001AD90.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001AD90.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001AD90.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001AD90.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001B008.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B008.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001B008.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B008.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001B234.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B234.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001B234.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B234.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001B454.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B454.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001B454.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B454.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001B5E4.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B5E4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001B5E4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B5E4.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001B838.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B838.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001B838.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B838.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001B9B8.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B9B8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001B9B8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001B9B8.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BA04.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BA04.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BA04.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BA04.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BA60.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BA60.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BA60.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BA60.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BAC4.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BAC4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BAC4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BAC4.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BB30.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BB30.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BB30.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BB30.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BBAC.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BBAC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BBAC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BBAC.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BCE0.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BCE0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BCE0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BCE0.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BF88.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BF88.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BF88.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BF88.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001BFDC.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BFDC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001BFDC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001BFDC.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001C348.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C348.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001C348.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C348.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001C73C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C73C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001C73C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C73C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001C874.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C874.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001C874.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C874.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001C8B8.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C8B8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001C8B8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C8B8.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001C90C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C90C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001C90C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C90C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001C968.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C968.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001C968.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C968.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001C9CC.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C9CC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001C9CC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001C9CC.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CA40.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CA40.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CA40.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CA40.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CB0C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CB0C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CB0C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CB0C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CB4C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CB4C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CB4C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CB4C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CB9C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CB9C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CB9C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CB9C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CBF0.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CBF0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CBF0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CBF0.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CCBC.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CCBC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CCBC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CCBC.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CCFC.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CCFC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CCFC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CCFC.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CD4C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CD4C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CD4C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CD4C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CDA0.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CDA0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CDA0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CDA0.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CE30.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CE30.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CE30.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CE30.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CE68.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CE68.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CE68.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CE68.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CEB4.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CEB4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CEB4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CEB4.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CF00.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CF00.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CF00.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CF00.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001CF90.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CF90.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001CF90.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001CF90.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D014.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D014.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D014.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D014.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D060.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D060.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D060.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D060.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D0B4.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D0B4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D0B4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D0B4.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D11C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D11C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D11C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D11C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D184.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D184.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D184.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D184.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D200.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D200.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D200.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D200.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D264.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D264.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D264.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D264.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D2DC.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D2DC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D2DC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D2DC.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D34C.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D34C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D34C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D34C.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D3D0.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D3D0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D3D0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D3D0.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D514.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D514.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D514.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D514.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D6A0.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D6A0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D6A0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D6A0.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D800.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D800.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D800.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D800.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001D934.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D934.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001D934.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001D934.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001DA48.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DA48.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001DA48.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DA48.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001DB54.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DB54.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001DB54.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DB54.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001DDE0.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DDE0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001DDE0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DDE0.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001DF68.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DF68.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001DF68.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001DF68.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001E000.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E000.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001E000.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E000.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001E104.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E104.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001E104.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E104.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001E300.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E300.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001E300.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E300.s diff --git a/asm/non_matchings/ovl0/ovl0_6/func_8001E344.s b/asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E344.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_6/func_8001E344.s rename to asm.old/asm/non_matchings/ovl0/ovl0_6/func_8001E344.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E3D4.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E3D4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E3D4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E3D4.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E450.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E450.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E450.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E450.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E490.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E490.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E490.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E490.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E510.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E510.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E510.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E510.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E5C8.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E5C8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E5C8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E5C8.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E660.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E660.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E660.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E660.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E6B8.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E6B8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E6B8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E6B8.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E724.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E724.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E724.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E724.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E7A4.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E7A4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E7A4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E7A4.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E8D0.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E8D0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E8D0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E8D0.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E9A0.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E9A0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E9A0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E9A0.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001E9EC.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E9EC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001E9EC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001E9EC.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001ECC0.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001ECC0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001ECC0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001ECC0.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001F234.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F234.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001F234.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F234.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001F24C.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F24C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001F24C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F24C.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001F2E0.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F2E0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001F2E0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F2E0.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001F81C.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F81C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001F81C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001F81C.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_8001FD64.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001FD64.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_8001FD64.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_8001FD64.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020878.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020878.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020878.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020878.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020888.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020888.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020888.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020888.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020894.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020894.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020894.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020894.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_800208A0.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_800208A0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_800208A0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_800208A0.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020914.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020914.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020914.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020914.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020968.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020968.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020968.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020968.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020998.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020998.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020998.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020998.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020A20.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020A20.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020A20.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020A20.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020ABC.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020ABC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020ABC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020ABC.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020B34.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020B34.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020B34.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020B34.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020BB8.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020BB8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020BB8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020BB8.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020BE8.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020BE8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020BE8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020BE8.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020C70.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020C70.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020C70.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020C70.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020C88.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020C88.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020C88.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020C88.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020D00.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020D00.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020D00.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020D00.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020D58.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020D58.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020D58.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020D58.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020DAC.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020DAC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020DAC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020DAC.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020E00.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E00.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020E00.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E00.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020E0C.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E0C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020E0C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E0C.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020E5C.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E5C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020E5C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E5C.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020E8C.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E8C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020E8C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E8C.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020E9C.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E9C.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020E9C.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020E9C.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020EA8.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020EA8.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020EA8.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020EA8.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020EB4.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020EB4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020EB4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020EB4.s diff --git a/asm/non_matchings/ovl0/ovl0_7/func_80020ECC.s b/asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020ECC.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_7/func_80020ECC.s rename to asm.old/asm/non_matchings/ovl0/ovl0_7/func_80020ECC.s diff --git a/asm/non_matchings/ovl0/ovl0_8/fatal_printf.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/fatal_printf.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/fatal_printf.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/fatal_printf.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80020F40.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80020F40.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80020F40.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80020F40.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80021444.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021444.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80021444.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021444.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_800215F0.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_800215F0.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_800215F0.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_800215F0.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80021618.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021618.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80021618.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021618.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80021668.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021668.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80021668.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021668.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80021764.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021764.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80021764.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021764.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80021CB4.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021CB4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80021CB4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021CB4.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80021D34.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021D34.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80021D34.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021D34.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80021E00.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021E00.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80021E00.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80021E00.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_800222C4.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_800222C4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_800222C4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_800222C4.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80022A38.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022A38.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80022A38.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022A38.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80022A44.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022A44.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80022A44.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022A44.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80022BC4.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022BC4.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80022BC4.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022BC4.s diff --git a/asm/non_matchings/ovl0/ovl0_8/func_80022E04.s b/asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022E04.s similarity index 100% rename from asm/non_matchings/ovl0/ovl0_8/func_80022E04.s rename to asm.old/asm/non_matchings/ovl0/ovl0_8/func_80022E04.s diff --git a/asm/non_matchings/ovl0_1/func_80002FC0.s b/asm.old/asm/non_matchings/ovl0_1/func_80002FC0.s similarity index 100% rename from asm/non_matchings/ovl0_1/func_80002FC0.s rename to asm.old/asm/non_matchings/ovl0_1/func_80002FC0.s diff --git a/asm/non_matchings/ovl0_1/func_8000385C.s b/asm.old/asm/non_matchings/ovl0_1/func_8000385C.s similarity index 100% rename from asm/non_matchings/ovl0_1/func_8000385C.s rename to asm.old/asm/non_matchings/ovl0_1/func_8000385C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009B550_ovl1.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009B550_ovl1.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009B550_ovl1.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009B550_ovl1.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009B5E8.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009B5E8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009B5E8.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009B5E8.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009B69C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009B69C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009B69C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009B69C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009B6F0.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009B6F0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009B6F0.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009B6F0.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009B72C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009B72C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009B72C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009B72C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009B768.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009B768.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009B768.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009B768.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009B99C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009B99C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009B99C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009B99C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BA68.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BA68.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BA68.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BA68.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BA74.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BA74.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BA74.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BA74.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BC4C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BC4C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BC4C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BC4C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BD3C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BD3C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BD3C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BD3C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BE04.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BE04.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BE04.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BE04.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BE54.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BE54.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BE54.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BE54.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BF7C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BF7C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BF7C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BF7C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BFA8.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BFA8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BFA8.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BFA8.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009BFD4.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009BFD4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009BFD4.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009BFD4.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009C0E4.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009C0E4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009C0E4.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009C0E4.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009C154.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009C154.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009C154.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009C154.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009C18C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009C18C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009C18C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009C18C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009C1C8.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009C1C8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009C1C8.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009C1C8.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009C350.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009C350.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009C350.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009C350.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009C44C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009C44C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009C44C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009C44C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009C4E0.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009C4E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009C4E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009C4E0.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009E834.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009E834.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009E834.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009E834.s diff --git a/asm/non_matchings/ovl1/ovl1/func_8009E8F4.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_8009E8F4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_8009E8F4.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_8009E8F4.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A04B8.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A04B8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A04B8.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A04B8.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A0558.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A0558.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A0558.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A0558.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A09AC.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A09AC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A09AC.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A09AC.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A194C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A194C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A194C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A194C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A19EC.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A19EC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A19EC.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A19EC.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A1F30.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A1F30.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A1F30.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A1F30.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A2024.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A2024.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A2024.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A2024.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A206C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A206C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A206C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A206C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A2080.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A2080.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A2080.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A2080.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A22A8.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A22A8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A22A8.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A22A8.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A22D4.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A22D4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A22D4.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A22D4.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A2300.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A2300.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A2300.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A2300.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A238C.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A238C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A238C.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A238C.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A2440.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A2440.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A2440.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A2440.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A24C4.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A24C4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A24C4.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A24C4.s diff --git a/asm/non_matchings/ovl1/ovl1/func_800A2550.s b/asm.old/asm/non_matchings/ovl1/ovl1/func_800A2550.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1/func_800A2550.s rename to asm.old/asm/non_matchings/ovl1/ovl1/func_800A2550.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A2C80.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2C80.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A2C80.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2C80.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A2CE4.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2CE4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A2CE4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2CE4.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A2D5C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2D5C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A2D5C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2D5C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A2D68.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2D68.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A2D68.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2D68.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A2E98.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2E98.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A2E98.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A2E98.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3150.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A3150.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A3150.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A3150.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3230.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A3230.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A3230.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A3230.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A336C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A336C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A336C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A336C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3408.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A3408.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A3408.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A3408.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A34C8.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A34C8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A34C8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A34C8.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A377C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A377C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A377C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A377C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A41B0.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A41B0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A41B0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A41B0.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A428C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A428C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A428C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A428C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A4414.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4414.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A4414.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4414.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A4598.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4598.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A4598.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4598.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A465C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A465C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A465C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A465C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A4DB8.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4DB8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A4DB8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4DB8.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A4F48.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4F48.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A4F48.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A4F48.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A509C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A509C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A509C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A509C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A52F0.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A52F0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A52F0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A52F0.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5404.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5404.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5404.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5404.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5468.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5468.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5468.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5468.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A54FC.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A54FC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A54FC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A54FC.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5660.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5660.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5660.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5660.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A56F4.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A56F4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A56F4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A56F4.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5744.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5744.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5744.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5744.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A57A0.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A57A0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A57A0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A57A0.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A58E4.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A58E4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A58E4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A58E4.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5A14.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5A14.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5A14.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5A14.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5AD8.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5AD8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5AD8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5AD8.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5B14.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5B14.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5B14.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5B14.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5B3C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5B3C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5B3C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5B3C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5B64.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5B64.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5B64.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5B64.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5BDC.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5BDC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5BDC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5BDC.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5C60.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5C60.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5C60.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5C60.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5D24.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5D24.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5D24.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5D24.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5D88.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5D88.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5D88.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5D88.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A5F94.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5F94.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A5F94.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A5F94.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A6208.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6208.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A6208.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6208.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A62D8.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A62D8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A62D8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A62D8.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A6534.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6534.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A6534.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6534.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A6820.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6820.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A6820.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6820.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A699C.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A699C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A699C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A699C.s diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A6A18.s b/asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6A18.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_1/func_800A6A18.s rename to asm.old/asm/non_matchings/ovl1/ovl1_1/func_800A6A18.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/0.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/0.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/1.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/1.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/1.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/1.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/10.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/10.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/10.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/10.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/11.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/11.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/11.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/11.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/12.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/12.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/12.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/12.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/13.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/13.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/13.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/13.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/14.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/14.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/14.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/14.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/15.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/15.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/15.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/15.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/16.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/16.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/16.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/16.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/17.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/17.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/17.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/17.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/18.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/18.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/18.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/18.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/19.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/19.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/19.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/19.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/2.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/2.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/2.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/2.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/20.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/20.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/20.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/20.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/21.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/21.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/21.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/21.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/22.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/22.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/22.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/22.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/23.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/23.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/23.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/23.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/3.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/3.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/3.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/3.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/4.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/4.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/5.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/5.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/5.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/5.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/6.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/6.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/6.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/6.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/7.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/7.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/7.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/7.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/8.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/8.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/9.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/9.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/9.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/9.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68E0.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68F4.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68F4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68F4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D68F4.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D6908.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D6908.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D6908.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D6908.s diff --git a/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D691C.s b/asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D691C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D691C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_10/ovl1_10/jtbl_800D691C.s diff --git a/asm/non_matchings/ovl1/ovl1_11/func_800BB588.s b/asm.old/asm/non_matchings/ovl1/ovl1_11/func_800BB588.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_11/func_800BB588.s rename to asm.old/asm/non_matchings/ovl1/ovl1_11/func_800BB588.s diff --git a/asm/non_matchings/ovl1/ovl1_11/func_800BB6B0.s b/asm.old/asm/non_matchings/ovl1/ovl1_11/func_800BB6B0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_11/func_800BB6B0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_11/func_800BB6B0.s diff --git a/asm/non_matchings/ovl1/ovl1_11/func_800BB98C.s b/asm.old/asm/non_matchings/ovl1/ovl1_11/func_800BB98C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_11/func_800BB98C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_11/func_800BB98C.s diff --git a/asm/non_matchings/ovl1/ovl1_12/func_800BBDC4.s b/asm.old/asm/non_matchings/ovl1/ovl1_12/func_800BBDC4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_12/func_800BBDC4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_12/func_800BBDC4.s diff --git a/asm/non_matchings/ovl1/ovl1_13/change_kirby_hp.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/change_kirby_hp.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/change_kirby_hp.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/change_kirby_hp.s diff --git a/asm/non_matchings/ovl1/ovl1_13/draw_hp_segment.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/draw_hp_segment.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/draw_hp_segment.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/draw_hp_segment.s diff --git a/asm/non_matchings/ovl1/ovl1_13/draw_lives_digit.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/draw_lives_digit.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/draw_lives_digit.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/draw_lives_digit.s diff --git a/asm/non_matchings/ovl1/ovl1_13/draw_star_segments.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/draw_star_segments.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/draw_star_segments.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/draw_star_segments.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC11C.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC11C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC11C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC11C.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC1FC.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC1FC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC1FC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC1FC.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC258.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC258.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC258.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC258.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC298.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC298.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC298.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC298.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC328.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC328.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC328.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC328.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC4C0.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC4C0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC4C0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC4C0.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC664.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC664.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC664.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC664.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC800.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC800.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC800.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC800.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BC9A4.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC9A4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BC9A4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BC9A4.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BCA5C.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BCA5C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BCA5C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BCA5C.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BCEEC.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BCEEC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BCEEC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BCEEC.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BD208.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD208.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BD208.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD208.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BD2F4.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD2F4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BD2F4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD2F4.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BD460.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD460.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BD460.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD460.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BD660.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD660.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BD660.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD660.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BD6E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD6E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BD6E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD6E0.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BD7FC.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD7FC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BD7FC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD7FC.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BD92C.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD92C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BD92C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BD92C.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BDAA8.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDAA8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BDAA8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDAA8.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BDB18.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDB18.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BDB18.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDB18.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BDD08.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDD08.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BDD08.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDD08.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BDD98.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDD98.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BDD98.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDD98.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BDE0C.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDE0C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BDE0C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDE0C.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BDF2C.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDF2C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BDF2C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDF2C.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BDFB8.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDFB8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BDFB8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BDFB8.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BE028.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE028.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BE028.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE028.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BE098.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE098.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BE098.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE098.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BE320.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE320.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BE320.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE320.s diff --git a/asm/non_matchings/ovl1/ovl1_13/func_800BE374.s b/asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE374.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_13/func_800BE374.s rename to asm.old/asm/non_matchings/ovl1/ovl1_13/func_800BE374.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A6BC0.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A6BC0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A6BC0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A6BC0.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A6E64.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A6E64.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A6E64.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A6E64.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A6F40.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A6F40.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A6F40.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A6F40.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A71A0.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A71A0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A71A0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A71A0.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A71E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A71E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A71E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A71E0.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A72AC.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A72AC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A72AC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A72AC.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7348.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7348.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7348.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7348.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7394.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7394.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7394.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7394.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A73B0.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A73B0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A73B0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A73B0.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A74D8.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A74D8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A74D8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A74D8.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7554.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7554.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7554.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7554.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A75B0.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A75B0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A75B0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A75B0.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7678.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7678.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7678.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7678.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A77E8.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A77E8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A77E8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A77E8.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7870.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7870.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7870.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7870.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A78D0.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A78D0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A78D0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A78D0.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7BF4.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7BF4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7BF4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7BF4.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7E48.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7E48.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7E48.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7E48.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7E7C.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7E7C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7E7C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7E7C.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7EB4.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7EB4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7EB4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7EB4.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7EE4.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7EE4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7EE4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7EE4.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7F10.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7F10.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7F10.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7F10.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A7F74.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7F74.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A7F74.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A7F74.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A802C.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A802C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A802C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A802C.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A8100.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A8100.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A8100.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A8100.s diff --git a/asm/non_matchings/ovl1/ovl1_2/func_800A8234.s b/asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A8234.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_2/func_800A8234.s rename to asm.old/asm/non_matchings/ovl1/ovl1_2/func_800A8234.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A82C0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A82C0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A82C0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A82C0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8310.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8310.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8310.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8310.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8358.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8358.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8358.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8358.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A840C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A840C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A840C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A840C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A84F0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A84F0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A84F0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A84F0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8518.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8518.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8518.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8518.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8540.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8540.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8540.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8540.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A855C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A855C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A855C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A855C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8564.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8564.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8564.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8564.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8578.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8578.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8578.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8578.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A86C8.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A86C8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A86C8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A86C8.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8724.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8724.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8724.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8724.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8934.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8934.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8934.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8934.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A89E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A89E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A89E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A89E0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8A7C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8A7C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8A7C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8A7C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8B0C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8B0C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8B0C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8B0C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8BAC.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8BAC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8BAC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8BAC.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8C40.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8C40.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8C40.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8C40.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8CE0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8CE0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8CE0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8CE0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8D64.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8D64.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8D64.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8D64.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8E54.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8E54.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8E54.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8E54.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A8EC0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8EC0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A8EC0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A8EC0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9088.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9088.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9088.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9088.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9250.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9250.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9250.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9250.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A94F4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A94F4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A94F4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A94F4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9648.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9648.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9648.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9648.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9760.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9760.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9760.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9760.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9864.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9864.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9864.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9864.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A99E4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A99E4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A99E4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A99E4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9A2C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9A2C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9A2C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9A2C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9B48.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9B48.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9B48.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9B48.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9C78.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9C78.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9C78.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9C78.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9D64.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9D64.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9D64.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9D64.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9DE4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9DE4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9DE4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9DE4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9EA4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9EA4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9EA4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9EA4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9EC4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9EC4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9EC4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9EC4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9F98.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9F98.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800A9F98.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800A9F98.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA038.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA038.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA038.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA038.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA0C4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA0C4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA0C4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA0C4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA154.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA154.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA154.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA154.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA2F0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA2F0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA2F0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA2F0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA368.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA368.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA368.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA368.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA3F0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA3F0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA3F0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA3F0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA49C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA49C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA49C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA49C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA5C4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA5C4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA5C4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA5C4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA608.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA608.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA608.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA608.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA78C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA78C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA78C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA78C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA7D0.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA7D0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA7D0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA7D0.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA864.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA864.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA864.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA864.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA888.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA888.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA888.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA888.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA8E4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA8E4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA8E4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA8E4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA934.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA934.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA934.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA934.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AA96C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA96C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AA96C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AA96C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AAB3C.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAB3C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AAB3C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAB3C.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AABD4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AABD4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AABD4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AABD4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AACC8.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AACC8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AACC8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AACC8.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AAF04.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAF04.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AAF04.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAF04.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AAF34.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAF34.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AAF34.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAF34.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AAFC4.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAFC4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AAFC4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AAFC4.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AB040.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AB040.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AB040.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AB040.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AB0A8.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AB0A8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AB0A8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AB0A8.s diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800AB0CC.s b/asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AB0CC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_3/func_800AB0CC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_3/func_800AB0CC.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AB680.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB680.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AB680.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB680.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AB6D8.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB6D8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AB6D8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB6D8.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AB790.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB790.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AB790.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB790.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AB804.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB804.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AB804.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AB804.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800ABB4C.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ABB4C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800ABB4C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ABB4C.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC5E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC5E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC5E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC5E0.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC610.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC610.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC610.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC610.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC688.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC688.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC688.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC688.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC700.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC700.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC700.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC700.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC794.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC794.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC794.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC794.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC820.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC820.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC820.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC820.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC8E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC8E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC8E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC8E0.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AC954.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC954.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AC954.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AC954.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800ACB7C.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ACB7C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800ACB7C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ACB7C.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800ACC30.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ACC30.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800ACC30.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ACC30.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800ACC68.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ACC68.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800ACC68.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ACC68.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AD1A0.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AD1A0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AD1A0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AD1A0.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800ADD14.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ADD14.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800ADD14.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800ADD14.s diff --git a/asm/non_matchings/ovl1/ovl1_5/func_800AE048.s b/asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AE048.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_5/func_800AE048.s rename to asm.old/asm/non_matchings/ovl1/ovl1_5/func_800AE048.s diff --git a/asm/non_matchings/ovl1/ovl1_6/func_800AE138.s b/asm.old/asm/non_matchings/ovl1/ovl1_6/func_800AE138.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_6/func_800AE138.s rename to asm.old/asm/non_matchings/ovl1/ovl1_6/func_800AE138.s diff --git a/asm/non_matchings/ovl1/ovl1_6/func_800AE7A8.s b/asm.old/asm/non_matchings/ovl1/ovl1_6/func_800AE7A8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_6/func_800AE7A8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_6/func_800AE7A8.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AEFFC.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AEFFC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AEFFC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AEFFC.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF0F4.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF0F4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF0F4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF0F4.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF27C.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF27C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF27C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF27C.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF3A0.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF3A0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF3A0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF3A0.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF408.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF408.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF408.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF408.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF4BC.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF4BC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF4BC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF4BC.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF618.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF618.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF618.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF618.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF7EC.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF7EC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF7EC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF7EC.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF920.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF920.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF920.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF920.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF96C.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF96C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF96C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF96C.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AF9B8.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF9B8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AF9B8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AF9B8.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AFA14.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFA14.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AFA14.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFA14.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AFA54.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFA54.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AFA54.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFA54.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AFBB4.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFBB4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AFBB4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFBB4.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800AFBEC.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFBEC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800AFBEC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800AFBEC.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B07B4.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B07B4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B07B4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B07B4.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B0F28.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B0F28.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B0F28.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B0F28.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B113C.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B113C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B113C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B113C.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B1378.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1378.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B1378.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1378.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B158C.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B158C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B158C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B158C.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B18B4.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B18B4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B18B4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B18B4.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B19B8.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B19B8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B19B8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B19B8.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B19F4.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B19F4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B19F4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B19F4.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B1C7C.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1C7C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B1C7C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1C7C.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B1E08.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1E08.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B1E08.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1E08.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B1F68.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1F68.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B1F68.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1F68.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B1F70.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1F70.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B1F70.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1F70.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B1FD0.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1FD0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B1FD0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B1FD0.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B20E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B20E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B20E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B20E0.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B21FC.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B21FC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B21FC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B21FC.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B2288.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2288.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B2288.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2288.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B2340.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2340.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B2340.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2340.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B26D8.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B26D8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B26D8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B26D8.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B2F54.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2F54.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B2F54.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2F54.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B2F90.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2F90.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B2F90.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B2F90.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B3008.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3008.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B3008.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3008.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B3070.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3070.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B3070.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3070.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B3094.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3094.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B3094.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3094.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B30BC.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B30BC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B30BC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B30BC.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B3158.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3158.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B3158.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3158.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B3234.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3234.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B3234.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3234.s diff --git a/asm/non_matchings/ovl1/ovl1_7/func_800B3520.s b/asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3520.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_7/func_800B3520.s rename to asm.old/asm/non_matchings/ovl1/ovl1_7/func_800B3520.s diff --git a/asm/non_matchings/ovl1/ovl1_8/func_800B50C4.s b/asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B50C4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_8/func_800B50C4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B50C4.s diff --git a/asm/non_matchings/ovl1/ovl1_8/func_800B531C.s b/asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B531C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_8/func_800B531C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B531C.s diff --git a/asm/non_matchings/ovl1/ovl1_8/func_800B6144.s b/asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B6144.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_8/func_800B6144.s rename to asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B6144.s diff --git a/asm/non_matchings/ovl1/ovl1_8/func_800B7E44.s b/asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B7E44.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_8/func_800B7E44.s rename to asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B7E44.s diff --git a/asm/non_matchings/ovl1/ovl1_8/func_800B83C8.s b/asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B83C8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_8/func_800B83C8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_8/func_800B83C8.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B86FC.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B86FC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B86FC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B86FC.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B87E0.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B87E0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B87E0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B87E0.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B891C.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B891C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B891C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B891C.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8AD4.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8AD4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8AD4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8AD4.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8B2C.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8B2C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8B2C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8B2C.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8B58.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8B58.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8B58.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8B58.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8B84.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8B84.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8B84.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8B84.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8BB0.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8BB0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8BB0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8BB0.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8BDC.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8BDC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8BDC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8BDC.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8C08.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8C08.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8C08.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8C08.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8C34.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8C34.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8C34.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8C34.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B8E00.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8E00.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B8E00.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B8E00.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9008.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9008.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9008.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9008.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9068.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9068.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9068.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9068.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9104.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9104.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9104.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9104.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B91B8.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B91B8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B91B8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B91B8.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B922C.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B922C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B922C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B922C.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B92B4.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B92B4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B92B4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B92B4.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B92D8.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B92D8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B92D8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B92D8.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B94FC.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B94FC.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B94FC.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B94FC.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B96A0.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B96A0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B96A0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B96A0.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9C50.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9C50.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9C50.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9C50.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9CB4.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9CB4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9CB4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9CB4.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9D60.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9D60.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9D60.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9D60.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9DC8.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9DC8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9DC8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9DC8.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9DF8.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9DF8.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9DF8.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9DF8.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9F64.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9F64.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9F64.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9F64.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800B9FE0.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9FE0.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800B9FE0.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800B9FE0.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800BA284.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800BA284.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800BA284.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800BA284.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800BA40C.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800BA40C.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800BA40C.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800BA40C.s diff --git a/asm/non_matchings/ovl1/ovl1_9/func_800BA5C4.s b/asm.old/asm/non_matchings/ovl1/ovl1_9/func_800BA5C4.s similarity index 100% rename from asm/non_matchings/ovl1/ovl1_9/func_800BA5C4.s rename to asm.old/asm/non_matchings/ovl1/ovl1_9/func_800BA5C4.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DC598_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DC598_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DC598_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DC598_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DCA44_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCA44_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DCA44_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCA44_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DCCB8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCCB8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DCCB8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCCB8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DCF48_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCF48_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DCF48_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCF48_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DCFC4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCFC4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DCFC4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DCFC4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DD2CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD2CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DD2CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD2CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DD390_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD390_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DD390_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD390_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DD674_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD674_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DD674_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD674_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DD760_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD760_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DD760_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DD760_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DDAC8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DDAC8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DDAC8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DDAC8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DDB88_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DDB88_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DDB88_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DDB88_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DDEB8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DDEB8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DDEB8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DDEB8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DE124_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DE124_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DE124_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DE124_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DE5CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DE5CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DE5CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DE5CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DE650_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DE650_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DE650_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DE650_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DEA98_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DEA98_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DEA98_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DEA98_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DEB94_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DEB94_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DEB94_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DEB94_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DF310_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF310_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DF310_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF310_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DF394_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF394_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DF394_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF394_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DF4CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF4CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DF4CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF4CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DF50C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF50C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DF50C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DF50C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DFBFC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFBFC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DFBFC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFBFC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DFCC0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFCC0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DFCC0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFCC0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DFE64_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFE64_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DFE64_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFE64_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801DFF88_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFF88_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801DFF88_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801DFF88_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E03CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E03CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E03CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E03CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E0460_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E0460_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E0460_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E0460_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E0B94_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E0B94_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E0B94_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E0B94_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E0E78_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E0E78_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E0E78_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E0E78_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E100C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E100C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E100C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E100C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E13A0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E13A0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E13A0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E13A0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E1550_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1550_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E1550_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1550_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E1880_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1880_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E1880_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1880_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E18A8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E18A8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E18A8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E18A8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E1D3C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1D3C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E1D3C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1D3C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E1DD0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1DD0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E1DD0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1DD0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E1FD8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1FD8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E1FD8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E1FD8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E206C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E206C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E206C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E206C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E2724_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E2724_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E2724_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E2724_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E27E8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E27E8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E27E8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E27E8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E28C8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E28C8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E28C8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E28C8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E2BD8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E2BD8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E2BD8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E2BD8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_1/func_801E2C78_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E2C78_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_1/func_801E2C78_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_1/func_801E2C78_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E2D40_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E2D40_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E2D40_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E2D40_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E326C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E326C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E326C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E326C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E3450_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3450_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E3450_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3450_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E3614_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3614_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E3614_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3614_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E3770_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3770_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E3770_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3770_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E3874_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3874_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E3874_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3874_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E3BE4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3BE4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E3BE4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3BE4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E3E04_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3E04_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E3E04_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E3E04_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E4030_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4030_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E4030_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4030_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E4518_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4518_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E4518_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4518_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E46FC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E46FC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E46FC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E46FC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E48C8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E48C8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E48C8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E48C8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E499C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E499C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E499C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E499C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E4A74_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4A74_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E4A74_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4A74_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E4C7C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4C7C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E4C7C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4C7C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E4D6C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4D6C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E4D6C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E4D6C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E50A4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E50A4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E50A4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E50A4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5184_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5184_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5184_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5184_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5278_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5278_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5278_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5278_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5364_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5364_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5364_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5364_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5468_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5468_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5468_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5468_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E552C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E552C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E552C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E552C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E56C4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E56C4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E56C4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E56C4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5754_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5754_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5754_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5754_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E589C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E589C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E589C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E589C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5B08_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5B08_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5B08_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5B08_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5C4C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5C4C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5C4C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5C4C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5D98_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5D98_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5D98_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5D98_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5DC8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5DC8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5DC8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5DC8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E5F60_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5F60_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E5F60_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E5F60_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6030_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6030_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6030_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6030_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6298_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6298_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6298_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6298_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E63E4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E63E4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E63E4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E63E4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E63FC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E63FC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E63FC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E63FC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6444_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6444_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6444_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6444_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6564_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6564_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6564_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6564_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6614_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6614_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6614_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6614_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E66E0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E66E0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E66E0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E66E0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E679C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E679C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E679C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E679C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6AB4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6AB4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6AB4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6AB4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6BA8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6BA8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6BA8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6BA8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6CAC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6CAC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6CAC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6CAC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6D08_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6D08_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6D08_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6D08_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6D50_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6D50_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6D50_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6D50_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6E84_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6E84_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6E84_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6E84_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E6F34_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6F34_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E6F34_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E6F34_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7000_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7000_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7000_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7000_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E70BC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E70BC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E70BC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E70BC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7248_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7248_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7248_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7248_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7424_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7424_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7424_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7424_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E75E4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E75E4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E75E4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E75E4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E762C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E762C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E762C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E762C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7760_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7760_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7760_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7760_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7808_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7808_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7808_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7808_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E78D4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E78D4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E78D4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E78D4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7990_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7990_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7990_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7990_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7C38_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7C38_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7C38_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7C38_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7CC0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7CC0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7CC0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7CC0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E7ED4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7ED4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E7ED4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E7ED4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8008_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8008_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8008_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8008_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8050_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8050_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8050_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8050_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8184_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8184_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8184_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8184_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8234_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8234_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8234_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8234_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8300_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8300_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8300_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8300_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E83BC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E83BC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E83BC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E83BC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8548_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8548_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8548_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8548_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E85B8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E85B8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E85B8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E85B8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E871C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E871C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E871C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E871C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E88E4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E88E4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E88E4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E88E4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8988_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8988_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8988_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8988_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E89D0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E89D0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E89D0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E89D0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8AF8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8AF8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8AF8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8AF8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8BA8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8BA8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8BA8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8BA8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8C68_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8C68_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8C68_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8C68_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8D24_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8D24_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8D24_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8D24_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8F24_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8F24_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8F24_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8F24_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E8F90_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8F90_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E8F90_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E8F90_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E90CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E90CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E90CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E90CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9128_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9128_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9128_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9128_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E91B0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E91B0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E91B0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E91B0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E91F8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E91F8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E91F8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E91F8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E932C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E932C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E932C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E932C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E93F8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E93F8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E93F8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E93F8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E94C4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E94C4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E94C4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E94C4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E95C4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E95C4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E95C4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E95C4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9770_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9770_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9770_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9770_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E980C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E980C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E980C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E980C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9A10_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9A10_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9A10_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9A10_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9ACC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9ACC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9ACC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9ACC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9B7C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9B7C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9B7C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9B7C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9BDC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9BDC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9BDC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9BDC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9DCC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9DCC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9DCC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9DCC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801E9ECC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9ECC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801E9ECC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801E9ECC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA048_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA048_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA048_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA048_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA1E4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA1E4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA1E4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA1E4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA364_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA364_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA364_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA364_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA4C0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA4C0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA4C0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA4C0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA630_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA630_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA630_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA630_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA718_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA718_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA718_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA718_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA784_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA784_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA784_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA784_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA7CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA7CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA7CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA7CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA900_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA900_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA900_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA900_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EA9CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA9CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EA9CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EA9CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EAA98_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EAA98_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EAA98_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EAA98_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EAB98_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EAB98_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EAB98_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EAB98_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EAF3C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EAF3C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EAF3C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EAF3C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB018_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB018_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB018_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB018_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB0C0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB0C0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB0C0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB0C0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB1A4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB1A4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB1A4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB1A4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB20C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB20C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB20C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB20C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB2C4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB2C4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB2C4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB2C4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB39C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB39C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB39C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB39C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB408_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB408_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB408_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB408_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB744_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB744_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB744_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB744_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB84C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB84C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB84C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB84C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EB9DC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB9DC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EB9DC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EB9DC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EBA74_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBA74_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EBA74_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBA74_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EBC28_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBC28_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EBC28_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBC28_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EBC60_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBC60_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EBC60_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBC60_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EBDE8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBDE8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EBDE8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBDE8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EBF2C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBF2C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EBF2C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBF2C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EBFDC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBFDC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EBFDC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EBFDC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EC120_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC120_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EC120_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC120_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EC2A0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC2A0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EC2A0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC2A0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EC37C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC37C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EC37C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC37C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EC3C8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC3C8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EC3C8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC3C8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EC4CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC4CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EC4CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC4CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EC6D8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC6D8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EC6D8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC6D8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EC930_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC930_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EC930_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EC930_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ECA34_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECA34_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ECA34_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECA34_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ECCEC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECCEC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ECCEC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECCEC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ECE90_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECE90_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ECE90_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECE90_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ECF48_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECF48_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ECF48_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ECF48_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ED208_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED208_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ED208_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED208_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ED2CC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED2CC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ED2CC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED2CC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ED6B8_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED6B8_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ED6B8_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED6B8_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ED6E4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED6E4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ED6E4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED6E4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ED7D0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED7D0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ED7D0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED7D0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801ED930_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED930_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801ED930_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801ED930_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EDAA0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDAA0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EDAA0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDAA0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EDD24_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDD24_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EDD24_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDD24_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EDF58_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDF58_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EDF58_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDF58_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EDF84_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDF84_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EDF84_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EDF84_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EE050_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE050_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EE050_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE050_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EE24C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE24C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EE24C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE24C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EE410_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE410_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EE410_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE410_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EE5B0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE5B0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EE5B0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE5B0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EE990_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE990_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EE990_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EE990_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EEB30_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEB30_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EEB30_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEB30_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EEE44_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEE44_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EEE44_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEE44_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EEED4_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEED4_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EEED4_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEED4_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EEF4C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEF4C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EEF4C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEF4C_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EEFCC_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEFCC_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EEFCC_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EEFCC_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EF0F0_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EF0F0_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EF0F0_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EF0F0_ovl10.s diff --git a/asm/non_matchings/ovl10/ovl10_2/func_801EF15C_ovl10.s b/asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EF15C_ovl10.s similarity index 100% rename from asm/non_matchings/ovl10/ovl10_2/func_801EF15C_ovl10.s rename to asm.old/asm/non_matchings/ovl10/ovl10_2/func_801EF15C_ovl10.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DB31C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DB31C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DB31C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DB31C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DB684_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DB684_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DB684_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DB684_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DB8E8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DB8E8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DB8E8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DB8E8_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC2A0_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC2A0_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC2A0_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC2A0_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC388_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC388_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC388_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC388_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC45C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC45C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC45C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC45C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC5B0_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC5B0_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC5B0_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC5B0_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC674_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC674_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC674_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC674_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC7B8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC7B8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC7B8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC7B8_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC83C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC83C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC83C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC83C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DC8F8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DC8F8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DC8F8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DC8F8_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCA48_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCA48_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCA48_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCA48_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCBE0_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCBE0_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCBE0_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCBE0_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCC4C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCC4C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCC4C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCC4C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCCD8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCCD8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCCD8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCCD8_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCD8C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCD8C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCD8C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCD8C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCE04_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCE04_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCE04_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCE04_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCE48_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCE48_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCE48_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCE48_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DCF70_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DCF70_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DCF70_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DCF70_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD0B4_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD0B4_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD0B4_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD0B4_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD160_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD160_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD160_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD160_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD1CC_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD1CC_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD1CC_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD1CC_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD270_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD270_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD270_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD270_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD490_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD490_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD490_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD490_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD588_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD588_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD588_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD588_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD730_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD730_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD730_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD730_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD7D4_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD7D4_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD7D4_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD7D4_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DD840_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DD840_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DD840_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DD840_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DDA4C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DDA4C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DDA4C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DDA4C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DDBA4_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DDBA4_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DDBA4_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DDBA4_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DDD80_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DDD80_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DDD80_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DDD80_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DDE08_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DDE08_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DDE08_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DDE08_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DDEC0_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DDEC0_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DDEC0_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DDEC0_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DDF08_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DDF08_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DDF08_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DDF08_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE038_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE038_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE038_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE038_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE0F8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE0F8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE0F8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE0F8_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE1EC_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE1EC_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE1EC_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE1EC_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE258_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE258_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE258_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE258_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE33C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE33C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE33C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE33C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE454_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE454_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE454_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE454_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE548_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE548_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE548_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE548_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE758_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE758_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE758_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE758_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE7BC_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE7BC_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE7BC_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE7BC_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE8D0_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE8D0_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE8D0_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE8D0_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DE9C8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DE9C8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DE9C8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DE9C8_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DEA1C_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DEA1C_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DEA1C_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DEA1C_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DEAE8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DEAE8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DEAE8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DEAE8_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DEB78_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DEB78_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DEB78_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DEB78_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DEC08_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DEC08_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DEC08_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DEC08_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DEE50_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DEE50_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DEE50_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DEE50_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DEED0_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DEED0_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DEED0_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DEED0_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DEFE4_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DEFE4_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DEFE4_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DEFE4_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DF0B4_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DF0B4_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DF0B4_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DF0B4_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DF198_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DF198_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DF198_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DF198_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DF204_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DF204_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DF204_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DF204_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DF318_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DF318_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DF318_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DF318_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DF3DC_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DF3DC_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DF3DC_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DF3DC_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DF548_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DF548_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DF548_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DF548_ovl11.s diff --git a/asm/non_matchings/ovl11/ovl11/func_801DF5B8_ovl11.s b/asm.old/asm/non_matchings/ovl11/ovl11/func_801DF5B8_ovl11.s similarity index 100% rename from asm/non_matchings/ovl11/ovl11/func_801DF5B8_ovl11.s rename to asm.old/asm/non_matchings/ovl11/ovl11/func_801DF5B8_ovl11.s diff --git a/asm/non_matchings/ovl12/0/ovl12/108.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/108.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/108.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/108.s diff --git a/asm/non_matchings/ovl12/0/ovl12/11.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/11.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/11.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/11.s diff --git a/asm/non_matchings/ovl12/0/ovl12/117.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/117.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/117.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/117.s diff --git a/asm/non_matchings/ovl12/0/ovl12/119.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/119.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/119.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/119.s diff --git a/asm/non_matchings/ovl12/0/ovl12/12.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/12.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/12.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/12.s diff --git a/asm/non_matchings/ovl12/0/ovl12/123.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/123.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/123.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/123.s diff --git a/asm/non_matchings/ovl12/0/ovl12/16.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/16.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/16.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/16.s diff --git a/asm/non_matchings/ovl12/0/ovl12/17.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/17.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/17.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/17.s diff --git a/asm/non_matchings/ovl12/0/ovl12/26.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/26.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/26.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/26.s diff --git a/asm/non_matchings/ovl12/0/ovl12/29.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/29.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/29.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/29.s diff --git a/asm/non_matchings/ovl12/0/ovl12/37.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/37.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/37.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/37.s diff --git a/asm/non_matchings/ovl12/0/ovl12/44.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/44.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/44.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/44.s diff --git a/asm/non_matchings/ovl12/0/ovl12/51.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/51.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/51.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/51.s diff --git a/asm/non_matchings/ovl12/0/ovl12/61.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/61.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/61.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/61.s diff --git a/asm/non_matchings/ovl12/0/ovl12/63.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/63.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/63.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/63.s diff --git a/asm/non_matchings/ovl12/0/ovl12/67.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/67.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/67.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/67.s diff --git a/asm/non_matchings/ovl12/0/ovl12/77.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/77.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/77.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/77.s diff --git a/asm/non_matchings/ovl12/0/ovl12/80.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/80.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/80.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/80.s diff --git a/asm/non_matchings/ovl12/0/ovl12/82.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/82.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/82.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/82.s diff --git a/asm/non_matchings/ovl12/0/ovl12/88.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/88.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/88.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/88.s diff --git a/asm/non_matchings/ovl12/0/ovl12/89.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/89.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/89.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/89.s diff --git a/asm/non_matchings/ovl12/0/ovl12/9.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/9.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/9.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/9.s diff --git a/asm/non_matchings/ovl12/0/ovl12/90.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/90.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/90.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/90.s diff --git a/asm/non_matchings/ovl12/0/ovl12/92.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/92.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/92.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/92.s diff --git a/asm/non_matchings/ovl12/0/ovl12/93.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/93.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/93.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/93.s diff --git a/asm/non_matchings/ovl12/0/ovl12/94.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/94.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/94.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/94.s diff --git a/asm/non_matchings/ovl12/0/ovl12/95.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/95.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/95.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/95.s diff --git a/asm/non_matchings/ovl12/0/ovl12/96.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/96.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/96.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/96.s diff --git a/asm/non_matchings/ovl12/0/ovl12/97.s b/asm.old/asm/non_matchings/ovl12/0/ovl12/97.s similarity index 100% rename from asm/non_matchings/ovl12/0/ovl12/97.s rename to asm.old/asm/non_matchings/ovl12/0/ovl12/97.s diff --git a/asm/non_matchings/ovl12/1/ovl12_3/130.s b/asm.old/asm/non_matchings/ovl12/1/ovl12_3/130.s similarity index 100% rename from asm/non_matchings/ovl12/1/ovl12_3/130.s rename to asm.old/asm/non_matchings/ovl12/1/ovl12_3/130.s diff --git a/asm/non_matchings/ovl12/1/ovl12_3/132.s b/asm.old/asm/non_matchings/ovl12/1/ovl12_3/132.s similarity index 100% rename from asm/non_matchings/ovl12/1/ovl12_3/132.s rename to asm.old/asm/non_matchings/ovl12/1/ovl12_3/132.s diff --git a/asm/non_matchings/ovl13/0/ovl13/0.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/0.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/0.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/0.s diff --git a/asm/non_matchings/ovl13/0/ovl13/1.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/1.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/1.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/1.s diff --git a/asm/non_matchings/ovl13/0/ovl13/10.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/10.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/10.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/10.s diff --git a/asm/non_matchings/ovl13/0/ovl13/11.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/11.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/11.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/11.s diff --git a/asm/non_matchings/ovl13/0/ovl13/12.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/12.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/12.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/12.s diff --git a/asm/non_matchings/ovl13/0/ovl13/13.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/13.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/13.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/13.s diff --git a/asm/non_matchings/ovl13/0/ovl13/14.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/14.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/14.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/14.s diff --git a/asm/non_matchings/ovl13/0/ovl13/15.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/15.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/15.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/15.s diff --git a/asm/non_matchings/ovl13/0/ovl13/16.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/16.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/16.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/16.s diff --git a/asm/non_matchings/ovl13/0/ovl13/17.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/17.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/17.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/17.s diff --git a/asm/non_matchings/ovl13/0/ovl13/18.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/18.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/18.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/18.s diff --git a/asm/non_matchings/ovl13/0/ovl13/19.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/19.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/19.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/19.s diff --git a/asm/non_matchings/ovl13/0/ovl13/2.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/2.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/2.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/2.s diff --git a/asm/non_matchings/ovl13/0/ovl13/20.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/20.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/20.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/20.s diff --git a/asm/non_matchings/ovl13/0/ovl13/21.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/21.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/21.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/21.s diff --git a/asm/non_matchings/ovl13/0/ovl13/22.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/22.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/22.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/22.s diff --git a/asm/non_matchings/ovl13/0/ovl13/23.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/23.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/23.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/23.s diff --git a/asm/non_matchings/ovl13/0/ovl13/24.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/24.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/24.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/24.s diff --git a/asm/non_matchings/ovl13/0/ovl13/25.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/25.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/25.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/25.s diff --git a/asm/non_matchings/ovl13/0/ovl13/26.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/26.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/26.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/26.s diff --git a/asm/non_matchings/ovl13/0/ovl13/27.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/27.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/27.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/27.s diff --git a/asm/non_matchings/ovl13/0/ovl13/28.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/28.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/28.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/28.s diff --git a/asm/non_matchings/ovl13/0/ovl13/29.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/29.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/29.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/29.s diff --git a/asm/non_matchings/ovl13/0/ovl13/3.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/3.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/3.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/3.s diff --git a/asm/non_matchings/ovl13/0/ovl13/30.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/30.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/30.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/30.s diff --git a/asm/non_matchings/ovl13/0/ovl13/31.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/31.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/31.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/31.s diff --git a/asm/non_matchings/ovl13/0/ovl13/32.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/32.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/32.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/32.s diff --git a/asm/non_matchings/ovl13/0/ovl13/33.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/33.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/33.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/33.s diff --git a/asm/non_matchings/ovl13/0/ovl13/34.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/34.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/34.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/34.s diff --git a/asm/non_matchings/ovl13/0/ovl13/35.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/35.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/35.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/35.s diff --git a/asm/non_matchings/ovl13/0/ovl13/36.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/36.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/36.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/36.s diff --git a/asm/non_matchings/ovl13/0/ovl13/37.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/37.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/37.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/37.s diff --git a/asm/non_matchings/ovl13/0/ovl13/38.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/38.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/38.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/38.s diff --git a/asm/non_matchings/ovl13/0/ovl13/39.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/39.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/39.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/39.s diff --git a/asm/non_matchings/ovl13/0/ovl13/4.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/4.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/4.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/4.s diff --git a/asm/non_matchings/ovl13/0/ovl13/40.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/40.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/40.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/40.s diff --git a/asm/non_matchings/ovl13/0/ovl13/41.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/41.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/41.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/41.s diff --git a/asm/non_matchings/ovl13/0/ovl13/42.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/42.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/42.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/42.s diff --git a/asm/non_matchings/ovl13/0/ovl13/43.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/43.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/43.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/43.s diff --git a/asm/non_matchings/ovl13/0/ovl13/44.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/44.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/44.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/44.s diff --git a/asm/non_matchings/ovl13/0/ovl13/45.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/45.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/45.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/45.s diff --git a/asm/non_matchings/ovl13/0/ovl13/46.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/46.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/46.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/46.s diff --git a/asm/non_matchings/ovl13/0/ovl13/47.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/47.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/47.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/47.s diff --git a/asm/non_matchings/ovl13/0/ovl13/48.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/48.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/48.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/48.s diff --git a/asm/non_matchings/ovl13/0/ovl13/49.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/49.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/49.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/49.s diff --git a/asm/non_matchings/ovl13/0/ovl13/5.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/5.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/5.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/5.s diff --git a/asm/non_matchings/ovl13/0/ovl13/50.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/50.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/50.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/50.s diff --git a/asm/non_matchings/ovl13/0/ovl13/6.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/6.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/6.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/6.s diff --git a/asm/non_matchings/ovl13/0/ovl13/7.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/7.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/7.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/7.s diff --git a/asm/non_matchings/ovl13/0/ovl13/8.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/8.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/8.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/8.s diff --git a/asm/non_matchings/ovl13/0/ovl13/9.s b/asm.old/asm/non_matchings/ovl13/0/ovl13/9.s similarity index 100% rename from asm/non_matchings/ovl13/0/ovl13/9.s rename to asm.old/asm/non_matchings/ovl13/0/ovl13/9.s diff --git a/asm/non_matchings/ovl14/1.s b/asm.old/asm/non_matchings/ovl14/1.s similarity index 100% rename from asm/non_matchings/ovl14/1.s rename to asm.old/asm/non_matchings/ovl14/1.s diff --git a/asm/non_matchings/ovl14/10.s b/asm.old/asm/non_matchings/ovl14/10.s similarity index 100% rename from asm/non_matchings/ovl14/10.s rename to asm.old/asm/non_matchings/ovl14/10.s diff --git a/asm/non_matchings/ovl14/12.s b/asm.old/asm/non_matchings/ovl14/12.s similarity index 100% rename from asm/non_matchings/ovl14/12.s rename to asm.old/asm/non_matchings/ovl14/12.s diff --git a/asm/non_matchings/ovl14/14.s b/asm.old/asm/non_matchings/ovl14/14.s similarity index 100% rename from asm/non_matchings/ovl14/14.s rename to asm.old/asm/non_matchings/ovl14/14.s diff --git a/asm/non_matchings/ovl14/18.s b/asm.old/asm/non_matchings/ovl14/18.s similarity index 100% rename from asm/non_matchings/ovl14/18.s rename to asm.old/asm/non_matchings/ovl14/18.s diff --git a/asm/non_matchings/ovl14/19.s b/asm.old/asm/non_matchings/ovl14/19.s similarity index 100% rename from asm/non_matchings/ovl14/19.s rename to asm.old/asm/non_matchings/ovl14/19.s diff --git a/asm/non_matchings/ovl14/20.s b/asm.old/asm/non_matchings/ovl14/20.s similarity index 100% rename from asm/non_matchings/ovl14/20.s rename to asm.old/asm/non_matchings/ovl14/20.s diff --git a/asm/non_matchings/ovl14/25.s b/asm.old/asm/non_matchings/ovl14/25.s similarity index 100% rename from asm/non_matchings/ovl14/25.s rename to asm.old/asm/non_matchings/ovl14/25.s diff --git a/asm/non_matchings/ovl14/28.s b/asm.old/asm/non_matchings/ovl14/28.s similarity index 100% rename from asm/non_matchings/ovl14/28.s rename to asm.old/asm/non_matchings/ovl14/28.s diff --git a/asm/non_matchings/ovl14/3.s b/asm.old/asm/non_matchings/ovl14/3.s similarity index 100% rename from asm/non_matchings/ovl14/3.s rename to asm.old/asm/non_matchings/ovl14/3.s diff --git a/asm/non_matchings/ovl14/32.s b/asm.old/asm/non_matchings/ovl14/32.s similarity index 100% rename from asm/non_matchings/ovl14/32.s rename to asm.old/asm/non_matchings/ovl14/32.s diff --git a/asm/non_matchings/ovl14/36.s b/asm.old/asm/non_matchings/ovl14/36.s similarity index 100% rename from asm/non_matchings/ovl14/36.s rename to asm.old/asm/non_matchings/ovl14/36.s diff --git a/asm/non_matchings/ovl14/38.s b/asm.old/asm/non_matchings/ovl14/38.s similarity index 100% rename from asm/non_matchings/ovl14/38.s rename to asm.old/asm/non_matchings/ovl14/38.s diff --git a/asm/non_matchings/ovl14/39.s b/asm.old/asm/non_matchings/ovl14/39.s similarity index 100% rename from asm/non_matchings/ovl14/39.s rename to asm.old/asm/non_matchings/ovl14/39.s diff --git a/asm/non_matchings/ovl14/40.s b/asm.old/asm/non_matchings/ovl14/40.s similarity index 100% rename from asm/non_matchings/ovl14/40.s rename to asm.old/asm/non_matchings/ovl14/40.s diff --git a/asm/non_matchings/ovl14/41.s b/asm.old/asm/non_matchings/ovl14/41.s similarity index 100% rename from asm/non_matchings/ovl14/41.s rename to asm.old/asm/non_matchings/ovl14/41.s diff --git a/asm/non_matchings/ovl14/42.s b/asm.old/asm/non_matchings/ovl14/42.s similarity index 100% rename from asm/non_matchings/ovl14/42.s rename to asm.old/asm/non_matchings/ovl14/42.s diff --git a/asm/non_matchings/ovl14/43.s b/asm.old/asm/non_matchings/ovl14/43.s similarity index 100% rename from asm/non_matchings/ovl14/43.s rename to asm.old/asm/non_matchings/ovl14/43.s diff --git a/asm/non_matchings/ovl14/44.s b/asm.old/asm/non_matchings/ovl14/44.s similarity index 100% rename from asm/non_matchings/ovl14/44.s rename to asm.old/asm/non_matchings/ovl14/44.s diff --git a/asm/non_matchings/ovl14/45.s b/asm.old/asm/non_matchings/ovl14/45.s similarity index 100% rename from asm/non_matchings/ovl14/45.s rename to asm.old/asm/non_matchings/ovl14/45.s diff --git a/asm/non_matchings/ovl14/46.s b/asm.old/asm/non_matchings/ovl14/46.s similarity index 100% rename from asm/non_matchings/ovl14/46.s rename to asm.old/asm/non_matchings/ovl14/46.s diff --git a/asm/non_matchings/ovl14/47.s b/asm.old/asm/non_matchings/ovl14/47.s similarity index 100% rename from asm/non_matchings/ovl14/47.s rename to asm.old/asm/non_matchings/ovl14/47.s diff --git a/asm/non_matchings/ovl14/48.s b/asm.old/asm/non_matchings/ovl14/48.s similarity index 100% rename from asm/non_matchings/ovl14/48.s rename to asm.old/asm/non_matchings/ovl14/48.s diff --git a/asm/non_matchings/ovl14/49.s b/asm.old/asm/non_matchings/ovl14/49.s similarity index 100% rename from asm/non_matchings/ovl14/49.s rename to asm.old/asm/non_matchings/ovl14/49.s diff --git a/asm/non_matchings/ovl14/54.s b/asm.old/asm/non_matchings/ovl14/54.s similarity index 100% rename from asm/non_matchings/ovl14/54.s rename to asm.old/asm/non_matchings/ovl14/54.s diff --git a/asm/non_matchings/ovl14/58.s b/asm.old/asm/non_matchings/ovl14/58.s similarity index 100% rename from asm/non_matchings/ovl14/58.s rename to asm.old/asm/non_matchings/ovl14/58.s diff --git a/asm/non_matchings/ovl14/60.s b/asm.old/asm/non_matchings/ovl14/60.s similarity index 100% rename from asm/non_matchings/ovl14/60.s rename to asm.old/asm/non_matchings/ovl14/60.s diff --git a/asm/non_matchings/ovl14/8.s b/asm.old/asm/non_matchings/ovl14/8.s similarity index 100% rename from asm/non_matchings/ovl14/8.s rename to asm.old/asm/non_matchings/ovl14/8.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DB528_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DB528_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DB528_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DB528_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DB698_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DB698_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DB698_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DB698_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DBA54_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DBA54_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DBA54_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DBA54_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DBA98_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DBA98_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DBA98_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DBA98_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DBBCC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DBBCC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DBBCC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DBBCC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DC314_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DC314_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DC314_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DC314_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DC6E4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DC6E4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DC6E4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DC6E4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DC83C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DC83C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DC83C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DC83C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DC8E4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DC8E4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DC8E4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DC8E4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DC990_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DC990_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DC990_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DC990_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DCA84_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DCA84_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DCA84_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DCA84_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DCBF8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DCBF8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DCBF8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DCBF8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DCDC8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DCDC8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DCDC8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DCDC8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DD25C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DD25C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DD25C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DD25C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DD484_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DD484_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DD484_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DD484_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DD4B4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DD4B4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DD4B4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DD4B4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DD4E4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DD4E4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DD4E4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DD4E4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DD4F8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DD4F8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DD4F8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DD4F8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DD50C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DD50C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DD50C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DD50C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DDA98_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DDA98_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DDA98_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DDA98_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DDE54_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DDE54_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DDE54_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DDE54_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DDEB0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DDEB0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DDEB0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DDEB0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DE030_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DE030_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DE030_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DE030_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DE524_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DE524_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DE524_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DE524_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DE55C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DE55C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DE55C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DE55C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DE670_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DE670_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DE670_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DE670_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DE840_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DE840_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DE840_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DE840_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DE8DC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DE8DC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DE8DC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DE8DC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DEA94_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DEA94_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DEA94_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DEA94_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DEAE0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DEAE0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DEAE0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DEAE0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DECF4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DECF4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DECF4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DECF4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DED40_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DED40_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DED40_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DED40_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DF314_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DF314_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DF314_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DF314_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DF62C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DF62C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DF62C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DF62C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DFAA0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DFAA0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DFAA0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DFAA0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DFC4C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DFC4C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DFC4C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DFC4C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DFD48_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DFD48_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DFD48_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DFD48_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DFDCC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DFDCC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DFDCC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DFDCC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DFE44_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DFE44_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DFE44_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DFE44_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DFEC8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DFEC8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DFEC8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DFEC8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801DFF40_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801DFF40_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801DFF40_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801DFF40_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E03EC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E03EC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E03EC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E03EC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E0628_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E0628_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E0628_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E0628_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E06AC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E06AC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E06AC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E06AC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E0724_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E0724_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E0724_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E0724_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E07A8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E07A8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E07A8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E07A8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E0820_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E0820_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E0820_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E0820_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E0CC8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E0CC8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E0CC8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E0CC8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E0F04_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E0F04_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E0F04_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E0F04_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E141C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E141C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E141C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E141C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E16F8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E16F8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E16F8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E16F8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E17E0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E17E0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E17E0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E17E0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E18BC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E18BC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E18BC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E18BC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E1C1C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E1C1C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E1C1C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E1C1C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E1E84_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E1E84_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E1E84_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E1E84_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E1F40_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E1F40_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E1F40_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E1F40_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E20D8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E20D8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E20D8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E20D8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E2820_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E2820_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E2820_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E2820_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E2960_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E2960_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E2960_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E2960_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E2A28_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E2A28_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E2A28_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E2A28_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E2B08_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E2B08_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E2B08_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E2B08_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E2C8C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E2C8C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E2C8C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E2C8C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E2D88_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E2D88_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E2D88_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E2D88_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E2E44_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E2E44_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E2E44_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E2E44_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E31A4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E31A4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E31A4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E31A4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E3284_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E3284_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E3284_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E3284_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E32CC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E32CC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E32CC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E32CC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E33AC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E33AC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E33AC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E33AC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E34A0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E34A0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E34A0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E34A0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E3518_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E3518_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E3518_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E3518_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E35D4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E35D4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E35D4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E35D4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E3CF0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E3CF0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E3CF0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E3CF0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E4024_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E4024_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E4024_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E4024_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E406C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E406C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E406C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E406C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E4148_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E4148_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E4148_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E4148_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E4350_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E4350_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E4350_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E4350_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E4698_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E4698_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E4698_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E4698_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E4754_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E4754_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E4754_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E4754_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E538C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E538C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E538C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E538C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E5734_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E5734_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E5734_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E5734_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E57FC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E57FC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E57FC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E57FC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E58D8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E58D8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E58D8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E58D8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E59B4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E59B4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E59B4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E59B4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E5A28_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E5A28_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E5A28_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E5A28_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E5AE4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E5AE4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E5AE4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E5AE4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E62C0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E62C0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E62C0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E62C0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E68E0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E68E0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E68E0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E68E0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E69A8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E69A8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E69A8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E69A8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E6A84_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E6A84_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E6A84_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E6A84_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E6B60_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E6B60_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E6B60_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E6B60_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E6BD4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E6BD4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E6BD4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E6BD4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E6C90_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E6C90_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E6C90_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E6C90_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E6E0C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E6E0C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E6E0C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E6E0C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E7054_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E7054_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E7054_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E7054_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E72C4_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E72C4_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E72C4_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E72C4_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E730C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E730C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E730C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E730C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E74E8_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E74E8_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E74E8_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E74E8_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E75DC_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E75DC_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E75DC_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E75DC_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E7650_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E7650_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E7650_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E7650_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E788C_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E788C_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E788C_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E788C_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E7A38_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E7A38_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E7A38_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E7A38_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E7BD0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E7BD0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E7BD0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E7BD0_ovl16.s diff --git a/asm/non_matchings/ovl16/ovl16/func_801E7EE0_ovl16.s b/asm.old/asm/non_matchings/ovl16/ovl16/func_801E7EE0_ovl16.s similarity index 100% rename from asm/non_matchings/ovl16/ovl16/func_801E7EE0_ovl16.s rename to asm.old/asm/non_matchings/ovl16/ovl16/func_801E7EE0_ovl16.s diff --git a/asm/non_matchings/ovl17/ovl17/func.s b/asm.old/asm/non_matchings/ovl17/ovl17/func.s similarity index 100% rename from asm/non_matchings/ovl17/ovl17/func.s rename to asm.old/asm/non_matchings/ovl17/ovl17/func.s diff --git a/asm/non_matchings/ovl17/ovl17/func_801DD88C_ovl17.s b/asm.old/asm/non_matchings/ovl17/ovl17/func_801DD88C_ovl17.s similarity index 100% rename from asm/non_matchings/ovl17/ovl17/func_801DD88C_ovl17.s rename to asm.old/asm/non_matchings/ovl17/ovl17/func_801DD88C_ovl17.s diff --git a/asm/non_matchings/ovl17/ovl17_last-0/func_801E4488_ovl17.s b/asm.old/asm/non_matchings/ovl17/ovl17_last-0/func_801E4488_ovl17.s similarity index 100% rename from asm/non_matchings/ovl17/ovl17_last-0/func_801E4488_ovl17.s rename to asm.old/asm/non_matchings/ovl17/ovl17_last-0/func_801E4488_ovl17.s diff --git a/asm/non_matchings/ovl17/ovl17_last-0/func_801E4668_ovl17.s b/asm.old/asm/non_matchings/ovl17/ovl17_last-0/func_801E4668_ovl17.s similarity index 100% rename from asm/non_matchings/ovl17/ovl17_last-0/func_801E4668_ovl17.s rename to asm.old/asm/non_matchings/ovl17/ovl17_last-0/func_801E4668_ovl17.s diff --git a/asm/non_matchings/ovl17/ovl17_last-0/func_801E49B8_ovl17.s b/asm.old/asm/non_matchings/ovl17/ovl17_last-0/func_801E49B8_ovl17.s similarity index 100% rename from asm/non_matchings/ovl17/ovl17_last-0/func_801E49B8_ovl17.s rename to asm.old/asm/non_matchings/ovl17/ovl17_last-0/func_801E49B8_ovl17.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021E050_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021E050_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021E050_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021E050_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021E528_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021E528_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021E528_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021E528_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021E6E0_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021E6E0_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021E6E0_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021E6E0_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021E858_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021E858_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021E858_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021E858_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021E978_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021E978_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021E978_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021E978_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021ED10_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021ED10_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021ED10_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021ED10_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021ED3C_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021ED3C_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021ED3C_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021ED3C_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021F35C_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021F35C_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021F35C_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021F35C_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021F4E8_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021F4E8_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021F4E8_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021F4E8_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021F5CC_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021F5CC_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021F5CC_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021F5CC_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021F658_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021F658_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021F658_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021F658_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021F70C_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021F70C_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021F70C_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021F70C_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021F970_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021F970_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021F970_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021F970_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021FC40_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021FC40_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021FC40_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021FC40_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021FD48_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021FD48_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021FD48_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021FD48_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021FDF4_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021FDF4_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021FDF4_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021FDF4_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021FEBC_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021FEBC_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021FEBC_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021FEBC_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_8021FF80_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_8021FF80_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_8021FF80_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_8021FF80_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_80220038_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_80220038_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_80220038_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_80220038_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18/func_80220184_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18/func_80220184_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18/func_80220184_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18/func_80220184_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_1/func_802204F8_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_1/func_802204F8_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_1/func_802204F8_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_1/func_802204F8_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_1/func_80220B00_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_1/func_80220B00_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_1/func_80220B00_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_1/func_80220B00_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_1/func_80220F68_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_1/func_80220F68_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_1/func_80220F68_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_1/func_80220F68_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_1/func_80221498_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_1/func_80221498_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_1/func_80221498_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_1/func_80221498_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_4/func_802244FC_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_4/func_802244FC_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_4/func_802244FC_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_4/func_802244FC_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_5/func_80224FCC_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_5/func_80224FCC_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_5/func_80224FCC_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_5/func_80224FCC_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_5/func_80225304_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225304_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_5/func_80225304_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225304_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_5/func_80225724_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225724_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_5/func_80225724_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225724_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_5/func_80225958_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225958_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_5/func_80225958_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225958_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_5/func_80225B44_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225B44_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_5/func_80225B44_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_5/func_80225B44_ovl18.s diff --git a/asm/non_matchings/ovl18/ovl18_7/func_80227308_ovl18.s b/asm.old/asm/non_matchings/ovl18/ovl18_7/func_80227308_ovl18.s similarity index 100% rename from asm/non_matchings/ovl18/ovl18_7/func_80227308_ovl18.s rename to asm.old/asm/non_matchings/ovl18/ovl18_7/func_80227308_ovl18.s diff --git a/asm/non_matchings/ovl19/ovl19/func_8021E4B0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19/func_8021E4B0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19/func_8021E4B0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19/func_8021E4B0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19/func_8021E5DC_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19/func_8021E5DC_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19/func_8021E5DC_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19/func_8021E5DC_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19/func_8021E894_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19/func_8021E894_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19/func_8021E894_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19/func_8021E894_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021EF00_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021EF00_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021EF00_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021EF00_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021F0A4_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F0A4_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021F0A4_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F0A4_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021F174_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F174_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021F174_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F174_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021F3B4_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F3B4_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021F3B4_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F3B4_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021F3F8_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F3F8_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021F3F8_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F3F8_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021F600_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F600_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021F600_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021F600_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021FA2C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FA2C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021FA2C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FA2C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021FC7C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FC7C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021FC7C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FC7C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021FCC0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FCC0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021FCC0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FCC0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021FE5C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FE5C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021FE5C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FE5C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8021FF90_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FF90_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8021FF90_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8021FF90_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80220138_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220138_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80220138_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220138_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8022023C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022023C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8022023C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022023C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80220280_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220280_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80220280_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220280_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8022045C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022045C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8022045C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022045C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8022054C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022054C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8022054C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022054C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80220814_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220814_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80220814_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220814_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_802209A0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_802209A0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_802209A0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_802209A0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_802209E4_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_802209E4_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_802209E4_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_802209E4_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80220B40_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220B40_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80220B40_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220B40_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80220D54_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220D54_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80220D54_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220D54_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80220F48_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220F48_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80220F48_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220F48_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80220F8C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220F8C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80220F8C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80220F8C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221108_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221108_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221108_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221108_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_802211A0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_802211A0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_802211A0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_802211A0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221480_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221480_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221480_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221480_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8022159C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022159C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8022159C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022159C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_8022170C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022170C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_8022170C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_8022170C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221750_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221750_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221750_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221750_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221928_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221928_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221928_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221928_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221A74_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221A74_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221A74_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221A74_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221BC8_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221BC8_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221BC8_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221BC8_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221DDC_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221DDC_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221DDC_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221DDC_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80221FC8_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221FC8_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80221FC8_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80221FC8_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80222038_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222038_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80222038_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222038_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80222108_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222108_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80222108_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222108_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_802222F0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_802222F0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_802222F0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_802222F0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_802224BC_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_802224BC_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_802224BC_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_802224BC_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80222500_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222500_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80222500_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222500_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80222A54_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222A54_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80222A54_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222A54_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80222A98_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222A98_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80222A98_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222A98_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_2/func_80222CE0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222CE0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_2/func_80222CE0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_2/func_80222CE0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80223200_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80223200_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80223200_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80223200_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80223E68_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80223E68_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80223E68_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80223E68_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80224564_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80224564_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80224564_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80224564_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_8022470C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022470C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_8022470C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022470C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80224858_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80224858_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80224858_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80224858_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_802248C0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_802248C0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_802248C0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_802248C0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80225620_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80225620_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80225620_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80225620_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80225DF8_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80225DF8_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80225DF8_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80225DF8_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80225FB4_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80225FB4_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80225FB4_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80225FB4_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_802260FC_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_802260FC_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_802260FC_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_802260FC_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80226AA8_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80226AA8_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80226AA8_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80226AA8_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80226FFC_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80226FFC_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80226FFC_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80226FFC_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_802271A8_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_802271A8_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_802271A8_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_802271A8_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_802273A0_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_802273A0_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_802273A0_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_802273A0_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227690_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227690_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227690_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227690_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_8022785C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022785C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_8022785C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022785C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227938_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227938_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227938_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227938_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227A38_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227A38_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227A38_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227A38_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227AA8_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227AA8_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227AA8_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227AA8_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227C88_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227C88_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227C88_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227C88_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227D4C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227D4C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227D4C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227D4C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227F38_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227F38_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227F38_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227F38_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80227F90_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227F90_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80227F90_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80227F90_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_8022846C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022846C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_8022846C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022846C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_802284EC_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_802284EC_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_802284EC_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_802284EC_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_8022858C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022858C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_8022858C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022858C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80228874_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80228874_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80228874_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80228874_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_8022889C_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022889C_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_8022889C_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_8022889C_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80228C44_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80228C44_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80228C44_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80228C44_ovl19.s diff --git a/asm/non_matchings/ovl19/ovl19_3/func_80228EF4_ovl19.s b/asm.old/asm/non_matchings/ovl19/ovl19_3/func_80228EF4_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19/ovl19_3/func_80228EF4_ovl19.s rename to asm.old/asm/non_matchings/ovl19/ovl19_3/func_80228EF4_ovl19.s diff --git a/asm/non_matchings/ovl19_5/func_8022E798_ovl19.s b/asm.old/asm/non_matchings/ovl19_5/func_8022E798_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19_5/func_8022E798_ovl19.s rename to asm.old/asm/non_matchings/ovl19_5/func_8022E798_ovl19.s diff --git a/asm/non_matchings/ovl19_5/func_8022EB54_ovl19.s b/asm.old/asm/non_matchings/ovl19_5/func_8022EB54_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19_5/func_8022EB54_ovl19.s rename to asm.old/asm/non_matchings/ovl19_5/func_8022EB54_ovl19.s diff --git a/asm/non_matchings/ovl19_5/func_8022EE78_ovl19.s b/asm.old/asm/non_matchings/ovl19_5/func_8022EE78_ovl19.s similarity index 100% rename from asm/non_matchings/ovl19_5/func_8022EE78_ovl19.s rename to asm.old/asm/non_matchings/ovl19_5/func_8022EE78_ovl19.s diff --git a/asm/non_matchings/ovl2/func_800F61A0.s b/asm.old/asm/non_matchings/ovl2/func_800F61A0.s similarity index 100% rename from asm/non_matchings/ovl2/func_800F61A0.s rename to asm.old/asm/non_matchings/ovl2/func_800F61A0.s diff --git a/asm/non_matchings/ovl2/func_800F62A4.s b/asm.old/asm/non_matchings/ovl2/func_800F62A4.s similarity index 100% rename from asm/non_matchings/ovl2/func_800F62A4.s rename to asm.old/asm/non_matchings/ovl2/func_800F62A4.s diff --git a/asm/non_matchings/ovl2/func_800F64B0.s b/asm.old/asm/non_matchings/ovl2/func_800F64B0.s similarity index 100% rename from asm/non_matchings/ovl2/func_800F64B0.s rename to asm.old/asm/non_matchings/ovl2/func_800F64B0.s diff --git a/asm/non_matchings/ovl2/func_800F6830.s b/asm.old/asm/non_matchings/ovl2/func_800F6830.s similarity index 100% rename from asm/non_matchings/ovl2/func_800F6830.s rename to asm.old/asm/non_matchings/ovl2/func_800F6830.s diff --git a/asm/non_matchings/ovl2/func_800F6AD4.s b/asm.old/asm/non_matchings/ovl2/func_800F6AD4.s similarity index 100% rename from asm/non_matchings/ovl2/func_800F6AD4.s rename to asm.old/asm/non_matchings/ovl2/func_800F6AD4.s diff --git a/asm/non_matchings/ovl2_2/func_800F6E30.s b/asm.old/asm/non_matchings/ovl2_2/func_800F6E30.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F6E30.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F6E30.s diff --git a/asm/non_matchings/ovl2_2/func_800F72B0.s b/asm.old/asm/non_matchings/ovl2_2/func_800F72B0.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F72B0.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F72B0.s diff --git a/asm/non_matchings/ovl2_2/func_800F7404.s b/asm.old/asm/non_matchings/ovl2_2/func_800F7404.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F7404.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F7404.s diff --git a/asm/non_matchings/ovl2_2/func_800F7484.s b/asm.old/asm/non_matchings/ovl2_2/func_800F7484.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F7484.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F7484.s diff --git a/asm/non_matchings/ovl2_2/func_800F753C.s b/asm.old/asm/non_matchings/ovl2_2/func_800F753C.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F753C.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F753C.s diff --git a/asm/non_matchings/ovl2_2/func_800F7578.s b/asm.old/asm/non_matchings/ovl2_2/func_800F7578.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F7578.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F7578.s diff --git a/asm/non_matchings/ovl2_2/func_800F7844.s b/asm.old/asm/non_matchings/ovl2_2/func_800F7844.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F7844.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F7844.s diff --git a/asm/non_matchings/ovl2_2/func_800F78E4.s b/asm.old/asm/non_matchings/ovl2_2/func_800F78E4.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F78E4.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F78E4.s diff --git a/asm/non_matchings/ovl2_2/func_800F8078.s b/asm.old/asm/non_matchings/ovl2_2/func_800F8078.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F8078.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F8078.s diff --git a/asm/non_matchings/ovl2_2/func_800F81A4.s b/asm.old/asm/non_matchings/ovl2_2/func_800F81A4.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F81A4.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F81A4.s diff --git a/asm/non_matchings/ovl2_2/func_800F8274.s b/asm.old/asm/non_matchings/ovl2_2/func_800F8274.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F8274.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F8274.s diff --git a/asm/non_matchings/ovl2_2/func_800F8378.s b/asm.old/asm/non_matchings/ovl2_2/func_800F8378.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F8378.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F8378.s diff --git a/asm/non_matchings/ovl2_2/func_800F8464.s b/asm.old/asm/non_matchings/ovl2_2/func_800F8464.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F8464.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F8464.s diff --git a/asm/non_matchings/ovl2_2/func_800F8560.s b/asm.old/asm/non_matchings/ovl2_2/func_800F8560.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F8560.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F8560.s diff --git a/asm/non_matchings/ovl2_2/func_800F8570.s b/asm.old/asm/non_matchings/ovl2_2/func_800F8570.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F8570.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F8570.s diff --git a/asm/non_matchings/ovl2_2/func_800F8728.s b/asm.old/asm/non_matchings/ovl2_2/func_800F8728.s similarity index 100% rename from asm/non_matchings/ovl2_2/func_800F8728.s rename to asm.old/asm/non_matchings/ovl2_2/func_800F8728.s diff --git a/asm/non_matchings/ovl2_3/func_800F88A0.s b/asm.old/asm/non_matchings/ovl2_3/func_800F88A0.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F88A0.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F88A0.s diff --git a/asm/non_matchings/ovl2_3/func_800F88C8.s b/asm.old/asm/non_matchings/ovl2_3/func_800F88C8.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F88C8.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F88C8.s diff --git a/asm/non_matchings/ovl2_3/func_800F8A24.s b/asm.old/asm/non_matchings/ovl2_3/func_800F8A24.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F8A24.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F8A24.s diff --git a/asm/non_matchings/ovl2_3/func_800F8B1C.s b/asm.old/asm/non_matchings/ovl2_3/func_800F8B1C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F8B1C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F8B1C.s diff --git a/asm/non_matchings/ovl2_3/func_800F8C70.s b/asm.old/asm/non_matchings/ovl2_3/func_800F8C70.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F8C70.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F8C70.s diff --git a/asm/non_matchings/ovl2_3/func_800F8E6C.s b/asm.old/asm/non_matchings/ovl2_3/func_800F8E6C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F8E6C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F8E6C.s diff --git a/asm/non_matchings/ovl2_3/func_800F90C0.s b/asm.old/asm/non_matchings/ovl2_3/func_800F90C0.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F90C0.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F90C0.s diff --git a/asm/non_matchings/ovl2_3/func_800F93EC.s b/asm.old/asm/non_matchings/ovl2_3/func_800F93EC.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F93EC.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F93EC.s diff --git a/asm/non_matchings/ovl2_3/func_800F951C.s b/asm.old/asm/non_matchings/ovl2_3/func_800F951C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F951C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F951C.s diff --git a/asm/non_matchings/ovl2_3/func_800F9888.s b/asm.old/asm/non_matchings/ovl2_3/func_800F9888.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F9888.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F9888.s diff --git a/asm/non_matchings/ovl2_3/func_800F98EC.s b/asm.old/asm/non_matchings/ovl2_3/func_800F98EC.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F98EC.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F98EC.s diff --git a/asm/non_matchings/ovl2_3/func_800F9974.s b/asm.old/asm/non_matchings/ovl2_3/func_800F9974.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F9974.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F9974.s diff --git a/asm/non_matchings/ovl2_3/func_800F9C54.s b/asm.old/asm/non_matchings/ovl2_3/func_800F9C54.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F9C54.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F9C54.s diff --git a/asm/non_matchings/ovl2_3/func_800F9C94.s b/asm.old/asm/non_matchings/ovl2_3/func_800F9C94.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F9C94.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F9C94.s diff --git a/asm/non_matchings/ovl2_3/func_800F9F10.s b/asm.old/asm/non_matchings/ovl2_3/func_800F9F10.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F9F10.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F9F10.s diff --git a/asm/non_matchings/ovl2_3/func_800F9FDC.s b/asm.old/asm/non_matchings/ovl2_3/func_800F9FDC.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800F9FDC.s rename to asm.old/asm/non_matchings/ovl2_3/func_800F9FDC.s diff --git a/asm/non_matchings/ovl2_3/func_800FA1D4.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA1D4.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA1D4.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA1D4.s diff --git a/asm/non_matchings/ovl2_3/func_800FA2D4.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA2D4.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA2D4.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA2D4.s diff --git a/asm/non_matchings/ovl2_3/func_800FA414.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA414.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA414.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA414.s diff --git a/asm/non_matchings/ovl2_3/func_800FA438.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA438.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA438.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA438.s diff --git a/asm/non_matchings/ovl2_3/func_800FA5C0.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA5C0.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA5C0.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA5C0.s diff --git a/asm/non_matchings/ovl2_3/func_800FA608.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA608.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA608.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA608.s diff --git a/asm/non_matchings/ovl2_3/func_800FA7EC.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA7EC.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA7EC.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA7EC.s diff --git a/asm/non_matchings/ovl2_3/func_800FA92C.s b/asm.old/asm/non_matchings/ovl2_3/func_800FA92C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FA92C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FA92C.s diff --git a/asm/non_matchings/ovl2_3/func_800FAC74.s b/asm.old/asm/non_matchings/ovl2_3/func_800FAC74.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FAC74.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FAC74.s diff --git a/asm/non_matchings/ovl2_3/func_800FB164.s b/asm.old/asm/non_matchings/ovl2_3/func_800FB164.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FB164.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FB164.s diff --git a/asm/non_matchings/ovl2_3/func_800FB814.s b/asm.old/asm/non_matchings/ovl2_3/func_800FB814.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FB814.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FB814.s diff --git a/asm/non_matchings/ovl2_3/func_800FB914.s b/asm.old/asm/non_matchings/ovl2_3/func_800FB914.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FB914.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FB914.s diff --git a/asm/non_matchings/ovl2_3/func_800FB9B4.s b/asm.old/asm/non_matchings/ovl2_3/func_800FB9B4.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FB9B4.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FB9B4.s diff --git a/asm/non_matchings/ovl2_3/func_800FBA98.s b/asm.old/asm/non_matchings/ovl2_3/func_800FBA98.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FBA98.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FBA98.s diff --git a/asm/non_matchings/ovl2_3/func_800FBBB8.s b/asm.old/asm/non_matchings/ovl2_3/func_800FBBB8.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FBBB8.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FBBB8.s diff --git a/asm/non_matchings/ovl2_3/func_800FBDE8.s b/asm.old/asm/non_matchings/ovl2_3/func_800FBDE8.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FBDE8.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FBDE8.s diff --git a/asm/non_matchings/ovl2_3/func_800FBE1C.s b/asm.old/asm/non_matchings/ovl2_3/func_800FBE1C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FBE1C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FBE1C.s diff --git a/asm/non_matchings/ovl2_3/func_800FBF18.s b/asm.old/asm/non_matchings/ovl2_3/func_800FBF18.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FBF18.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FBF18.s diff --git a/asm/non_matchings/ovl2_3/func_800FC03C.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC03C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC03C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC03C.s diff --git a/asm/non_matchings/ovl2_3/func_800FC164.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC164.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC164.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC164.s diff --git a/asm/non_matchings/ovl2_3/func_800FC3D8.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC3D8.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC3D8.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC3D8.s diff --git a/asm/non_matchings/ovl2_3/func_800FC500.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC500.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC500.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC500.s diff --git a/asm/non_matchings/ovl2_3/func_800FC53C.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC53C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC53C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC53C.s diff --git a/asm/non_matchings/ovl2_3/func_800FC62C.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC62C.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC62C.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC62C.s diff --git a/asm/non_matchings/ovl2_3/func_800FC804.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC804.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC804.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC804.s diff --git a/asm/non_matchings/ovl2_3/func_800FC9C0.s b/asm.old/asm/non_matchings/ovl2_3/func_800FC9C0.s similarity index 100% rename from asm/non_matchings/ovl2_3/func_800FC9C0.s rename to asm.old/asm/non_matchings/ovl2_3/func_800FC9C0.s diff --git a/asm/non_matchings/ovl2_4/func_800FD418.s b/asm.old/asm/non_matchings/ovl2_4/func_800FD418.s similarity index 100% rename from asm/non_matchings/ovl2_4/func_800FD418.s rename to asm.old/asm/non_matchings/ovl2_4/func_800FD418.s diff --git a/asm/non_matchings/ovl2_4/func_800FD570.s b/asm.old/asm/non_matchings/ovl2_4/func_800FD570.s similarity index 100% rename from asm/non_matchings/ovl2_4/func_800FD570.s rename to asm.old/asm/non_matchings/ovl2_4/func_800FD570.s diff --git a/asm/non_matchings/ovl2_4/func_800FD754.s b/asm.old/asm/non_matchings/ovl2_4/func_800FD754.s similarity index 100% rename from asm/non_matchings/ovl2_4/func_800FD754.s rename to asm.old/asm/non_matchings/ovl2_4/func_800FD754.s diff --git a/asm/non_matchings/ovl2_5/func_800FDBB0.s b/asm.old/asm/non_matchings/ovl2_5/func_800FDBB0.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FDBB0.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FDBB0.s diff --git a/asm/non_matchings/ovl2_5/func_800FDCB0.s b/asm.old/asm/non_matchings/ovl2_5/func_800FDCB0.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FDCB0.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FDCB0.s diff --git a/asm/non_matchings/ovl2_5/func_800FDE6C.s b/asm.old/asm/non_matchings/ovl2_5/func_800FDE6C.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FDE6C.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FDE6C.s diff --git a/asm/non_matchings/ovl2_5/func_800FDF88.s b/asm.old/asm/non_matchings/ovl2_5/func_800FDF88.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FDF88.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FDF88.s diff --git a/asm/non_matchings/ovl2_5/func_800FE154.s b/asm.old/asm/non_matchings/ovl2_5/func_800FE154.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FE154.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FE154.s diff --git a/asm/non_matchings/ovl2_5/func_800FF144.s b/asm.old/asm/non_matchings/ovl2_5/func_800FF144.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FF144.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FF144.s diff --git a/asm/non_matchings/ovl2_5/func_800FF200.s b/asm.old/asm/non_matchings/ovl2_5/func_800FF200.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FF200.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FF200.s diff --git a/asm/non_matchings/ovl2_5/func_800FF2C8.s b/asm.old/asm/non_matchings/ovl2_5/func_800FF2C8.s similarity index 100% rename from asm/non_matchings/ovl2_5/func_800FF2C8.s rename to asm.old/asm/non_matchings/ovl2_5/func_800FF2C8.s diff --git a/asm/non_matchings/ovl2_6/func_800FF64C.s b/asm.old/asm/non_matchings/ovl2_6/func_800FF64C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_800FF64C.s rename to asm.old/asm/non_matchings/ovl2_6/func_800FF64C.s diff --git a/asm/non_matchings/ovl2_6/func_800FF9B4.s b/asm.old/asm/non_matchings/ovl2_6/func_800FF9B4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_800FF9B4.s rename to asm.old/asm/non_matchings/ovl2_6/func_800FF9B4.s diff --git a/asm/non_matchings/ovl2_6/func_80100790.s b/asm.old/asm/non_matchings/ovl2_6/func_80100790.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80100790.s rename to asm.old/asm/non_matchings/ovl2_6/func_80100790.s diff --git a/asm/non_matchings/ovl2_6/func_80100AC8.s b/asm.old/asm/non_matchings/ovl2_6/func_80100AC8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80100AC8.s rename to asm.old/asm/non_matchings/ovl2_6/func_80100AC8.s diff --git a/asm/non_matchings/ovl2_6/func_80100E7C_ovl2.s b/asm.old/asm/non_matchings/ovl2_6/func_80100E7C_ovl2.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80100E7C_ovl2.s rename to asm.old/asm/non_matchings/ovl2_6/func_80100E7C_ovl2.s diff --git a/asm/non_matchings/ovl2_6/func_80100EE4.s b/asm.old/asm/non_matchings/ovl2_6/func_80100EE4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80100EE4.s rename to asm.old/asm/non_matchings/ovl2_6/func_80100EE4.s diff --git a/asm/non_matchings/ovl2_6/func_8010137C_ovl2.s b/asm.old/asm/non_matchings/ovl2_6/func_8010137C_ovl2.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010137C_ovl2.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010137C_ovl2.s diff --git a/asm/non_matchings/ovl2_6/func_80101400.s b/asm.old/asm/non_matchings/ovl2_6/func_80101400.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80101400.s rename to asm.old/asm/non_matchings/ovl2_6/func_80101400.s diff --git a/asm/non_matchings/ovl2_6/func_80101E14_ovl2.s b/asm.old/asm/non_matchings/ovl2_6/func_80101E14_ovl2.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80101E14_ovl2.s rename to asm.old/asm/non_matchings/ovl2_6/func_80101E14_ovl2.s diff --git a/asm/non_matchings/ovl2_6/func_8010203C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010203C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010203C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010203C.s diff --git a/asm/non_matchings/ovl2_6/func_8010221C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010221C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010221C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010221C.s diff --git a/asm/non_matchings/ovl2_6/func_80102364.s b/asm.old/asm/non_matchings/ovl2_6/func_80102364.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80102364.s rename to asm.old/asm/non_matchings/ovl2_6/func_80102364.s diff --git a/asm/non_matchings/ovl2_6/func_801023FC.s b/asm.old/asm/non_matchings/ovl2_6/func_801023FC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801023FC.s rename to asm.old/asm/non_matchings/ovl2_6/func_801023FC.s diff --git a/asm/non_matchings/ovl2_6/func_801024E8.s b/asm.old/asm/non_matchings/ovl2_6/func_801024E8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801024E8.s rename to asm.old/asm/non_matchings/ovl2_6/func_801024E8.s diff --git a/asm/non_matchings/ovl2_6/func_80102570.s b/asm.old/asm/non_matchings/ovl2_6/func_80102570.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80102570.s rename to asm.old/asm/non_matchings/ovl2_6/func_80102570.s diff --git a/asm/non_matchings/ovl2_6/func_80103528.s b/asm.old/asm/non_matchings/ovl2_6/func_80103528.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80103528.s rename to asm.old/asm/non_matchings/ovl2_6/func_80103528.s diff --git a/asm/non_matchings/ovl2_6/func_80103B58.s b/asm.old/asm/non_matchings/ovl2_6/func_80103B58.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80103B58.s rename to asm.old/asm/non_matchings/ovl2_6/func_80103B58.s diff --git a/asm/non_matchings/ovl2_6/func_80104010.s b/asm.old/asm/non_matchings/ovl2_6/func_80104010.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104010.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104010.s diff --git a/asm/non_matchings/ovl2_6/func_801040CC.s b/asm.old/asm/non_matchings/ovl2_6/func_801040CC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801040CC.s rename to asm.old/asm/non_matchings/ovl2_6/func_801040CC.s diff --git a/asm/non_matchings/ovl2_6/func_80104184.s b/asm.old/asm/non_matchings/ovl2_6/func_80104184.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104184.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104184.s diff --git a/asm/non_matchings/ovl2_6/func_8010423C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010423C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010423C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010423C.s diff --git a/asm/non_matchings/ovl2_6/func_801042F4.s b/asm.old/asm/non_matchings/ovl2_6/func_801042F4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801042F4.s rename to asm.old/asm/non_matchings/ovl2_6/func_801042F4.s diff --git a/asm/non_matchings/ovl2_6/func_801043B0.s b/asm.old/asm/non_matchings/ovl2_6/func_801043B0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801043B0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801043B0.s diff --git a/asm/non_matchings/ovl2_6/func_80104468.s b/asm.old/asm/non_matchings/ovl2_6/func_80104468.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104468.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104468.s diff --git a/asm/non_matchings/ovl2_6/func_80104520.s b/asm.old/asm/non_matchings/ovl2_6/func_80104520.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104520.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104520.s diff --git a/asm/non_matchings/ovl2_6/func_801045DC.s b/asm.old/asm/non_matchings/ovl2_6/func_801045DC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801045DC.s rename to asm.old/asm/non_matchings/ovl2_6/func_801045DC.s diff --git a/asm/non_matchings/ovl2_6/func_801046A0.s b/asm.old/asm/non_matchings/ovl2_6/func_801046A0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801046A0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801046A0.s diff --git a/asm/non_matchings/ovl2_6/func_801047F0.s b/asm.old/asm/non_matchings/ovl2_6/func_801047F0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801047F0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801047F0.s diff --git a/asm/non_matchings/ovl2_6/func_801048A4.s b/asm.old/asm/non_matchings/ovl2_6/func_801048A4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801048A4.s rename to asm.old/asm/non_matchings/ovl2_6/func_801048A4.s diff --git a/asm/non_matchings/ovl2_6/func_80104958.s b/asm.old/asm/non_matchings/ovl2_6/func_80104958.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104958.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104958.s diff --git a/asm/non_matchings/ovl2_6/func_80104A08.s b/asm.old/asm/non_matchings/ovl2_6/func_80104A08.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104A08.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104A08.s diff --git a/asm/non_matchings/ovl2_6/func_80104AB4.s b/asm.old/asm/non_matchings/ovl2_6/func_80104AB4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104AB4.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104AB4.s diff --git a/asm/non_matchings/ovl2_6/func_80104B70.s b/asm.old/asm/non_matchings/ovl2_6/func_80104B70.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104B70.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104B70.s diff --git a/asm/non_matchings/ovl2_6/func_80104D2C.s b/asm.old/asm/non_matchings/ovl2_6/func_80104D2C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104D2C.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104D2C.s diff --git a/asm/non_matchings/ovl2_6/func_80104FB8.s b/asm.old/asm/non_matchings/ovl2_6/func_80104FB8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80104FB8.s rename to asm.old/asm/non_matchings/ovl2_6/func_80104FB8.s diff --git a/asm/non_matchings/ovl2_6/func_801050E0.s b/asm.old/asm/non_matchings/ovl2_6/func_801050E0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801050E0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801050E0.s diff --git a/asm/non_matchings/ovl2_6/func_80105180.s b/asm.old/asm/non_matchings/ovl2_6/func_80105180.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80105180.s rename to asm.old/asm/non_matchings/ovl2_6/func_80105180.s diff --git a/asm/non_matchings/ovl2_6/func_801051AC.s b/asm.old/asm/non_matchings/ovl2_6/func_801051AC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801051AC.s rename to asm.old/asm/non_matchings/ovl2_6/func_801051AC.s diff --git a/asm/non_matchings/ovl2_6/func_801051DC.s b/asm.old/asm/non_matchings/ovl2_6/func_801051DC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801051DC.s rename to asm.old/asm/non_matchings/ovl2_6/func_801051DC.s diff --git a/asm/non_matchings/ovl2_6/func_80105218.s b/asm.old/asm/non_matchings/ovl2_6/func_80105218.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80105218.s rename to asm.old/asm/non_matchings/ovl2_6/func_80105218.s diff --git a/asm/non_matchings/ovl2_6/func_80105238.s b/asm.old/asm/non_matchings/ovl2_6/func_80105238.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80105238.s rename to asm.old/asm/non_matchings/ovl2_6/func_80105238.s diff --git a/asm/non_matchings/ovl2_6/func_80105284.s b/asm.old/asm/non_matchings/ovl2_6/func_80105284.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80105284.s rename to asm.old/asm/non_matchings/ovl2_6/func_80105284.s diff --git a/asm/non_matchings/ovl2_6/func_80105530.s b/asm.old/asm/non_matchings/ovl2_6/func_80105530.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80105530.s rename to asm.old/asm/non_matchings/ovl2_6/func_80105530.s diff --git a/asm/non_matchings/ovl2_6/func_801056C8.s b/asm.old/asm/non_matchings/ovl2_6/func_801056C8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801056C8.s rename to asm.old/asm/non_matchings/ovl2_6/func_801056C8.s diff --git a/asm/non_matchings/ovl2_6/func_801057C4.s b/asm.old/asm/non_matchings/ovl2_6/func_801057C4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801057C4.s rename to asm.old/asm/non_matchings/ovl2_6/func_801057C4.s diff --git a/asm/non_matchings/ovl2_6/func_801058B8.s b/asm.old/asm/non_matchings/ovl2_6/func_801058B8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801058B8.s rename to asm.old/asm/non_matchings/ovl2_6/func_801058B8.s diff --git a/asm/non_matchings/ovl2_6/func_801060C4.s b/asm.old/asm/non_matchings/ovl2_6/func_801060C4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801060C4.s rename to asm.old/asm/non_matchings/ovl2_6/func_801060C4.s diff --git a/asm/non_matchings/ovl2_6/func_801063F0.s b/asm.old/asm/non_matchings/ovl2_6/func_801063F0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801063F0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801063F0.s diff --git a/asm/non_matchings/ovl2_6/func_8010669C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010669C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010669C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010669C.s diff --git a/asm/non_matchings/ovl2_6/func_80106834.s b/asm.old/asm/non_matchings/ovl2_6/func_80106834.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80106834.s rename to asm.old/asm/non_matchings/ovl2_6/func_80106834.s diff --git a/asm/non_matchings/ovl2_6/func_80106930.s b/asm.old/asm/non_matchings/ovl2_6/func_80106930.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80106930.s rename to asm.old/asm/non_matchings/ovl2_6/func_80106930.s diff --git a/asm/non_matchings/ovl2_6/func_80106C5C.s b/asm.old/asm/non_matchings/ovl2_6/func_80106C5C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80106C5C.s rename to asm.old/asm/non_matchings/ovl2_6/func_80106C5C.s diff --git a/asm/non_matchings/ovl2_6/func_80107074.s b/asm.old/asm/non_matchings/ovl2_6/func_80107074.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80107074.s rename to asm.old/asm/non_matchings/ovl2_6/func_80107074.s diff --git a/asm/non_matchings/ovl2_6/func_801072E0.s b/asm.old/asm/non_matchings/ovl2_6/func_801072E0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801072E0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801072E0.s diff --git a/asm/non_matchings/ovl2_6/func_801073C4.s b/asm.old/asm/non_matchings/ovl2_6/func_801073C4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801073C4.s rename to asm.old/asm/non_matchings/ovl2_6/func_801073C4.s diff --git a/asm/non_matchings/ovl2_6/func_801077D4.s b/asm.old/asm/non_matchings/ovl2_6/func_801077D4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801077D4.s rename to asm.old/asm/non_matchings/ovl2_6/func_801077D4.s diff --git a/asm/non_matchings/ovl2_6/func_801078A0.s b/asm.old/asm/non_matchings/ovl2_6/func_801078A0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801078A0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801078A0.s diff --git a/asm/non_matchings/ovl2_6/func_80107F94.s b/asm.old/asm/non_matchings/ovl2_6/func_80107F94.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80107F94.s rename to asm.old/asm/non_matchings/ovl2_6/func_80107F94.s diff --git a/asm/non_matchings/ovl2_6/func_80108078.s b/asm.old/asm/non_matchings/ovl2_6/func_80108078.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80108078.s rename to asm.old/asm/non_matchings/ovl2_6/func_80108078.s diff --git a/asm/non_matchings/ovl2_6/func_80108858.s b/asm.old/asm/non_matchings/ovl2_6/func_80108858.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80108858.s rename to asm.old/asm/non_matchings/ovl2_6/func_80108858.s diff --git a/asm/non_matchings/ovl2_6/func_80108E08.s b/asm.old/asm/non_matchings/ovl2_6/func_80108E08.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80108E08.s rename to asm.old/asm/non_matchings/ovl2_6/func_80108E08.s diff --git a/asm/non_matchings/ovl2_6/func_80109240.s b/asm.old/asm/non_matchings/ovl2_6/func_80109240.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109240.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109240.s diff --git a/asm/non_matchings/ovl2_6/func_8010924C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010924C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010924C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010924C.s diff --git a/asm/non_matchings/ovl2_6/func_80109318.s b/asm.old/asm/non_matchings/ovl2_6/func_80109318.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109318.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109318.s diff --git a/asm/non_matchings/ovl2_6/func_80109504.s b/asm.old/asm/non_matchings/ovl2_6/func_80109504.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109504.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109504.s diff --git a/asm/non_matchings/ovl2_6/func_801096F0.s b/asm.old/asm/non_matchings/ovl2_6/func_801096F0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801096F0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801096F0.s diff --git a/asm/non_matchings/ovl2_6/func_80109784.s b/asm.old/asm/non_matchings/ovl2_6/func_80109784.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109784.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109784.s diff --git a/asm/non_matchings/ovl2_6/func_80109970.s b/asm.old/asm/non_matchings/ovl2_6/func_80109970.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109970.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109970.s diff --git a/asm/non_matchings/ovl2_6/func_80109B5C.s b/asm.old/asm/non_matchings/ovl2_6/func_80109B5C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109B5C.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109B5C.s diff --git a/asm/non_matchings/ovl2_6/func_80109BF0.s b/asm.old/asm/non_matchings/ovl2_6/func_80109BF0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109BF0.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109BF0.s diff --git a/asm/non_matchings/ovl2_6/func_80109DD8.s b/asm.old/asm/non_matchings/ovl2_6/func_80109DD8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109DD8.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109DD8.s diff --git a/asm/non_matchings/ovl2_6/func_80109E00.s b/asm.old/asm/non_matchings/ovl2_6/func_80109E00.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109E00.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109E00.s diff --git a/asm/non_matchings/ovl2_6/func_80109E44.s b/asm.old/asm/non_matchings/ovl2_6/func_80109E44.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109E44.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109E44.s diff --git a/asm/non_matchings/ovl2_6/func_80109F60.s b/asm.old/asm/non_matchings/ovl2_6/func_80109F60.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109F60.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109F60.s diff --git a/asm/non_matchings/ovl2_6/func_80109FAC.s b/asm.old/asm/non_matchings/ovl2_6/func_80109FAC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80109FAC.s rename to asm.old/asm/non_matchings/ovl2_6/func_80109FAC.s diff --git a/asm/non_matchings/ovl2_6/func_8010A138.s b/asm.old/asm/non_matchings/ovl2_6/func_8010A138.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010A138.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010A138.s diff --git a/asm/non_matchings/ovl2_6/func_8010A2C4.s b/asm.old/asm/non_matchings/ovl2_6/func_8010A2C4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010A2C4.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010A2C4.s diff --git a/asm/non_matchings/ovl2_6/func_8010AA80.s b/asm.old/asm/non_matchings/ovl2_6/func_8010AA80.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010AA80.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010AA80.s diff --git a/asm/non_matchings/ovl2_6/func_8010AC1C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010AC1C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010AC1C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010AC1C.s diff --git a/asm/non_matchings/ovl2_6/func_8010AEE0.s b/asm.old/asm/non_matchings/ovl2_6/func_8010AEE0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010AEE0.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010AEE0.s diff --git a/asm/non_matchings/ovl2_6/func_8010AEF0.s b/asm.old/asm/non_matchings/ovl2_6/func_8010AEF0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010AEF0.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010AEF0.s diff --git a/asm/non_matchings/ovl2_6/func_8010B0B0.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B0B0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B0B0.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B0B0.s diff --git a/asm/non_matchings/ovl2_6/func_8010B0D8.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B0D8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B0D8.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B0D8.s diff --git a/asm/non_matchings/ovl2_6/func_8010B11C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B11C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B11C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B11C.s diff --git a/asm/non_matchings/ovl2_6/func_8010B238.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B238.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B238.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B238.s diff --git a/asm/non_matchings/ovl2_6/func_8010B284.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B284.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B284.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B284.s diff --git a/asm/non_matchings/ovl2_6/func_8010B480.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B480.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B480.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B480.s diff --git a/asm/non_matchings/ovl2_6/func_8010B67C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B67C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B67C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B67C.s diff --git a/asm/non_matchings/ovl2_6/func_8010B860.s b/asm.old/asm/non_matchings/ovl2_6/func_8010B860.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010B860.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010B860.s diff --git a/asm/non_matchings/ovl2_6/func_8010BA44.s b/asm.old/asm/non_matchings/ovl2_6/func_8010BA44.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010BA44.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010BA44.s diff --git a/asm/non_matchings/ovl2_6/func_8010BB08.s b/asm.old/asm/non_matchings/ovl2_6/func_8010BB08.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010BB08.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010BB08.s diff --git a/asm/non_matchings/ovl2_6/func_8010BBD4.s b/asm.old/asm/non_matchings/ovl2_6/func_8010BBD4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010BBD4.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010BBD4.s diff --git a/asm/non_matchings/ovl2_6/func_8010BD0C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010BD0C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010BD0C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010BD0C.s diff --git a/asm/non_matchings/ovl2_6/func_8010BD84.s b/asm.old/asm/non_matchings/ovl2_6/func_8010BD84.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010BD84.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010BD84.s diff --git a/asm/non_matchings/ovl2_6/func_8010BE7C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010BE7C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010BE7C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010BE7C.s diff --git a/asm/non_matchings/ovl2_6/func_8010BFAC.s b/asm.old/asm/non_matchings/ovl2_6/func_8010BFAC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010BFAC.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010BFAC.s diff --git a/asm/non_matchings/ovl2_6/func_8010C184.s b/asm.old/asm/non_matchings/ovl2_6/func_8010C184.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010C184.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010C184.s diff --git a/asm/non_matchings/ovl2_6/func_8010C274.s b/asm.old/asm/non_matchings/ovl2_6/func_8010C274.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010C274.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010C274.s diff --git a/asm/non_matchings/ovl2_6/func_8010C608.s b/asm.old/asm/non_matchings/ovl2_6/func_8010C608.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010C608.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010C608.s diff --git a/asm/non_matchings/ovl2_6/func_8010C734.s b/asm.old/asm/non_matchings/ovl2_6/func_8010C734.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010C734.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010C734.s diff --git a/asm/non_matchings/ovl2_6/func_8010CABC.s b/asm.old/asm/non_matchings/ovl2_6/func_8010CABC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010CABC.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010CABC.s diff --git a/asm/non_matchings/ovl2_6/func_8010CE44.s b/asm.old/asm/non_matchings/ovl2_6/func_8010CE44.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010CE44.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010CE44.s diff --git a/asm/non_matchings/ovl2_6/func_8010D138.s b/asm.old/asm/non_matchings/ovl2_6/func_8010D138.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010D138.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010D138.s diff --git a/asm/non_matchings/ovl2_6/func_8010D42C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010D42C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010D42C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010D42C.s diff --git a/asm/non_matchings/ovl2_6/func_8010D668.s b/asm.old/asm/non_matchings/ovl2_6/func_8010D668.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010D668.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010D668.s diff --git a/asm/non_matchings/ovl2_6/func_8010D8A4.s b/asm.old/asm/non_matchings/ovl2_6/func_8010D8A4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010D8A4.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010D8A4.s diff --git a/asm/non_matchings/ovl2_6/func_8010DA28.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DA28.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DA28.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DA28.s diff --git a/asm/non_matchings/ovl2_6/func_8010DB64.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DB64.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DB64.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DB64.s diff --git a/asm/non_matchings/ovl2_6/func_8010DC00.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DC00.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DC00.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DC00.s diff --git a/asm/non_matchings/ovl2_6/func_8010DC24.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DC24.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DC24.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DC24.s diff --git a/asm/non_matchings/ovl2_6/func_8010DC5C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DC5C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DC5C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DC5C.s diff --git a/asm/non_matchings/ovl2_6/func_8010DC8C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DC8C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DC8C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DC8C.s diff --git a/asm/non_matchings/ovl2_6/func_8010DCAC.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DCAC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DCAC.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DCAC.s diff --git a/asm/non_matchings/ovl2_6/func_8010DCDC.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DCDC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DCDC.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DCDC.s diff --git a/asm/non_matchings/ovl2_6/func_8010DD8C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DD8C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DD8C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DD8C.s diff --git a/asm/non_matchings/ovl2_6/func_8010DDA4.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DDA4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DDA4.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DDA4.s diff --git a/asm/non_matchings/ovl2_6/func_8010DF9C.s b/asm.old/asm/non_matchings/ovl2_6/func_8010DF9C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010DF9C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010DF9C.s diff --git a/asm/non_matchings/ovl2_6/func_8010E048.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E048.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E048.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E048.s diff --git a/asm/non_matchings/ovl2_6/func_8010E260.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E260.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E260.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E260.s diff --git a/asm/non_matchings/ovl2_6/func_8010E274.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E274.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E274.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E274.s diff --git a/asm/non_matchings/ovl2_6/func_8010E288.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E288.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E288.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E288.s diff --git a/asm/non_matchings/ovl2_6/func_8010E2A0.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E2A0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E2A0.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E2A0.s diff --git a/asm/non_matchings/ovl2_6/func_8010E2B8_ovl2.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E2B8_ovl2.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E2B8_ovl2.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E2B8_ovl2.s diff --git a/asm/non_matchings/ovl2_6/func_8010E324.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E324.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E324.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E324.s diff --git a/asm/non_matchings/ovl2_6/func_8010E5B0.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E5B0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E5B0.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E5B0.s diff --git a/asm/non_matchings/ovl2_6/func_8010E6F0.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E6F0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E6F0.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E6F0.s diff --git a/asm/non_matchings/ovl2_6/func_8010E740.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E740.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E740.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E740.s diff --git a/asm/non_matchings/ovl2_6/func_8010E8F0.s b/asm.old/asm/non_matchings/ovl2_6/func_8010E8F0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010E8F0.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010E8F0.s diff --git a/asm/non_matchings/ovl2_6/func_8010EA20_ovl2.s b/asm.old/asm/non_matchings/ovl2_6/func_8010EA20_ovl2.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010EA20_ovl2.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010EA20_ovl2.s diff --git a/asm/non_matchings/ovl2_6/func_8010EA68.s b/asm.old/asm/non_matchings/ovl2_6/func_8010EA68.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010EA68.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010EA68.s diff --git a/asm/non_matchings/ovl2_6/func_8010EE24.s b/asm.old/asm/non_matchings/ovl2_6/func_8010EE24.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010EE24.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010EE24.s diff --git a/asm/non_matchings/ovl2_6/func_8010EEE8.s b/asm.old/asm/non_matchings/ovl2_6/func_8010EEE8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010EEE8.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010EEE8.s diff --git a/asm/non_matchings/ovl2_6/func_8010EFA8.s b/asm.old/asm/non_matchings/ovl2_6/func_8010EFA8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010EFA8.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010EFA8.s diff --git a/asm/non_matchings/ovl2_6/func_8010F140.s b/asm.old/asm/non_matchings/ovl2_6/func_8010F140.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010F140.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010F140.s diff --git a/asm/non_matchings/ovl2_6/func_8010F964.s b/asm.old/asm/non_matchings/ovl2_6/func_8010F964.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010F964.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010F964.s diff --git a/asm/non_matchings/ovl2_6/func_8010F9AC.s b/asm.old/asm/non_matchings/ovl2_6/func_8010F9AC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010F9AC.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010F9AC.s diff --git a/asm/non_matchings/ovl2_6/func_8010FC30.s b/asm.old/asm/non_matchings/ovl2_6/func_8010FC30.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8010FC30.s rename to asm.old/asm/non_matchings/ovl2_6/func_8010FC30.s diff --git a/asm/non_matchings/ovl2_6/func_80110014.s b/asm.old/asm/non_matchings/ovl2_6/func_80110014.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110014.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110014.s diff --git a/asm/non_matchings/ovl2_6/func_80110138.s b/asm.old/asm/non_matchings/ovl2_6/func_80110138.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110138.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110138.s diff --git a/asm/non_matchings/ovl2_6/func_80110150.s b/asm.old/asm/non_matchings/ovl2_6/func_80110150.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110150.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110150.s diff --git a/asm/non_matchings/ovl2_6/func_801103C4.s b/asm.old/asm/non_matchings/ovl2_6/func_801103C4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801103C4.s rename to asm.old/asm/non_matchings/ovl2_6/func_801103C4.s diff --git a/asm/non_matchings/ovl2_6/func_80110438.s b/asm.old/asm/non_matchings/ovl2_6/func_80110438.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110438.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110438.s diff --git a/asm/non_matchings/ovl2_6/func_801105E8.s b/asm.old/asm/non_matchings/ovl2_6/func_801105E8.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801105E8.s rename to asm.old/asm/non_matchings/ovl2_6/func_801105E8.s diff --git a/asm/non_matchings/ovl2_6/func_80110B00.s b/asm.old/asm/non_matchings/ovl2_6/func_80110B00.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110B00.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110B00.s diff --git a/asm/non_matchings/ovl2_6/func_80110CCC.s b/asm.old/asm/non_matchings/ovl2_6/func_80110CCC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110CCC.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110CCC.s diff --git a/asm/non_matchings/ovl2_6/func_80110E94.s b/asm.old/asm/non_matchings/ovl2_6/func_80110E94.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110E94.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110E94.s diff --git a/asm/non_matchings/ovl2_6/func_80110FD4.s b/asm.old/asm/non_matchings/ovl2_6/func_80110FD4.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80110FD4.s rename to asm.old/asm/non_matchings/ovl2_6/func_80110FD4.s diff --git a/asm/non_matchings/ovl2_6/func_80111184.s b/asm.old/asm/non_matchings/ovl2_6/func_80111184.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111184.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111184.s diff --git a/asm/non_matchings/ovl2_6/func_8011145C.s b/asm.old/asm/non_matchings/ovl2_6/func_8011145C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_8011145C.s rename to asm.old/asm/non_matchings/ovl2_6/func_8011145C.s diff --git a/asm/non_matchings/ovl2_6/func_801114E0.s b/asm.old/asm/non_matchings/ovl2_6/func_801114E0.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801114E0.s rename to asm.old/asm/non_matchings/ovl2_6/func_801114E0.s diff --git a/asm/non_matchings/ovl2_6/func_80111534.s b/asm.old/asm/non_matchings/ovl2_6/func_80111534.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111534.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111534.s diff --git a/asm/non_matchings/ovl2_6/func_80111550.s b/asm.old/asm/non_matchings/ovl2_6/func_80111550.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111550.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111550.s diff --git a/asm/non_matchings/ovl2_6/func_80111574.s b/asm.old/asm/non_matchings/ovl2_6/func_80111574.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111574.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111574.s diff --git a/asm/non_matchings/ovl2_6/func_801117BC.s b/asm.old/asm/non_matchings/ovl2_6/func_801117BC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_801117BC.s rename to asm.old/asm/non_matchings/ovl2_6/func_801117BC.s diff --git a/asm/non_matchings/ovl2_6/func_80111A04.s b/asm.old/asm/non_matchings/ovl2_6/func_80111A04.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111A04.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111A04.s diff --git a/asm/non_matchings/ovl2_6/func_80111C4C.s b/asm.old/asm/non_matchings/ovl2_6/func_80111C4C.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111C4C.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111C4C.s diff --git a/asm/non_matchings/ovl2_6/func_80111C88.s b/asm.old/asm/non_matchings/ovl2_6/func_80111C88.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111C88.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111C88.s diff --git a/asm/non_matchings/ovl2_6/func_80111ECC.s b/asm.old/asm/non_matchings/ovl2_6/func_80111ECC.s similarity index 100% rename from asm/non_matchings/ovl2_6/func_80111ECC.s rename to asm.old/asm/non_matchings/ovl2_6/func_80111ECC.s diff --git a/asm/non_matchings/ovl2_7/func_80111F10.s b/asm.old/asm/non_matchings/ovl2_7/func_80111F10.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80111F10.s rename to asm.old/asm/non_matchings/ovl2_7/func_80111F10.s diff --git a/asm/non_matchings/ovl2_7/func_80112000.s b/asm.old/asm/non_matchings/ovl2_7/func_80112000.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112000.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112000.s diff --git a/asm/non_matchings/ovl2_7/func_801121E0.s b/asm.old/asm/non_matchings/ovl2_7/func_801121E0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801121E0.s rename to asm.old/asm/non_matchings/ovl2_7/func_801121E0.s diff --git a/asm/non_matchings/ovl2_7/func_801123AC.s b/asm.old/asm/non_matchings/ovl2_7/func_801123AC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801123AC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801123AC.s diff --git a/asm/non_matchings/ovl2_7/func_80112498.s b/asm.old/asm/non_matchings/ovl2_7/func_80112498.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112498.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112498.s diff --git a/asm/non_matchings/ovl2_7/func_8011253C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011253C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011253C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011253C.s diff --git a/asm/non_matchings/ovl2_7/func_80112600.s b/asm.old/asm/non_matchings/ovl2_7/func_80112600.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112600.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112600.s diff --git a/asm/non_matchings/ovl2_7/func_801126A4.s b/asm.old/asm/non_matchings/ovl2_7/func_801126A4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801126A4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801126A4.s diff --git a/asm/non_matchings/ovl2_7/func_80112768.s b/asm.old/asm/non_matchings/ovl2_7/func_80112768.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112768.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112768.s diff --git a/asm/non_matchings/ovl2_7/func_801127D8.s b/asm.old/asm/non_matchings/ovl2_7/func_801127D8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801127D8.s rename to asm.old/asm/non_matchings/ovl2_7/func_801127D8.s diff --git a/asm/non_matchings/ovl2_7/func_80112828.s b/asm.old/asm/non_matchings/ovl2_7/func_80112828.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112828.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112828.s diff --git a/asm/non_matchings/ovl2_7/func_801128A4.s b/asm.old/asm/non_matchings/ovl2_7/func_801128A4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801128A4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801128A4.s diff --git a/asm/non_matchings/ovl2_7/func_801129AC.s b/asm.old/asm/non_matchings/ovl2_7/func_801129AC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801129AC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801129AC.s diff --git a/asm/non_matchings/ovl2_7/func_801129C4.s b/asm.old/asm/non_matchings/ovl2_7/func_801129C4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801129C4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801129C4.s diff --git a/asm/non_matchings/ovl2_7/func_801129DC.s b/asm.old/asm/non_matchings/ovl2_7/func_801129DC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801129DC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801129DC.s diff --git a/asm/non_matchings/ovl2_7/func_801129F4.s b/asm.old/asm/non_matchings/ovl2_7/func_801129F4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801129F4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801129F4.s diff --git a/asm/non_matchings/ovl2_7/func_80112A0C.s b/asm.old/asm/non_matchings/ovl2_7/func_80112A0C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112A0C.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112A0C.s diff --git a/asm/non_matchings/ovl2_7/func_80112A40.s b/asm.old/asm/non_matchings/ovl2_7/func_80112A40.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112A40.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112A40.s diff --git a/asm/non_matchings/ovl2_7/func_80112B4C.s b/asm.old/asm/non_matchings/ovl2_7/func_80112B4C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112B4C.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112B4C.s diff --git a/asm/non_matchings/ovl2_7/func_80112CD4.s b/asm.old/asm/non_matchings/ovl2_7/func_80112CD4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112CD4.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112CD4.s diff --git a/asm/non_matchings/ovl2_7/func_80112ED4.s b/asm.old/asm/non_matchings/ovl2_7/func_80112ED4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112ED4.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112ED4.s diff --git a/asm/non_matchings/ovl2_7/func_80112F70.s b/asm.old/asm/non_matchings/ovl2_7/func_80112F70.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80112F70.s rename to asm.old/asm/non_matchings/ovl2_7/func_80112F70.s diff --git a/asm/non_matchings/ovl2_7/func_80113028.s b/asm.old/asm/non_matchings/ovl2_7/func_80113028.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80113028.s rename to asm.old/asm/non_matchings/ovl2_7/func_80113028.s diff --git a/asm/non_matchings/ovl2_7/func_80113300.s b/asm.old/asm/non_matchings/ovl2_7/func_80113300.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80113300.s rename to asm.old/asm/non_matchings/ovl2_7/func_80113300.s diff --git a/asm/non_matchings/ovl2_7/func_801133C8.s b/asm.old/asm/non_matchings/ovl2_7/func_801133C8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801133C8.s rename to asm.old/asm/non_matchings/ovl2_7/func_801133C8.s diff --git a/asm/non_matchings/ovl2_7/func_80113F08.s b/asm.old/asm/non_matchings/ovl2_7/func_80113F08.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80113F08.s rename to asm.old/asm/non_matchings/ovl2_7/func_80113F08.s diff --git a/asm/non_matchings/ovl2_7/func_80114974.s b/asm.old/asm/non_matchings/ovl2_7/func_80114974.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80114974.s rename to asm.old/asm/non_matchings/ovl2_7/func_80114974.s diff --git a/asm/non_matchings/ovl2_7/func_801149C0.s b/asm.old/asm/non_matchings/ovl2_7/func_801149C0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801149C0.s rename to asm.old/asm/non_matchings/ovl2_7/func_801149C0.s diff --git a/asm/non_matchings/ovl2_7/func_80114A14.s b/asm.old/asm/non_matchings/ovl2_7/func_80114A14.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80114A14.s rename to asm.old/asm/non_matchings/ovl2_7/func_80114A14.s diff --git a/asm/non_matchings/ovl2_7/func_80114CF4.s b/asm.old/asm/non_matchings/ovl2_7/func_80114CF4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80114CF4.s rename to asm.old/asm/non_matchings/ovl2_7/func_80114CF4.s diff --git a/asm/non_matchings/ovl2_7/func_80114D54.s b/asm.old/asm/non_matchings/ovl2_7/func_80114D54.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80114D54.s rename to asm.old/asm/non_matchings/ovl2_7/func_80114D54.s diff --git a/asm/non_matchings/ovl2_7/func_80114DBC.s b/asm.old/asm/non_matchings/ovl2_7/func_80114DBC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80114DBC.s rename to asm.old/asm/non_matchings/ovl2_7/func_80114DBC.s diff --git a/asm/non_matchings/ovl2_7/func_80114E80.s b/asm.old/asm/non_matchings/ovl2_7/func_80114E80.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80114E80.s rename to asm.old/asm/non_matchings/ovl2_7/func_80114E80.s diff --git a/asm/non_matchings/ovl2_7/func_80115070.s b/asm.old/asm/non_matchings/ovl2_7/func_80115070.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115070.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115070.s diff --git a/asm/non_matchings/ovl2_7/func_8011511C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011511C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011511C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011511C.s diff --git a/asm/non_matchings/ovl2_7/func_801151BC.s b/asm.old/asm/non_matchings/ovl2_7/func_801151BC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801151BC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801151BC.s diff --git a/asm/non_matchings/ovl2_7/func_80115270.s b/asm.old/asm/non_matchings/ovl2_7/func_80115270.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115270.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115270.s diff --git a/asm/non_matchings/ovl2_7/func_80115330.s b/asm.old/asm/non_matchings/ovl2_7/func_80115330.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115330.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115330.s diff --git a/asm/non_matchings/ovl2_7/func_801153B8.s b/asm.old/asm/non_matchings/ovl2_7/func_801153B8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801153B8.s rename to asm.old/asm/non_matchings/ovl2_7/func_801153B8.s diff --git a/asm/non_matchings/ovl2_7/func_8011544C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011544C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011544C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011544C.s diff --git a/asm/non_matchings/ovl2_7/func_801154F0.s b/asm.old/asm/non_matchings/ovl2_7/func_801154F0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801154F0.s rename to asm.old/asm/non_matchings/ovl2_7/func_801154F0.s diff --git a/asm/non_matchings/ovl2_7/func_80115578.s b/asm.old/asm/non_matchings/ovl2_7/func_80115578.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115578.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115578.s diff --git a/asm/non_matchings/ovl2_7/func_80115618.s b/asm.old/asm/non_matchings/ovl2_7/func_80115618.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115618.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115618.s diff --git a/asm/non_matchings/ovl2_7/func_8011572C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011572C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011572C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011572C.s diff --git a/asm/non_matchings/ovl2_7/func_80115888.s b/asm.old/asm/non_matchings/ovl2_7/func_80115888.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115888.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115888.s diff --git a/asm/non_matchings/ovl2_7/func_8011591C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011591C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011591C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011591C.s diff --git a/asm/non_matchings/ovl2_7/func_80115A7C.s b/asm.old/asm/non_matchings/ovl2_7/func_80115A7C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115A7C.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115A7C.s diff --git a/asm/non_matchings/ovl2_7/func_80115ACC.s b/asm.old/asm/non_matchings/ovl2_7/func_80115ACC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115ACC.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115ACC.s diff --git a/asm/non_matchings/ovl2_7/func_80115B64.s b/asm.old/asm/non_matchings/ovl2_7/func_80115B64.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115B64.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115B64.s diff --git a/asm/non_matchings/ovl2_7/func_80115C4C.s b/asm.old/asm/non_matchings/ovl2_7/func_80115C4C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115C4C.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115C4C.s diff --git a/asm/non_matchings/ovl2_7/func_80115D38.s b/asm.old/asm/non_matchings/ovl2_7/func_80115D38.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115D38.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115D38.s diff --git a/asm/non_matchings/ovl2_7/func_80115EAC.s b/asm.old/asm/non_matchings/ovl2_7/func_80115EAC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115EAC.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115EAC.s diff --git a/asm/non_matchings/ovl2_7/func_80115F04.s b/asm.old/asm/non_matchings/ovl2_7/func_80115F04.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80115F04.s rename to asm.old/asm/non_matchings/ovl2_7/func_80115F04.s diff --git a/asm/non_matchings/ovl2_7/func_80116118.s b/asm.old/asm/non_matchings/ovl2_7/func_80116118.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116118.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116118.s diff --git a/asm/non_matchings/ovl2_7/func_801161D4.s b/asm.old/asm/non_matchings/ovl2_7/func_801161D4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801161D4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801161D4.s diff --git a/asm/non_matchings/ovl2_7/func_80116260.s b/asm.old/asm/non_matchings/ovl2_7/func_80116260.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116260.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116260.s diff --git a/asm/non_matchings/ovl2_7/func_801162F4.s b/asm.old/asm/non_matchings/ovl2_7/func_801162F4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801162F4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801162F4.s diff --git a/asm/non_matchings/ovl2_7/func_80116438.s b/asm.old/asm/non_matchings/ovl2_7/func_80116438.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116438.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116438.s diff --git a/asm/non_matchings/ovl2_7/func_8011646C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011646C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011646C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011646C.s diff --git a/asm/non_matchings/ovl2_7/func_801164A0.s b/asm.old/asm/non_matchings/ovl2_7/func_801164A0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801164A0.s rename to asm.old/asm/non_matchings/ovl2_7/func_801164A0.s diff --git a/asm/non_matchings/ovl2_7/func_801164D4.s b/asm.old/asm/non_matchings/ovl2_7/func_801164D4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801164D4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801164D4.s diff --git a/asm/non_matchings/ovl2_7/func_80116508.s b/asm.old/asm/non_matchings/ovl2_7/func_80116508.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116508.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116508.s diff --git a/asm/non_matchings/ovl2_7/func_80116B68.s b/asm.old/asm/non_matchings/ovl2_7/func_80116B68.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116B68.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116B68.s diff --git a/asm/non_matchings/ovl2_7/func_80116B90.s b/asm.old/asm/non_matchings/ovl2_7/func_80116B90.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116B90.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116B90.s diff --git a/asm/non_matchings/ovl2_7/func_80116F80.s b/asm.old/asm/non_matchings/ovl2_7/func_80116F80.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116F80.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116F80.s diff --git a/asm/non_matchings/ovl2_7/func_80116FF8.s b/asm.old/asm/non_matchings/ovl2_7/func_80116FF8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80116FF8.s rename to asm.old/asm/non_matchings/ovl2_7/func_80116FF8.s diff --git a/asm/non_matchings/ovl2_7/func_80117178.s b/asm.old/asm/non_matchings/ovl2_7/func_80117178.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117178.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117178.s diff --git a/asm/non_matchings/ovl2_7/func_80117210.s b/asm.old/asm/non_matchings/ovl2_7/func_80117210.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117210.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117210.s diff --git a/asm/non_matchings/ovl2_7/func_80117328.s b/asm.old/asm/non_matchings/ovl2_7/func_80117328.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117328.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117328.s diff --git a/asm/non_matchings/ovl2_7/func_801173F4.s b/asm.old/asm/non_matchings/ovl2_7/func_801173F4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801173F4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801173F4.s diff --git a/asm/non_matchings/ovl2_7/func_80117570.s b/asm.old/asm/non_matchings/ovl2_7/func_80117570.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117570.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117570.s diff --git a/asm/non_matchings/ovl2_7/func_8011764C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011764C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011764C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011764C.s diff --git a/asm/non_matchings/ovl2_7/func_80117758.s b/asm.old/asm/non_matchings/ovl2_7/func_80117758.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117758.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117758.s diff --git a/asm/non_matchings/ovl2_7/func_80117784.s b/asm.old/asm/non_matchings/ovl2_7/func_80117784.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117784.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117784.s diff --git a/asm/non_matchings/ovl2_7/func_801177B0.s b/asm.old/asm/non_matchings/ovl2_7/func_801177B0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801177B0.s rename to asm.old/asm/non_matchings/ovl2_7/func_801177B0.s diff --git a/asm/non_matchings/ovl2_7/func_801177DC.s b/asm.old/asm/non_matchings/ovl2_7/func_801177DC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801177DC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801177DC.s diff --git a/asm/non_matchings/ovl2_7/func_80117808.s b/asm.old/asm/non_matchings/ovl2_7/func_80117808.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117808.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117808.s diff --git a/asm/non_matchings/ovl2_7/func_80117834.s b/asm.old/asm/non_matchings/ovl2_7/func_80117834.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117834.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117834.s diff --git a/asm/non_matchings/ovl2_7/func_80117904.s b/asm.old/asm/non_matchings/ovl2_7/func_80117904.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117904.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117904.s diff --git a/asm/non_matchings/ovl2_7/func_80117AB4.s b/asm.old/asm/non_matchings/ovl2_7/func_80117AB4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117AB4.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117AB4.s diff --git a/asm/non_matchings/ovl2_7/func_80117F28.s b/asm.old/asm/non_matchings/ovl2_7/func_80117F28.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80117F28.s rename to asm.old/asm/non_matchings/ovl2_7/func_80117F28.s diff --git a/asm/non_matchings/ovl2_7/func_801180B8.s b/asm.old/asm/non_matchings/ovl2_7/func_801180B8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801180B8.s rename to asm.old/asm/non_matchings/ovl2_7/func_801180B8.s diff --git a/asm/non_matchings/ovl2_7/func_80118130.s b/asm.old/asm/non_matchings/ovl2_7/func_80118130.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118130.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118130.s diff --git a/asm/non_matchings/ovl2_7/func_801181AC.s b/asm.old/asm/non_matchings/ovl2_7/func_801181AC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801181AC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801181AC.s diff --git a/asm/non_matchings/ovl2_7/func_80118270.s b/asm.old/asm/non_matchings/ovl2_7/func_80118270.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118270.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118270.s diff --git a/asm/non_matchings/ovl2_7/func_8011829C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011829C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011829C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011829C.s diff --git a/asm/non_matchings/ovl2_7/func_801182C8.s b/asm.old/asm/non_matchings/ovl2_7/func_801182C8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801182C8.s rename to asm.old/asm/non_matchings/ovl2_7/func_801182C8.s diff --git a/asm/non_matchings/ovl2_7/func_801182F4.s b/asm.old/asm/non_matchings/ovl2_7/func_801182F4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801182F4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801182F4.s diff --git a/asm/non_matchings/ovl2_7/func_801184B8.s b/asm.old/asm/non_matchings/ovl2_7/func_801184B8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801184B8.s rename to asm.old/asm/non_matchings/ovl2_7/func_801184B8.s diff --git a/asm/non_matchings/ovl2_7/func_80118638.s b/asm.old/asm/non_matchings/ovl2_7/func_80118638.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118638.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118638.s diff --git a/asm/non_matchings/ovl2_7/func_80118760.s b/asm.old/asm/non_matchings/ovl2_7/func_80118760.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118760.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118760.s diff --git a/asm/non_matchings/ovl2_7/func_801187A4.s b/asm.old/asm/non_matchings/ovl2_7/func_801187A4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801187A4.s rename to asm.old/asm/non_matchings/ovl2_7/func_801187A4.s diff --git a/asm/non_matchings/ovl2_7/func_8011884C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011884C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011884C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011884C.s diff --git a/asm/non_matchings/ovl2_7/func_8011890C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011890C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011890C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011890C.s diff --git a/asm/non_matchings/ovl2_7/func_80118A60.s b/asm.old/asm/non_matchings/ovl2_7/func_80118A60.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118A60.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118A60.s diff --git a/asm/non_matchings/ovl2_7/func_80118B60.s b/asm.old/asm/non_matchings/ovl2_7/func_80118B60.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118B60.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118B60.s diff --git a/asm/non_matchings/ovl2_7/func_80118BC8.s b/asm.old/asm/non_matchings/ovl2_7/func_80118BC8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118BC8.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118BC8.s diff --git a/asm/non_matchings/ovl2_7/func_80118C88.s b/asm.old/asm/non_matchings/ovl2_7/func_80118C88.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118C88.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118C88.s diff --git a/asm/non_matchings/ovl2_7/func_80118CA8.s b/asm.old/asm/non_matchings/ovl2_7/func_80118CA8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118CA8.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118CA8.s diff --git a/asm/non_matchings/ovl2_7/func_80118CC8.s b/asm.old/asm/non_matchings/ovl2_7/func_80118CC8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118CC8.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118CC8.s diff --git a/asm/non_matchings/ovl2_7/func_80118D84.s b/asm.old/asm/non_matchings/ovl2_7/func_80118D84.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118D84.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118D84.s diff --git a/asm/non_matchings/ovl2_7/func_80118E44.s b/asm.old/asm/non_matchings/ovl2_7/func_80118E44.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118E44.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118E44.s diff --git a/asm/non_matchings/ovl2_7/func_80118F70.s b/asm.old/asm/non_matchings/ovl2_7/func_80118F70.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118F70.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118F70.s diff --git a/asm/non_matchings/ovl2_7/func_80118F9C.s b/asm.old/asm/non_matchings/ovl2_7/func_80118F9C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80118F9C.s rename to asm.old/asm/non_matchings/ovl2_7/func_80118F9C.s diff --git a/asm/non_matchings/ovl2_7/func_801190B0.s b/asm.old/asm/non_matchings/ovl2_7/func_801190B0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801190B0.s rename to asm.old/asm/non_matchings/ovl2_7/func_801190B0.s diff --git a/asm/non_matchings/ovl2_7/func_801190DC.s b/asm.old/asm/non_matchings/ovl2_7/func_801190DC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801190DC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801190DC.s diff --git a/asm/non_matchings/ovl2_7/func_80119188.s b/asm.old/asm/non_matchings/ovl2_7/func_80119188.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119188.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119188.s diff --git a/asm/non_matchings/ovl2_7/func_80119320.s b/asm.old/asm/non_matchings/ovl2_7/func_80119320.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119320.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119320.s diff --git a/asm/non_matchings/ovl2_7/func_8011946C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011946C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011946C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011946C.s diff --git a/asm/non_matchings/ovl2_7/func_8011948C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011948C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011948C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011948C.s diff --git a/asm/non_matchings/ovl2_7/func_801194AC.s b/asm.old/asm/non_matchings/ovl2_7/func_801194AC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801194AC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801194AC.s diff --git a/asm/non_matchings/ovl2_7/func_801194CC.s b/asm.old/asm/non_matchings/ovl2_7/func_801194CC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_801194CC.s rename to asm.old/asm/non_matchings/ovl2_7/func_801194CC.s diff --git a/asm/non_matchings/ovl2_7/func_8011978C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011978C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011978C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011978C.s diff --git a/asm/non_matchings/ovl2_7/func_8011992C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011992C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011992C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011992C.s diff --git a/asm/non_matchings/ovl2_7/func_80119C40.s b/asm.old/asm/non_matchings/ovl2_7/func_80119C40.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119C40.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119C40.s diff --git a/asm/non_matchings/ovl2_7/func_80119C6C.s b/asm.old/asm/non_matchings/ovl2_7/func_80119C6C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119C6C.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119C6C.s diff --git a/asm/non_matchings/ovl2_7/func_80119C98.s b/asm.old/asm/non_matchings/ovl2_7/func_80119C98.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119C98.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119C98.s diff --git a/asm/non_matchings/ovl2_7/func_80119CC4.s b/asm.old/asm/non_matchings/ovl2_7/func_80119CC4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119CC4.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119CC4.s diff --git a/asm/non_matchings/ovl2_7/func_80119CF0.s b/asm.old/asm/non_matchings/ovl2_7/func_80119CF0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119CF0.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119CF0.s diff --git a/asm/non_matchings/ovl2_7/func_80119D1C.s b/asm.old/asm/non_matchings/ovl2_7/func_80119D1C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119D1C.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119D1C.s diff --git a/asm/non_matchings/ovl2_7/func_80119D48.s b/asm.old/asm/non_matchings/ovl2_7/func_80119D48.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119D48.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119D48.s diff --git a/asm/non_matchings/ovl2_7/func_80119D74.s b/asm.old/asm/non_matchings/ovl2_7/func_80119D74.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_80119D74.s rename to asm.old/asm/non_matchings/ovl2_7/func_80119D74.s diff --git a/asm/non_matchings/ovl2_7/func_8011A060.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A060.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A060.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A060.s diff --git a/asm/non_matchings/ovl2_7/func_8011A0FC.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A0FC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A0FC.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A0FC.s diff --git a/asm/non_matchings/ovl2_7/func_8011A198.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A198.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A198.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A198.s diff --git a/asm/non_matchings/ovl2_7/func_8011A234.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A234.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A234.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A234.s diff --git a/asm/non_matchings/ovl2_7/func_8011A254.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A254.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A254.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A254.s diff --git a/asm/non_matchings/ovl2_7/func_8011A274.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A274.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A274.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A274.s diff --git a/asm/non_matchings/ovl2_7/func_8011A294.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A294.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A294.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A294.s diff --git a/asm/non_matchings/ovl2_7/func_8011A2F4.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A2F4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A2F4.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A2F4.s diff --git a/asm/non_matchings/ovl2_7/func_8011A588.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A588.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A588.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A588.s diff --git a/asm/non_matchings/ovl2_7/func_8011A638.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A638.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A638.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A638.s diff --git a/asm/non_matchings/ovl2_7/func_8011A678.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A678.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A678.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A678.s diff --git a/asm/non_matchings/ovl2_7/func_8011A7A8.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A7A8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A7A8.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A7A8.s diff --git a/asm/non_matchings/ovl2_7/func_8011A9EC.s b/asm.old/asm/non_matchings/ovl2_7/func_8011A9EC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011A9EC.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011A9EC.s diff --git a/asm/non_matchings/ovl2_7/func_8011AA7C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011AA7C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011AA7C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011AA7C.s diff --git a/asm/non_matchings/ovl2_7/func_8011ADFC.s b/asm.old/asm/non_matchings/ovl2_7/func_8011ADFC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011ADFC.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011ADFC.s diff --git a/asm/non_matchings/ovl2_7/func_8011AE6C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011AE6C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011AE6C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011AE6C.s diff --git a/asm/non_matchings/ovl2_7/func_8011AEF0.s b/asm.old/asm/non_matchings/ovl2_7/func_8011AEF0.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011AEF0.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011AEF0.s diff --git a/asm/non_matchings/ovl2_7/func_8011AF50.s b/asm.old/asm/non_matchings/ovl2_7/func_8011AF50.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011AF50.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011AF50.s diff --git a/asm/non_matchings/ovl2_7/func_8011B050.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B050.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B050.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B050.s diff --git a/asm/non_matchings/ovl2_7/func_8011B0A4.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B0A4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B0A4.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B0A4.s diff --git a/asm/non_matchings/ovl2_7/func_8011B188.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B188.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B188.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B188.s diff --git a/asm/non_matchings/ovl2_7/func_8011B22C.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B22C.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B22C.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B22C.s diff --git a/asm/non_matchings/ovl2_7/func_8011B348.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B348.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B348.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B348.s diff --git a/asm/non_matchings/ovl2_7/func_8011B3B8.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B3B8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B3B8.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B3B8.s diff --git a/asm/non_matchings/ovl2_7/func_8011B3F4.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B3F4.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B3F4.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B3F4.s diff --git a/asm/non_matchings/ovl2_7/func_8011B464.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B464.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B464.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B464.s diff --git a/asm/non_matchings/ovl2_7/func_8011B528.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B528.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B528.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B528.s diff --git a/asm/non_matchings/ovl2_7/func_8011B554.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B554.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B554.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B554.s diff --git a/asm/non_matchings/ovl2_7/func_8011B580.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B580.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B580.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B580.s diff --git a/asm/non_matchings/ovl2_7/func_8011B5AC.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B5AC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B5AC.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B5AC.s diff --git a/asm/non_matchings/ovl2_7/func_8011B6D8.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B6D8.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B6D8.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B6D8.s diff --git a/asm/non_matchings/ovl2_7/func_8011B7CC.s b/asm.old/asm/non_matchings/ovl2_7/func_8011B7CC.s similarity index 100% rename from asm/non_matchings/ovl2_7/func_8011B7CC.s rename to asm.old/asm/non_matchings/ovl2_7/func_8011B7CC.s diff --git a/asm/non_matchings/ovl2_8/func_8011BD30.s b/asm.old/asm/non_matchings/ovl2_8/func_8011BD30.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011BD30.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011BD30.s diff --git a/asm/non_matchings/ovl2_8/func_8011BF4C.s b/asm.old/asm/non_matchings/ovl2_8/func_8011BF4C.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011BF4C.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011BF4C.s diff --git a/asm/non_matchings/ovl2_8/func_8011C344.s b/asm.old/asm/non_matchings/ovl2_8/func_8011C344.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011C344.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011C344.s diff --git a/asm/non_matchings/ovl2_8/func_8011C4E8.s b/asm.old/asm/non_matchings/ovl2_8/func_8011C4E8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011C4E8.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011C4E8.s diff --git a/asm/non_matchings/ovl2_8/func_8011C720.s b/asm.old/asm/non_matchings/ovl2_8/func_8011C720.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011C720.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011C720.s diff --git a/asm/non_matchings/ovl2_8/func_8011C87C.s b/asm.old/asm/non_matchings/ovl2_8/func_8011C87C.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011C87C.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011C87C.s diff --git a/asm/non_matchings/ovl2_8/func_8011C8F8.s b/asm.old/asm/non_matchings/ovl2_8/func_8011C8F8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011C8F8.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011C8F8.s diff --git a/asm/non_matchings/ovl2_8/func_8011CCB8.s b/asm.old/asm/non_matchings/ovl2_8/func_8011CCB8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011CCB8.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011CCB8.s diff --git a/asm/non_matchings/ovl2_8/func_8011CFF4.s b/asm.old/asm/non_matchings/ovl2_8/func_8011CFF4.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011CFF4.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011CFF4.s diff --git a/asm/non_matchings/ovl2_8/func_8011D0FC.s b/asm.old/asm/non_matchings/ovl2_8/func_8011D0FC.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011D0FC.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011D0FC.s diff --git a/asm/non_matchings/ovl2_8/func_8011D4A4.s b/asm.old/asm/non_matchings/ovl2_8/func_8011D4A4.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011D4A4.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011D4A4.s diff --git a/asm/non_matchings/ovl2_8/func_8011D67C.s b/asm.old/asm/non_matchings/ovl2_8/func_8011D67C.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011D67C.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011D67C.s diff --git a/asm/non_matchings/ovl2_8/func_8011D858.s b/asm.old/asm/non_matchings/ovl2_8/func_8011D858.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011D858.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011D858.s diff --git a/asm/non_matchings/ovl2_8/func_8011DA34.s b/asm.old/asm/non_matchings/ovl2_8/func_8011DA34.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011DA34.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011DA34.s diff --git a/asm/non_matchings/ovl2_8/func_8011DAF8.s b/asm.old/asm/non_matchings/ovl2_8/func_8011DAF8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011DAF8.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011DAF8.s diff --git a/asm/non_matchings/ovl2_8/func_8011DD5C.s b/asm.old/asm/non_matchings/ovl2_8/func_8011DD5C.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011DD5C.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011DD5C.s diff --git a/asm/non_matchings/ovl2_8/func_8011E374.s b/asm.old/asm/non_matchings/ovl2_8/func_8011E374.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011E374.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011E374.s diff --git a/asm/non_matchings/ovl2_8/func_8011E548.s b/asm.old/asm/non_matchings/ovl2_8/func_8011E548.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011E548.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011E548.s diff --git a/asm/non_matchings/ovl2_8/func_8011E978.s b/asm.old/asm/non_matchings/ovl2_8/func_8011E978.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011E978.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011E978.s diff --git a/asm/non_matchings/ovl2_8/func_8011EBD4.s b/asm.old/asm/non_matchings/ovl2_8/func_8011EBD4.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011EBD4.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011EBD4.s diff --git a/asm/non_matchings/ovl2_8/func_8011ED68.s b/asm.old/asm/non_matchings/ovl2_8/func_8011ED68.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011ED68.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011ED68.s diff --git a/asm/non_matchings/ovl2_8/func_8011F690.s b/asm.old/asm/non_matchings/ovl2_8/func_8011F690.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011F690.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011F690.s diff --git a/asm/non_matchings/ovl2_8/func_8011FEF8.s b/asm.old/asm/non_matchings/ovl2_8/func_8011FEF8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8011FEF8.s rename to asm.old/asm/non_matchings/ovl2_8/func_8011FEF8.s diff --git a/asm/non_matchings/ovl2_8/func_80120BCC.s b/asm.old/asm/non_matchings/ovl2_8/func_80120BCC.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80120BCC.s rename to asm.old/asm/non_matchings/ovl2_8/func_80120BCC.s diff --git a/asm/non_matchings/ovl2_8/func_80120CCC.s b/asm.old/asm/non_matchings/ovl2_8/func_80120CCC.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80120CCC.s rename to asm.old/asm/non_matchings/ovl2_8/func_80120CCC.s diff --git a/asm/non_matchings/ovl2_8/func_80120E74.s b/asm.old/asm/non_matchings/ovl2_8/func_80120E74.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80120E74.s rename to asm.old/asm/non_matchings/ovl2_8/func_80120E74.s diff --git a/asm/non_matchings/ovl2_8/func_801210B4.s b/asm.old/asm/non_matchings/ovl2_8/func_801210B4.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_801210B4.s rename to asm.old/asm/non_matchings/ovl2_8/func_801210B4.s diff --git a/asm/non_matchings/ovl2_8/func_801210FC.s b/asm.old/asm/non_matchings/ovl2_8/func_801210FC.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_801210FC.s rename to asm.old/asm/non_matchings/ovl2_8/func_801210FC.s diff --git a/asm/non_matchings/ovl2_8/func_80121284.s b/asm.old/asm/non_matchings/ovl2_8/func_80121284.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121284.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121284.s diff --git a/asm/non_matchings/ovl2_8/func_801215DC.s b/asm.old/asm/non_matchings/ovl2_8/func_801215DC.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_801215DC.s rename to asm.old/asm/non_matchings/ovl2_8/func_801215DC.s diff --git a/asm/non_matchings/ovl2_8/func_80121658.s b/asm.old/asm/non_matchings/ovl2_8/func_80121658.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121658.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121658.s diff --git a/asm/non_matchings/ovl2_8/func_801217B8.s b/asm.old/asm/non_matchings/ovl2_8/func_801217B8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_801217B8.s rename to asm.old/asm/non_matchings/ovl2_8/func_801217B8.s diff --git a/asm/non_matchings/ovl2_8/func_80121828.s b/asm.old/asm/non_matchings/ovl2_8/func_80121828.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121828.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121828.s diff --git a/asm/non_matchings/ovl2_8/func_80121A04.s b/asm.old/asm/non_matchings/ovl2_8/func_80121A04.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121A04.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121A04.s diff --git a/asm/non_matchings/ovl2_8/func_80121BCC.s b/asm.old/asm/non_matchings/ovl2_8/func_80121BCC.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121BCC.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121BCC.s diff --git a/asm/non_matchings/ovl2_8/func_80121C90.s b/asm.old/asm/non_matchings/ovl2_8/func_80121C90.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121C90.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121C90.s diff --git a/asm/non_matchings/ovl2_8/func_80121D3C.s b/asm.old/asm/non_matchings/ovl2_8/func_80121D3C.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121D3C.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121D3C.s diff --git a/asm/non_matchings/ovl2_8/func_80121F14.s b/asm.old/asm/non_matchings/ovl2_8/func_80121F14.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121F14.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121F14.s diff --git a/asm/non_matchings/ovl2_8/func_80121F50.s b/asm.old/asm/non_matchings/ovl2_8/func_80121F50.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80121F50.s rename to asm.old/asm/non_matchings/ovl2_8/func_80121F50.s diff --git a/asm/non_matchings/ovl2_8/func_8012209C.s b/asm.old/asm/non_matchings/ovl2_8/func_8012209C.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8012209C.s rename to asm.old/asm/non_matchings/ovl2_8/func_8012209C.s diff --git a/asm/non_matchings/ovl2_8/func_80122558.s b/asm.old/asm/non_matchings/ovl2_8/func_80122558.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80122558.s rename to asm.old/asm/non_matchings/ovl2_8/func_80122558.s diff --git a/asm/non_matchings/ovl2_8/func_801226FC.s b/asm.old/asm/non_matchings/ovl2_8/func_801226FC.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_801226FC.s rename to asm.old/asm/non_matchings/ovl2_8/func_801226FC.s diff --git a/asm/non_matchings/ovl2_8/func_80122A80.s b/asm.old/asm/non_matchings/ovl2_8/func_80122A80.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80122A80.s rename to asm.old/asm/non_matchings/ovl2_8/func_80122A80.s diff --git a/asm/non_matchings/ovl2_8/func_80122B40.s b/asm.old/asm/non_matchings/ovl2_8/func_80122B40.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80122B40.s rename to asm.old/asm/non_matchings/ovl2_8/func_80122B40.s diff --git a/asm/non_matchings/ovl2_8/func_80122C30.s b/asm.old/asm/non_matchings/ovl2_8/func_80122C30.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80122C30.s rename to asm.old/asm/non_matchings/ovl2_8/func_80122C30.s diff --git a/asm/non_matchings/ovl2_8/func_80122CA0.s b/asm.old/asm/non_matchings/ovl2_8/func_80122CA0.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80122CA0.s rename to asm.old/asm/non_matchings/ovl2_8/func_80122CA0.s diff --git a/asm/non_matchings/ovl2_8/func_80122CE8.s b/asm.old/asm/non_matchings/ovl2_8/func_80122CE8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80122CE8.s rename to asm.old/asm/non_matchings/ovl2_8/func_80122CE8.s diff --git a/asm/non_matchings/ovl2_8/func_80122FB0.s b/asm.old/asm/non_matchings/ovl2_8/func_80122FB0.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80122FB0.s rename to asm.old/asm/non_matchings/ovl2_8/func_80122FB0.s diff --git a/asm/non_matchings/ovl2_8/func_80123004.s b/asm.old/asm/non_matchings/ovl2_8/func_80123004.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80123004.s rename to asm.old/asm/non_matchings/ovl2_8/func_80123004.s diff --git a/asm/non_matchings/ovl2_8/func_8012307C.s b/asm.old/asm/non_matchings/ovl2_8/func_8012307C.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_8012307C.s rename to asm.old/asm/non_matchings/ovl2_8/func_8012307C.s diff --git a/asm/non_matchings/ovl2_8/func_80123144.s b/asm.old/asm/non_matchings/ovl2_8/func_80123144.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80123144.s rename to asm.old/asm/non_matchings/ovl2_8/func_80123144.s diff --git a/asm/non_matchings/ovl2_8/func_80123170.s b/asm.old/asm/non_matchings/ovl2_8/func_80123170.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80123170.s rename to asm.old/asm/non_matchings/ovl2_8/func_80123170.s diff --git a/asm/non_matchings/ovl2_8/func_801231D8.s b/asm.old/asm/non_matchings/ovl2_8/func_801231D8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_801231D8.s rename to asm.old/asm/non_matchings/ovl2_8/func_801231D8.s diff --git a/asm/non_matchings/ovl2_8/func_80123240.s b/asm.old/asm/non_matchings/ovl2_8/func_80123240.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80123240.s rename to asm.old/asm/non_matchings/ovl2_8/func_80123240.s diff --git a/asm/non_matchings/ovl2_8/func_801232A8.s b/asm.old/asm/non_matchings/ovl2_8/func_801232A8.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_801232A8.s rename to asm.old/asm/non_matchings/ovl2_8/func_801232A8.s diff --git a/asm/non_matchings/ovl2_8/func_80123354.s b/asm.old/asm/non_matchings/ovl2_8/func_80123354.s similarity index 100% rename from asm/non_matchings/ovl2_8/func_80123354.s rename to asm.old/asm/non_matchings/ovl2_8/func_80123354.s diff --git a/asm/non_matchings/ovl3/ovl3/func_80151160_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3/func_80151160_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3/func_80151160_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3/func_80151160_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3/func_80151288_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3/func_80151288_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3/func_80151288_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3/func_80151288_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3/func_80151448_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3/func_80151448_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3/func_80151448_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3/func_80151448_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3/func_80151E94_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3/func_80151E94_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3/func_80151E94_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3/func_80151E94_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80152070_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152070_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80152070_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152070_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80152124_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152124_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80152124_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152124_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_801521F0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_801521F0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_801521F0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_801521F0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_8015229C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015229C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_8015229C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015229C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80152348_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152348_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80152348_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152348_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80152828_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152828_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80152828_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80152828_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_801529C0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_801529C0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_801529C0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_801529C0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_801530BC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_801530BC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_801530BC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_801530BC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80153668_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153668_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80153668_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153668_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_801538C8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_801538C8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_801538C8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_801538C8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80153984_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153984_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80153984_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153984_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80153A18_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153A18_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80153A18_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153A18_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80153AD4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153AD4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80153AD4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153AD4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80153B98_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153B98_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80153B98_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153B98_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80153FC8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153FC8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80153FC8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80153FC8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_8015439C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015439C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_8015439C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015439C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80154428_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154428_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80154428_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154428_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_8015449C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015449C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_8015449C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015449C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80154578_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154578_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80154578_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154578_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80154648_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154648_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80154648_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154648_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_8015488C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015488C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_8015488C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015488C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_801548DC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_801548DC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_801548DC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_801548DC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80154CFC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154CFC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80154CFC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80154CFC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155088_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155088_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155088_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155088_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155424_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155424_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155424_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155424_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155498_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155498_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155498_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155498_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_8015550C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015550C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_8015550C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_8015550C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_801555B0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_801555B0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_801555B0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_801555B0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155664_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155664_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155664_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155664_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_801556D8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_801556D8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_801556D8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_801556D8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155838_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155838_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155838_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155838_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155C68_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155C68_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155C68_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155C68_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155D50_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155D50_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155D50_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155D50_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155DF0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155DF0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155DF0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155DF0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_1/func_80155E58_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155E58_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_1/func_80155E58_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_1/func_80155E58_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80156050_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80156050_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80156050_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80156050_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80156594_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80156594_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80156594_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80156594_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_801567B8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_801567B8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_801567B8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_801567B8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80157738_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157738_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80157738_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157738_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80157C5C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157C5C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80157C5C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157C5C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80157D58_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157D58_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80157D58_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157D58_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80157E38_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157E38_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80157E38_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157E38_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80157F18_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157F18_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80157F18_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80157F18_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_801580C4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_801580C4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_801580C4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_801580C4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158294_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158294_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158294_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158294_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158410_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158410_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158410_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158410_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_8015849C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015849C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_8015849C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015849C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158528_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158528_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158528_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158528_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158564_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158564_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158564_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158564_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_801585A0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_801585A0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_801585A0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_801585A0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158604_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158604_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158604_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158604_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_801586A8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_801586A8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_801586A8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_801586A8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158744_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158744_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158744_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158744_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_801587AC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_801587AC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_801587AC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_801587AC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_8015882C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015882C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_8015882C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015882C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_801588D0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_801588D0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_801588D0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_801588D0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158924_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158924_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158924_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158924_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158B10_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158B10_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158B10_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158B10_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158C40_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158C40_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158C40_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158C40_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158CA8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158CA8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158CA8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158CA8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158DB4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158DB4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158DB4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158DB4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80158EEC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158EEC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80158EEC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80158EEC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80159164_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159164_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80159164_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159164_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80159ADC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159ADC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80159ADC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159ADC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80159BA0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159BA0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80159BA0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159BA0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80159EA0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159EA0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80159EA0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159EA0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_80159EF0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159EF0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_80159EF0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_80159EF0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_8015A144_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A144_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_8015A144_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A144_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_8015A31C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A31C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_8015A31C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A31C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_8015A44C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A44C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_8015A44C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A44C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_8015A92C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A92C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_8015A92C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A92C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_2/func_8015A9F8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A9F8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_2/func_8015A9F8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_2/func_8015A9F8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016BF60_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016BF60_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016BF60_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016BF60_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016CA8C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016CA8C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016CA8C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016CA8C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016D3A8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016D3A8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016D3A8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016D3A8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016DA14_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016DA14_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016DA14_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016DA14_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016DDE8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016DDE8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016DDE8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016DDE8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016E15C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016E15C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016E15C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016E15C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016E638_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016E638_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016E638_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016E638_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016E8A0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016E8A0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016E8A0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016E8A0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016EF5C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016EF5C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016EF5C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016EF5C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016F240_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F240_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016F240_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F240_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016F6DC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F6DC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016F6DC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F6DC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016F7C8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F7C8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016F7C8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F7C8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016F80C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F80C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016F80C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016F80C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016FB58_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016FB58_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016FB58_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016FB58_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016FD88_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016FD88_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016FD88_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016FD88_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8016FFF8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016FFF8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8016FFF8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8016FFF8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801702F0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801702F0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801702F0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801702F0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80170638_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170638_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80170638_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170638_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80170794_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170794_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80170794_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170794_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801708A0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801708A0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801708A0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801708A0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80170A24_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170A24_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80170A24_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170A24_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80170AC4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170AC4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80170AC4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170AC4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80170D88_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170D88_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80170D88_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80170D88_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801712F8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801712F8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801712F8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801712F8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801717F0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801717F0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801717F0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801717F0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80171E00_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80171E00_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80171E00_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80171E00_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80172234_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80172234_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80172234_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80172234_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801727D8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801727D8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801727D8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801727D8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80172A3C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80172A3C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80172A3C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80172A3C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80172AE4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80172AE4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80172AE4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80172AE4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80173260_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173260_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80173260_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173260_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801736BC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801736BC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801736BC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801736BC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80173AF4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173AF4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80173AF4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173AF4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80173CB4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173CB4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80173CB4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173CB4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80173E40_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173E40_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80173E40_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173E40_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80173EC0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173EC0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80173EC0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80173EC0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017404C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017404C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017404C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017404C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174144_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174144_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174144_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174144_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801741DC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801741DC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801741DC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801741DC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174284_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174284_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174284_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174284_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174504_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174504_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174504_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174504_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174680_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174680_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174680_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174680_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801746E0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801746E0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801746E0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801746E0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801747F0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801747F0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801747F0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801747F0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017492C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017492C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017492C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017492C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017499C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017499C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017499C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017499C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174A30_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174A30_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174A30_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174A30_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174AEC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174AEC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174AEC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174AEC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174B7C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174B7C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174B7C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174B7C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80174C10_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174C10_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80174C10_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80174C10_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017599C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017599C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017599C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017599C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801762E0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801762E0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801762E0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801762E0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80176398_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176398_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80176398_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176398_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017644C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017644C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017644C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017644C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80176484_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176484_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80176484_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176484_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80176490_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176490_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80176490_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176490_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80176814_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176814_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80176814_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176814_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80176860_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176860_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80176860_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176860_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80176DE0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176DE0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80176DE0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80176DE0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177000_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177000_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177000_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177000_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177098_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177098_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177098_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177098_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801770E0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801770E0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801770E0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801770E0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177130_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177130_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177130_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177130_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177174_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177174_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177174_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177174_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177270_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177270_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177270_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177270_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801772CC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801772CC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801772CC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801772CC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801772E0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801772E0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801772E0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801772E0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177438_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177438_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177438_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177438_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801776E8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801776E8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801776E8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801776E8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017782C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017782C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017782C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017782C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177B40_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177B40_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177B40_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177B40_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177CBC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177CBC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177CBC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177CBC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177E78_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177E78_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177E78_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177E78_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80177FB4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177FB4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80177FB4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80177FB4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801782C8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801782C8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801782C8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801782C8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80178420_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80178420_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80178420_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80178420_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80178728_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80178728_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80178728_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80178728_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017883C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017883C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017883C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017883C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80178B18_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80178B18_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80178B18_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80178B18_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80179060_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179060_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80179060_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179060_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80179130_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179130_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80179130_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179130_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80179370_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179370_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80179370_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179370_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017982C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017982C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017982C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017982C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80179C28_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179C28_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80179C28_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80179C28_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017A2C0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017A2C0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017A2C0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017A2C0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017A390_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017A390_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017A390_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017A390_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017B068_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B068_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017B068_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B068_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017B3C4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B3C4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017B3C4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B3C4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017B78C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B78C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017B78C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B78C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017B8F4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B8F4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017B8F4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017B8F4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017BD68_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017BD68_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017BD68_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017BD68_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017BEF4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017BEF4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017BEF4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017BEF4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017BF34_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017BF34_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017BF34_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017BF34_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017C1FC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017C1FC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017C1FC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017C1FC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017C418_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017C418_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017C418_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017C418_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017CAF8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017CAF8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017CAF8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017CAF8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017CF60_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017CF60_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017CF60_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017CF60_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017D430_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017D430_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017D430_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017D430_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017D8E8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017D8E8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017D8E8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017D8E8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017DAD8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017DAD8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017DAD8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017DAD8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017DBB8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017DBB8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017DBB8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017DBB8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017DF60_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017DF60_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017DF60_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017DF60_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017E074_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E074_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017E074_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E074_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017E1EC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E1EC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017E1EC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E1EC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017E284_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E284_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017E284_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E284_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017E54C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E54C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017E54C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017E54C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017EA0C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017EA0C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017EA0C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017EA0C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017EDDC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017EDDC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017EDDC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017EDDC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017F1C0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017F1C0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017F1C0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017F1C0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017F8B8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017F8B8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017F8B8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017F8B8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8017F988_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017F988_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8017F988_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8017F988_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80180818_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80180818_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80180818_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80180818_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80180B58_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80180B58_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80180B58_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80180B58_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80181014_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181014_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80181014_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181014_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801810D0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801810D0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801810D0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801810D0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80181110_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181110_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80181110_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181110_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801815F4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801815F4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801815F4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801815F4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80181AF0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181AF0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80181AF0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181AF0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80181CFC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181CFC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80181CFC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181CFC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80181F64_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181F64_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80181F64_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80181F64_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80182658_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80182658_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80182658_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80182658_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018271C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018271C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018271C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018271C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80182D9C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80182D9C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80182D9C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80182D9C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801831EC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801831EC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801831EC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801831EC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80183428_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183428_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80183428_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183428_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801835AC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801835AC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801835AC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801835AC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80183A1C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183A1C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80183A1C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183A1C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80183E38_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183E38_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80183E38_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183E38_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80183FF4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183FF4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80183FF4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80183FF4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80184538_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184538_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80184538_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184538_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801848A4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801848A4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801848A4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801848A4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80184B24_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184B24_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80184B24_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184B24_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80184C64_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184C64_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80184C64_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184C64_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80184CA4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184CA4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80184CA4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80184CA4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80185180_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185180_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80185180_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185180_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80185224_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185224_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80185224_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185224_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_801856A4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_801856A4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_801856A4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_801856A4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80185748_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185748_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80185748_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185748_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80185788_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185788_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80185788_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185788_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80185968_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185968_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80185968_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185968_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80185A9C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185A9C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80185A9C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80185A9C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80186248_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186248_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80186248_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186248_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80186750_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186750_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80186750_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186750_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80186A20_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186A20_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80186A20_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186A20_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80186E30_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186E30_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80186E30_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80186E30_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80187FD0_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80187FD0_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80187FD0_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80187FD0_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80188078_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80188078_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80188078_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80188078_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018813C_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018813C_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018813C_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018813C_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80188184_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80188184_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80188184_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80188184_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80188238_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80188238_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80188238_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80188238_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_80189914_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_80189914_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_80189914_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_80189914_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018B188_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018B188_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018B188_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018B188_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018B228_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018B228_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018B228_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018B228_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018CC54_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018CC54_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018CC54_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018CC54_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018D4C8_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018D4C8_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018D4C8_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018D4C8_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018DDCC_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018DDCC_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018DDCC_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018DDCC_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018DFB4_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018DFB4_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018DFB4_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018DFB4_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018E164_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018E164_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018E164_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018E164_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018E608_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018E608_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018E608_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018E608_ovl3.s diff --git a/asm/non_matchings/ovl3/ovl3_5/func_8018F368_ovl3.s b/asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018F368_ovl3.s similarity index 100% rename from asm/non_matchings/ovl3/ovl3_5/func_8018F368_ovl3.s rename to asm.old/asm/non_matchings/ovl3/ovl3_5/func_8018F368_ovl3.s diff --git a/asm/non_matchings/ovl4/ovl4/func_80151CEC_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4/func_80151CEC_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4/func_80151CEC_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4/func_80151CEC_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_801588F4_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_801588F4_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_801588F4_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_801588F4_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_80158CFC_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_80158CFC_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_80158CFC_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_80158CFC_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_80158E98_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_80158E98_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_80158E98_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_80158E98_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_80159124_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159124_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_80159124_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159124_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_801593A4_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_801593A4_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_801593A4_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_801593A4_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_8015986C_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_8015986C_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_8015986C_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_8015986C_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_80159A54_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159A54_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_80159A54_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159A54_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_80159C40_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159C40_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_80159C40_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159C40_ovl4.s diff --git a/asm/non_matchings/ovl4/ovl4_3/func_80159EFC_ovl4.s b/asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159EFC_ovl4.s similarity index 100% rename from asm/non_matchings/ovl4/ovl4_3/func_80159EFC_ovl4.s rename to asm.old/asm/non_matchings/ovl4/ovl4_3/func_80159EFC_ovl4.s diff --git a/asm/non_matchings/ovl5/ovl5/func_8015C884_ovl5.s b/asm.old/asm/non_matchings/ovl5/ovl5/func_8015C884_ovl5.s similarity index 100% rename from asm/non_matchings/ovl5/ovl5/func_8015C884_ovl5.s rename to asm.old/asm/non_matchings/ovl5/ovl5/func_8015C884_ovl5.s diff --git a/asm/non_matchings/ovl5/ovl5/func_8015C9B4_ovl5.s b/asm.old/asm/non_matchings/ovl5/ovl5/func_8015C9B4_ovl5.s similarity index 100% rename from asm/non_matchings/ovl5/ovl5/func_8015C9B4_ovl5.s rename to asm.old/asm/non_matchings/ovl5/ovl5/func_8015C9B4_ovl5.s diff --git a/asm/non_matchings/ovl6/func_80151138.s b/asm.old/asm/non_matchings/ovl6/func_80151138.s similarity index 100% rename from asm/non_matchings/ovl6/func_80151138.s rename to asm.old/asm/non_matchings/ovl6/func_80151138.s diff --git a/asm/non_matchings/ovl6/func_801512F0.s b/asm.old/asm/non_matchings/ovl6/func_801512F0.s similarity index 100% rename from asm/non_matchings/ovl6/func_801512F0.s rename to asm.old/asm/non_matchings/ovl6/func_801512F0.s diff --git a/asm/non_matchings/ovl6/func_801513F8.s b/asm.old/asm/non_matchings/ovl6/func_801513F8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801513F8.s rename to asm.old/asm/non_matchings/ovl6/func_801513F8.s diff --git a/asm/non_matchings/ovl6/func_801514A0.s b/asm.old/asm/non_matchings/ovl6/func_801514A0.s similarity index 100% rename from asm/non_matchings/ovl6/func_801514A0.s rename to asm.old/asm/non_matchings/ovl6/func_801514A0.s diff --git a/asm/non_matchings/ovl6/func_8015150C.s b/asm.old/asm/non_matchings/ovl6/func_8015150C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015150C.s rename to asm.old/asm/non_matchings/ovl6/func_8015150C.s diff --git a/asm/non_matchings/ovl6/func_8015166C.s b/asm.old/asm/non_matchings/ovl6/func_8015166C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015166C.s rename to asm.old/asm/non_matchings/ovl6/func_8015166C.s diff --git a/asm/non_matchings/ovl6/func_8015170C.s b/asm.old/asm/non_matchings/ovl6/func_8015170C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015170C.s rename to asm.old/asm/non_matchings/ovl6/func_8015170C.s diff --git a/asm/non_matchings/ovl6/func_8015198C.s b/asm.old/asm/non_matchings/ovl6/func_8015198C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015198C.s rename to asm.old/asm/non_matchings/ovl6/func_8015198C.s diff --git a/asm/non_matchings/ovl6/func_80151CD0.s b/asm.old/asm/non_matchings/ovl6/func_80151CD0.s similarity index 100% rename from asm/non_matchings/ovl6/func_80151CD0.s rename to asm.old/asm/non_matchings/ovl6/func_80151CD0.s diff --git a/asm/non_matchings/ovl6/func_80151DDC.s b/asm.old/asm/non_matchings/ovl6/func_80151DDC.s similarity index 100% rename from asm/non_matchings/ovl6/func_80151DDC.s rename to asm.old/asm/non_matchings/ovl6/func_80151DDC.s diff --git a/asm/non_matchings/ovl6/func_80151E10.s b/asm.old/asm/non_matchings/ovl6/func_80151E10.s similarity index 100% rename from asm/non_matchings/ovl6/func_80151E10.s rename to asm.old/asm/non_matchings/ovl6/func_80151E10.s diff --git a/asm/non_matchings/ovl6/func_80151E60.s b/asm.old/asm/non_matchings/ovl6/func_80151E60.s similarity index 100% rename from asm/non_matchings/ovl6/func_80151E60.s rename to asm.old/asm/non_matchings/ovl6/func_80151E60.s diff --git a/asm/non_matchings/ovl6/func_80152138.s b/asm.old/asm/non_matchings/ovl6/func_80152138.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152138.s rename to asm.old/asm/non_matchings/ovl6/func_80152138.s diff --git a/asm/non_matchings/ovl6/func_801524C8.s b/asm.old/asm/non_matchings/ovl6/func_801524C8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801524C8.s rename to asm.old/asm/non_matchings/ovl6/func_801524C8.s diff --git a/asm/non_matchings/ovl6/func_80152B28.s b/asm.old/asm/non_matchings/ovl6/func_80152B28.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152B28.s rename to asm.old/asm/non_matchings/ovl6/func_80152B28.s diff --git a/asm/non_matchings/ovl6/func_80152B9C.s b/asm.old/asm/non_matchings/ovl6/func_80152B9C.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152B9C.s rename to asm.old/asm/non_matchings/ovl6/func_80152B9C.s diff --git a/asm/non_matchings/ovl6/func_80152C10.s b/asm.old/asm/non_matchings/ovl6/func_80152C10.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152C10.s rename to asm.old/asm/non_matchings/ovl6/func_80152C10.s diff --git a/asm/non_matchings/ovl6/func_80152C84.s b/asm.old/asm/non_matchings/ovl6/func_80152C84.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152C84.s rename to asm.old/asm/non_matchings/ovl6/func_80152C84.s diff --git a/asm/non_matchings/ovl6/func_80152D00.s b/asm.old/asm/non_matchings/ovl6/func_80152D00.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152D00.s rename to asm.old/asm/non_matchings/ovl6/func_80152D00.s diff --git a/asm/non_matchings/ovl6/func_80152DB8.s b/asm.old/asm/non_matchings/ovl6/func_80152DB8.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152DB8.s rename to asm.old/asm/non_matchings/ovl6/func_80152DB8.s diff --git a/asm/non_matchings/ovl6/func_80152EA8.s b/asm.old/asm/non_matchings/ovl6/func_80152EA8.s similarity index 100% rename from asm/non_matchings/ovl6/func_80152EA8.s rename to asm.old/asm/non_matchings/ovl6/func_80152EA8.s diff --git a/asm/non_matchings/ovl6/func_80153040.s b/asm.old/asm/non_matchings/ovl6/func_80153040.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153040.s rename to asm.old/asm/non_matchings/ovl6/func_80153040.s diff --git a/asm/non_matchings/ovl6/func_80153064.s b/asm.old/asm/non_matchings/ovl6/func_80153064.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153064.s rename to asm.old/asm/non_matchings/ovl6/func_80153064.s diff --git a/asm/non_matchings/ovl6/func_8015314C.s b/asm.old/asm/non_matchings/ovl6/func_8015314C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015314C.s rename to asm.old/asm/non_matchings/ovl6/func_8015314C.s diff --git a/asm/non_matchings/ovl6/func_801531FC.s b/asm.old/asm/non_matchings/ovl6/func_801531FC.s similarity index 100% rename from asm/non_matchings/ovl6/func_801531FC.s rename to asm.old/asm/non_matchings/ovl6/func_801531FC.s diff --git a/asm/non_matchings/ovl6/func_80153228.s b/asm.old/asm/non_matchings/ovl6/func_80153228.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153228.s rename to asm.old/asm/non_matchings/ovl6/func_80153228.s diff --git a/asm/non_matchings/ovl6/func_801532CC.s b/asm.old/asm/non_matchings/ovl6/func_801532CC.s similarity index 100% rename from asm/non_matchings/ovl6/func_801532CC.s rename to asm.old/asm/non_matchings/ovl6/func_801532CC.s diff --git a/asm/non_matchings/ovl6/func_801532F4.s b/asm.old/asm/non_matchings/ovl6/func_801532F4.s similarity index 100% rename from asm/non_matchings/ovl6/func_801532F4.s rename to asm.old/asm/non_matchings/ovl6/func_801532F4.s diff --git a/asm/non_matchings/ovl6/func_801533C0.s b/asm.old/asm/non_matchings/ovl6/func_801533C0.s similarity index 100% rename from asm/non_matchings/ovl6/func_801533C0.s rename to asm.old/asm/non_matchings/ovl6/func_801533C0.s diff --git a/asm/non_matchings/ovl6/func_80153424.s b/asm.old/asm/non_matchings/ovl6/func_80153424.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153424.s rename to asm.old/asm/non_matchings/ovl6/func_80153424.s diff --git a/asm/non_matchings/ovl6/func_8015347C.s b/asm.old/asm/non_matchings/ovl6/func_8015347C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015347C.s rename to asm.old/asm/non_matchings/ovl6/func_8015347C.s diff --git a/asm/non_matchings/ovl6/func_801534A8.s b/asm.old/asm/non_matchings/ovl6/func_801534A8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801534A8.s rename to asm.old/asm/non_matchings/ovl6/func_801534A8.s diff --git a/asm/non_matchings/ovl6/func_801534D4.s b/asm.old/asm/non_matchings/ovl6/func_801534D4.s similarity index 100% rename from asm/non_matchings/ovl6/func_801534D4.s rename to asm.old/asm/non_matchings/ovl6/func_801534D4.s diff --git a/asm/non_matchings/ovl6/func_80153530.s b/asm.old/asm/non_matchings/ovl6/func_80153530.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153530.s rename to asm.old/asm/non_matchings/ovl6/func_80153530.s diff --git a/asm/non_matchings/ovl6/func_8015358C.s b/asm.old/asm/non_matchings/ovl6/func_8015358C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015358C.s rename to asm.old/asm/non_matchings/ovl6/func_8015358C.s diff --git a/asm/non_matchings/ovl6/func_801535E8.s b/asm.old/asm/non_matchings/ovl6/func_801535E8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801535E8.s rename to asm.old/asm/non_matchings/ovl6/func_801535E8.s diff --git a/asm/non_matchings/ovl6/func_80153644.s b/asm.old/asm/non_matchings/ovl6/func_80153644.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153644.s rename to asm.old/asm/non_matchings/ovl6/func_80153644.s diff --git a/asm/non_matchings/ovl6/func_80153670.s b/asm.old/asm/non_matchings/ovl6/func_80153670.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153670.s rename to asm.old/asm/non_matchings/ovl6/func_80153670.s diff --git a/asm/non_matchings/ovl6/func_801536A8.s b/asm.old/asm/non_matchings/ovl6/func_801536A8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801536A8.s rename to asm.old/asm/non_matchings/ovl6/func_801536A8.s diff --git a/asm/non_matchings/ovl6/func_801536E0.s b/asm.old/asm/non_matchings/ovl6/func_801536E0.s similarity index 100% rename from asm/non_matchings/ovl6/func_801536E0.s rename to asm.old/asm/non_matchings/ovl6/func_801536E0.s diff --git a/asm/non_matchings/ovl6/func_8015370C.s b/asm.old/asm/non_matchings/ovl6/func_8015370C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015370C.s rename to asm.old/asm/non_matchings/ovl6/func_8015370C.s diff --git a/asm/non_matchings/ovl6/func_8015372C.s b/asm.old/asm/non_matchings/ovl6/func_8015372C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015372C.s rename to asm.old/asm/non_matchings/ovl6/func_8015372C.s diff --git a/asm/non_matchings/ovl6/func_8015374C.s b/asm.old/asm/non_matchings/ovl6/func_8015374C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015374C.s rename to asm.old/asm/non_matchings/ovl6/func_8015374C.s diff --git a/asm/non_matchings/ovl6/func_8015392C.s b/asm.old/asm/non_matchings/ovl6/func_8015392C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015392C.s rename to asm.old/asm/non_matchings/ovl6/func_8015392C.s diff --git a/asm/non_matchings/ovl6/func_80153A48.s b/asm.old/asm/non_matchings/ovl6/func_80153A48.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153A48.s rename to asm.old/asm/non_matchings/ovl6/func_80153A48.s diff --git a/asm/non_matchings/ovl6/func_80153AA8.s b/asm.old/asm/non_matchings/ovl6/func_80153AA8.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153AA8.s rename to asm.old/asm/non_matchings/ovl6/func_80153AA8.s diff --git a/asm/non_matchings/ovl6/func_80153AF8.s b/asm.old/asm/non_matchings/ovl6/func_80153AF8.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153AF8.s rename to asm.old/asm/non_matchings/ovl6/func_80153AF8.s diff --git a/asm/non_matchings/ovl6/func_80153B34.s b/asm.old/asm/non_matchings/ovl6/func_80153B34.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153B34.s rename to asm.old/asm/non_matchings/ovl6/func_80153B34.s diff --git a/asm/non_matchings/ovl6/func_80153B80.s b/asm.old/asm/non_matchings/ovl6/func_80153B80.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153B80.s rename to asm.old/asm/non_matchings/ovl6/func_80153B80.s diff --git a/asm/non_matchings/ovl6/func_80153C28.s b/asm.old/asm/non_matchings/ovl6/func_80153C28.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153C28.s rename to asm.old/asm/non_matchings/ovl6/func_80153C28.s diff --git a/asm/non_matchings/ovl6/func_80153CBC.s b/asm.old/asm/non_matchings/ovl6/func_80153CBC.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153CBC.s rename to asm.old/asm/non_matchings/ovl6/func_80153CBC.s diff --git a/asm/non_matchings/ovl6/func_80153D10.s b/asm.old/asm/non_matchings/ovl6/func_80153D10.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153D10.s rename to asm.old/asm/non_matchings/ovl6/func_80153D10.s diff --git a/asm/non_matchings/ovl6/func_80153D6C.s b/asm.old/asm/non_matchings/ovl6/func_80153D6C.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153D6C.s rename to asm.old/asm/non_matchings/ovl6/func_80153D6C.s diff --git a/asm/non_matchings/ovl6/func_80153DC8.s b/asm.old/asm/non_matchings/ovl6/func_80153DC8.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153DC8.s rename to asm.old/asm/non_matchings/ovl6/func_80153DC8.s diff --git a/asm/non_matchings/ovl6/func_80153E1C.s b/asm.old/asm/non_matchings/ovl6/func_80153E1C.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153E1C.s rename to asm.old/asm/non_matchings/ovl6/func_80153E1C.s diff --git a/asm/non_matchings/ovl6/func_80153F00.s b/asm.old/asm/non_matchings/ovl6/func_80153F00.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153F00.s rename to asm.old/asm/non_matchings/ovl6/func_80153F00.s diff --git a/asm/non_matchings/ovl6/func_80153F2C.s b/asm.old/asm/non_matchings/ovl6/func_80153F2C.s similarity index 100% rename from asm/non_matchings/ovl6/func_80153F2C.s rename to asm.old/asm/non_matchings/ovl6/func_80153F2C.s diff --git a/asm/non_matchings/ovl6/func_8015405C.s b/asm.old/asm/non_matchings/ovl6/func_8015405C.s similarity index 100% rename from asm/non_matchings/ovl6/func_8015405C.s rename to asm.old/asm/non_matchings/ovl6/func_8015405C.s diff --git a/asm/non_matchings/ovl6/func_80154088.s b/asm.old/asm/non_matchings/ovl6/func_80154088.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154088.s rename to asm.old/asm/non_matchings/ovl6/func_80154088.s diff --git a/asm/non_matchings/ovl6/func_80154100.s b/asm.old/asm/non_matchings/ovl6/func_80154100.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154100.s rename to asm.old/asm/non_matchings/ovl6/func_80154100.s diff --git a/asm/non_matchings/ovl6/func_80154158.s b/asm.old/asm/non_matchings/ovl6/func_80154158.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154158.s rename to asm.old/asm/non_matchings/ovl6/func_80154158.s diff --git a/asm/non_matchings/ovl6/func_80154180.s b/asm.old/asm/non_matchings/ovl6/func_80154180.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154180.s rename to asm.old/asm/non_matchings/ovl6/func_80154180.s diff --git a/asm/non_matchings/ovl6/func_80154214.s b/asm.old/asm/non_matchings/ovl6/func_80154214.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154214.s rename to asm.old/asm/non_matchings/ovl6/func_80154214.s diff --git a/asm/non_matchings/ovl6/func_80154258.s b/asm.old/asm/non_matchings/ovl6/func_80154258.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154258.s rename to asm.old/asm/non_matchings/ovl6/func_80154258.s diff --git a/asm/non_matchings/ovl6/func_80154284.s b/asm.old/asm/non_matchings/ovl6/func_80154284.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154284.s rename to asm.old/asm/non_matchings/ovl6/func_80154284.s diff --git a/asm/non_matchings/ovl6/func_80154464.s b/asm.old/asm/non_matchings/ovl6/func_80154464.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154464.s rename to asm.old/asm/non_matchings/ovl6/func_80154464.s diff --git a/asm/non_matchings/ovl6/func_801544E8.s b/asm.old/asm/non_matchings/ovl6/func_801544E8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801544E8.s rename to asm.old/asm/non_matchings/ovl6/func_801544E8.s diff --git a/asm/non_matchings/ovl6/func_80154628.s b/asm.old/asm/non_matchings/ovl6/func_80154628.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154628.s rename to asm.old/asm/non_matchings/ovl6/func_80154628.s diff --git a/asm/non_matchings/ovl6/func_80154690.s b/asm.old/asm/non_matchings/ovl6/func_80154690.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154690.s rename to asm.old/asm/non_matchings/ovl6/func_80154690.s diff --git a/asm/non_matchings/ovl6/func_801546D8.s b/asm.old/asm/non_matchings/ovl6/func_801546D8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801546D8.s rename to asm.old/asm/non_matchings/ovl6/func_801546D8.s diff --git a/asm/non_matchings/ovl6/func_80154748.s b/asm.old/asm/non_matchings/ovl6/func_80154748.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154748.s rename to asm.old/asm/non_matchings/ovl6/func_80154748.s diff --git a/asm/non_matchings/ovl6/func_80154810.s b/asm.old/asm/non_matchings/ovl6/func_80154810.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154810.s rename to asm.old/asm/non_matchings/ovl6/func_80154810.s diff --git a/asm/non_matchings/ovl6/func_80154858.s b/asm.old/asm/non_matchings/ovl6/func_80154858.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154858.s rename to asm.old/asm/non_matchings/ovl6/func_80154858.s diff --git a/asm/non_matchings/ovl6/func_801548A4.s b/asm.old/asm/non_matchings/ovl6/func_801548A4.s similarity index 100% rename from asm/non_matchings/ovl6/func_801548A4.s rename to asm.old/asm/non_matchings/ovl6/func_801548A4.s diff --git a/asm/non_matchings/ovl6/func_801548F8.s b/asm.old/asm/non_matchings/ovl6/func_801548F8.s similarity index 100% rename from asm/non_matchings/ovl6/func_801548F8.s rename to asm.old/asm/non_matchings/ovl6/func_801548F8.s diff --git a/asm/non_matchings/ovl6/func_80154938.s b/asm.old/asm/non_matchings/ovl6/func_80154938.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154938.s rename to asm.old/asm/non_matchings/ovl6/func_80154938.s diff --git a/asm/non_matchings/ovl6/func_80154A40.s b/asm.old/asm/non_matchings/ovl6/func_80154A40.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154A40.s rename to asm.old/asm/non_matchings/ovl6/func_80154A40.s diff --git a/asm/non_matchings/ovl6/func_80154B14.s b/asm.old/asm/non_matchings/ovl6/func_80154B14.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154B14.s rename to asm.old/asm/non_matchings/ovl6/func_80154B14.s diff --git a/asm/non_matchings/ovl6/func_80154BA0.s b/asm.old/asm/non_matchings/ovl6/func_80154BA0.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154BA0.s rename to asm.old/asm/non_matchings/ovl6/func_80154BA0.s diff --git a/asm/non_matchings/ovl6/func_80154C38.s b/asm.old/asm/non_matchings/ovl6/func_80154C38.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154C38.s rename to asm.old/asm/non_matchings/ovl6/func_80154C38.s diff --git a/asm/non_matchings/ovl6/func_80154C64.s b/asm.old/asm/non_matchings/ovl6/func_80154C64.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154C64.s rename to asm.old/asm/non_matchings/ovl6/func_80154C64.s diff --git a/asm/non_matchings/ovl6/func_80154D60.s b/asm.old/asm/non_matchings/ovl6/func_80154D60.s similarity index 100% rename from asm/non_matchings/ovl6/func_80154D60.s rename to asm.old/asm/non_matchings/ovl6/func_80154D60.s diff --git a/asm/non_matchings/ovl7/ovl7_15/func_801BC978_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_15/func_801BC978_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_15/func_801BC978_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_15/func_801BC978_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_16/func_801BDEB0_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BDEB0_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_16/func_801BDEB0_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BDEB0_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_16/func_801BE588_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BE588_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_16/func_801BE588_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BE588_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_16/func_801BE79C_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BE79C_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_16/func_801BE79C_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BE79C_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_16/func_801BEF18_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BEF18_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_16/func_801BEF18_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_16/func_801BEF18_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A7104_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A7104_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A7104_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A7104_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A7524_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A7524_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A7524_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A7524_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A8BAC_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A8BAC_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A8BAC_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A8BAC_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A8CDC_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A8CDC_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A8CDC_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A8CDC_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A8FFC_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A8FFC_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A8FFC_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A8FFC_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A9268_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9268_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A9268_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9268_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A94D8_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A94D8_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A94D8_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A94D8_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A9610_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9610_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A9610_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9610_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A9618_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9618_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A9618_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9618_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A96C4_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A96C4_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A96C4_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A96C4_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A9930_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9930_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A9930_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9930_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801A9FC4_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9FC4_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801A9FC4_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801A9FC4_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA190_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA190_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA190_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA190_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA1D4_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA1D4_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA1D4_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA1D4_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA33C_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA33C_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA33C_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA33C_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA344_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA344_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA344_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA344_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA600_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA600_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA600_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA600_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA690_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA690_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA690_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA690_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA720_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA720_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA720_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA720_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA78C_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA78C_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA78C_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA78C_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA850_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA850_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA850_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA850_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AA914_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA914_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AA914_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AA914_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AAAF8_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AAAF8_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AAAF8_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AAAF8_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AB008_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB008_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AB008_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB008_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AB174_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB174_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AB174_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB174_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AB2F4_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB2F4_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AB2F4_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB2F4_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AB5A4_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB5A4_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AB5A4_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB5A4_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AB884_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB884_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AB884_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AB884_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ABBA0_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ABBA0_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ABBA0_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ABBA0_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC11C_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC11C_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC11C_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC11C_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC1F4_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC1F4_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC1F4_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC1F4_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC2D8_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC2D8_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC2D8_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC2D8_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC33C_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC33C_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC33C_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC33C_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC448_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC448_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC448_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC448_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC6D0_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC6D0_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC6D0_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC6D0_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC840_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC840_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC840_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC840_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801AC908_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC908_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801AC908_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801AC908_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ACC34_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACC34_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ACC34_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACC34_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ACCA0_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACCA0_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ACCA0_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACCA0_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ACD48_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACD48_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ACD48_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACD48_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ACE60_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACE60_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ACE60_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACE60_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ACF30_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACF30_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ACF30_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACF30_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ACF5C_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACF5C_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ACF5C_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACF5C_ovl7.s diff --git a/asm/non_matchings/ovl7/ovl7_5/func_801ACF84_ovl7.s b/asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACF84_ovl7.s similarity index 100% rename from asm/non_matchings/ovl7/ovl7_5/func_801ACF84_ovl7.s rename to asm.old/asm/non_matchings/ovl7/ovl7_5/func_801ACF84_ovl7.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D0E3C_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D0E3C_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D0E3C_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D0E3C_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D0FB0_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D0FB0_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D0FB0_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D0FB0_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1094_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1094_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1094_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1094_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1160_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1160_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1160_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1160_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D12A4_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D12A4_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D12A4_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D12A4_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1334_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1334_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1334_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1334_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D152C_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D152C_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D152C_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D152C_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1648_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1648_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1648_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1648_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D17F4_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D17F4_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D17F4_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D17F4_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D184C_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D184C_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D184C_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D184C_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D19B8_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D19B8_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D19B8_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D19B8_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1A64_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1A64_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1A64_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1A64_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1BB0_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1BB0_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1BB0_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1BB0_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1CAC_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1CAC_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1CAC_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1CAC_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1E58_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1E58_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1E58_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1E58_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8/func_801D1E98_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8/func_801D1E98_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8/func_801D1E98_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8/func_801D1E98_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8_2/func_801D2590_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8_2/func_801D2590_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8_2/func_801D2590_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8_2/func_801D2590_ovl8.s diff --git a/asm/non_matchings/ovl8/ovl8_2/func_801D281C_ovl8.s b/asm.old/asm/non_matchings/ovl8/ovl8_2/func_801D281C_ovl8.s similarity index 100% rename from asm/non_matchings/ovl8/ovl8_2/func_801D281C_ovl8.s rename to asm.old/asm/non_matchings/ovl8/ovl8_2/func_801D281C_ovl8.s diff --git a/asm/non_matchings/ovl9/ovl9_10/func_802094DC_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_10/func_802094DC_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_10/func_802094DC_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_10/func_802094DC_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_13/func_80219E0C_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_13/func_80219E0C_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_13/func_80219E0C_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_13/func_80219E0C_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_16/func_8021A9F0_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021A9F0_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_16/func_8021A9F0_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021A9F0_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_16/func_8021AD88_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021AD88_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_16/func_8021AD88_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021AD88_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_16/func_8021B848_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021B848_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_16/func_8021B848_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021B848_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_16/func_8021B8B0_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021B8B0_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_16/func_8021B8B0_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_16/func_8021B8B0_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80207374_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207374_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80207374_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207374_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_802078D8_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_802078D8_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_802078D8_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_802078D8_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_802079EC_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_802079EC_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_802079EC_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_802079EC_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_802079F4_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_802079F4_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_802079F4_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_802079F4_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80207C24_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207C24_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80207C24_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207C24_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80207EA4_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207EA4_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80207EA4_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207EA4_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80207EAC_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207EAC_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80207EAC_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207EAC_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80207F0C_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207F0C_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80207F0C_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207F0C_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80207F58_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207F58_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80207F58_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80207F58_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208020_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208020_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208020_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208020_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208088_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208088_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208088_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208088_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208100_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208100_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208100_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208100_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208604_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208604_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208604_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208604_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208758_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208758_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208758_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208758_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_802087AC_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_802087AC_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_802087AC_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_802087AC_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208A58_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208A58_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208A58_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208A58_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208B78_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208B78_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208B78_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208B78_ovl9.s diff --git a/asm/non_matchings/ovl9/ovl9_9/func_80208CC8_ovl9.s b/asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208CC8_ovl9.s similarity index 100% rename from asm/non_matchings/ovl9/ovl9_9/func_80208CC8_ovl9.s rename to asm.old/asm/non_matchings/ovl9/ovl9_9/func_80208CC8_ovl9.s diff --git a/asm/ovl0/bss_after_leointerrupt.s b/asm.old/asm/ovl0/bss_after_leointerrupt.s similarity index 100% rename from asm/ovl0/bss_after_leointerrupt.s rename to asm.old/asm/ovl0/bss_after_leointerrupt.s diff --git a/asm/ovl0/conteepread.s b/asm.old/asm/ovl0/conteepread.s similarity index 100% rename from asm/ovl0/conteepread.s rename to asm.old/asm/ovl0/conteepread.s diff --git a/asm/ovl0/conteepwrite.s b/asm.old/asm/ovl0/conteepwrite.s similarity index 100% rename from asm/ovl0/conteepwrite.s rename to asm.old/asm/ovl0/conteepwrite.s diff --git a/asm/ovl0/contpfs.s b/asm.old/asm/ovl0/contpfs.s similarity index 100% rename from asm/ovl0/contpfs.s rename to asm.old/asm/ovl0/contpfs.s diff --git a/asm/ovl0/exception.s b/asm.old/asm/ovl0/exception.s similarity index 100% rename from asm/ovl0/exception.s rename to asm.old/asm/ovl0/exception.s diff --git a/asm/ovl0/libultra_after_bcopy.s b/asm.old/asm/ovl0/libultra_after_bcopy.s similarity index 100% rename from asm/ovl0/libultra_after_bcopy.s rename to asm.old/asm/ovl0/libultra_after_bcopy.s diff --git a/asm/ovl0/n_synallocvoice.s b/asm.old/asm/ovl0/n_synallocvoice.s similarity index 100% rename from asm/ovl0/n_synallocvoice.s rename to asm.old/asm/ovl0/n_synallocvoice.s diff --git a/asm/ovl0/ovl0_9.s b/asm.old/asm/ovl0/ovl0_9.s similarity index 100% rename from asm/ovl0/ovl0_9.s rename to asm.old/asm/ovl0/ovl0_9.s diff --git a/asm/ovl0/ovl0_9_2.s b/asm.old/asm/ovl0/ovl0_9_2.s similarity index 100% rename from asm/ovl0/ovl0_9_2.s rename to asm.old/asm/ovl0/ovl0_9_2.s diff --git a/asm/ovl0/ovl0_afterException.s b/asm.old/asm/ovl0/ovl0_afterException.s similarity index 100% rename from asm/ovl0/ovl0_afterException.s rename to asm.old/asm/ovl0/ovl0_afterException.s diff --git a/asm/ovl0/ovl0_after_bcopy.s b/asm.old/asm/ovl0/ovl0_after_bcopy.s similarity index 100% rename from asm/ovl0/ovl0_after_bcopy.s rename to asm.old/asm/ovl0/ovl0_after_bcopy.s diff --git a/asm/ovl0/ovl0_beforeSiacs.s b/asm.old/asm/ovl0/ovl0_beforeSiacs.s similarity index 100% rename from asm/ovl0/ovl0_beforeSiacs.s rename to asm.old/asm/ovl0/ovl0_beforeSiacs.s diff --git a/asm/ovl0/ovl0_bss.s b/asm.old/asm/ovl0/ovl0_bss.s similarity index 100% rename from asm/ovl0/ovl0_bss.s rename to asm.old/asm/ovl0/ovl0_bss.s diff --git a/asm/ovl1/ovl1_4.s b/asm.old/asm/ovl1/ovl1_4.s similarity index 100% rename from asm/ovl1/ovl1_4.s rename to asm.old/asm/ovl1/ovl1_4.s diff --git a/asm/ovl1/ovl1_5_rodata.s b/asm.old/asm/ovl1/ovl1_5_rodata.s similarity index 100% rename from asm/ovl1/ovl1_5_rodata.s rename to asm.old/asm/ovl1/ovl1_5_rodata.s diff --git a/asm/ovl1/ovl1_bss.s b/asm.old/asm/ovl1/ovl1_bss.s similarity index 100% rename from asm/ovl1/ovl1_bss.s rename to asm.old/asm/ovl1/ovl1_bss.s diff --git a/asm/ovl1/ovl1_bss_after_objprocess_bufs.s b/asm.old/asm/ovl1/ovl1_bss_after_objprocess_bufs.s similarity index 100% rename from asm/ovl1/ovl1_bss_after_objprocess_bufs.s rename to asm.old/asm/ovl1/ovl1_bss_after_objprocess_bufs.s diff --git a/asm/ovl10/ovl10.s b/asm.old/asm/ovl10/ovl10.s similarity index 100% rename from asm/ovl10/ovl10.s rename to asm.old/asm/ovl10/ovl10.s diff --git a/asm/ovl10/ovl10_4.s b/asm.old/asm/ovl10/ovl10_4.s similarity index 100% rename from asm/ovl10/ovl10_4.s rename to asm.old/asm/ovl10/ovl10_4.s diff --git a/asm/ovl10/ovl10_bss.s b/asm.old/asm/ovl10/ovl10_bss.s similarity index 100% rename from asm/ovl10/ovl10_bss.s rename to asm.old/asm/ovl10/ovl10_bss.s diff --git a/asm/ovl11/ovl11_2.s b/asm.old/asm/ovl11/ovl11_2.s similarity index 100% rename from asm/ovl11/ovl11_2.s rename to asm.old/asm/ovl11/ovl11_2.s diff --git a/asm/ovl13/ovl13.s b/asm.old/asm/ovl13/ovl13.s similarity index 100% rename from asm/ovl13/ovl13.s rename to asm.old/asm/ovl13/ovl13.s diff --git a/asm/ovl13/ovl13_2.s b/asm.old/asm/ovl13/ovl13_2.s similarity index 100% rename from asm/ovl13/ovl13_2.s rename to asm.old/asm/ovl13/ovl13_2.s diff --git a/asm/ovl13/ovl13_3.s b/asm.old/asm/ovl13/ovl13_3.s similarity index 100% rename from asm/ovl13/ovl13_3.s rename to asm.old/asm/ovl13/ovl13_3.s diff --git a/asm/ovl14/ovl14.s b/asm.old/asm/ovl14/ovl14.s similarity index 100% rename from asm/ovl14/ovl14.s rename to asm.old/asm/ovl14/ovl14.s diff --git a/asm/ovl14/ovl14_2.s b/asm.old/asm/ovl14/ovl14_2.s similarity index 100% rename from asm/ovl14/ovl14_2.s rename to asm.old/asm/ovl14/ovl14_2.s diff --git a/asm/ovl14/ovl14_bss.s b/asm.old/asm/ovl14/ovl14_bss.s similarity index 100% rename from asm/ovl14/ovl14_bss.s rename to asm.old/asm/ovl14/ovl14_bss.s diff --git a/asm/ovl14/ovl14_data.s b/asm.old/asm/ovl14/ovl14_data.s similarity index 100% rename from asm/ovl14/ovl14_data.s rename to asm.old/asm/ovl14/ovl14_data.s diff --git a/asm/ovl14/ovl14_data2.s b/asm.old/asm/ovl14/ovl14_data2.s similarity index 100% rename from asm/ovl14/ovl14_data2.s rename to asm.old/asm/ovl14/ovl14_data2.s diff --git a/asm/ovl14/ovl14_rodata.s b/asm.old/asm/ovl14/ovl14_rodata.s similarity index 100% rename from asm/ovl14/ovl14_rodata.s rename to asm.old/asm/ovl14/ovl14_rodata.s diff --git a/asm/ovl14/ovl14_rodata2.s b/asm.old/asm/ovl14/ovl14_rodata2.s similarity index 100% rename from asm/ovl14/ovl14_rodata2.s rename to asm.old/asm/ovl14/ovl14_rodata2.s diff --git a/asm/ovl15/ovl15.s b/asm.old/asm/ovl15/ovl15.s similarity index 100% rename from asm/ovl15/ovl15.s rename to asm.old/asm/ovl15/ovl15.s diff --git a/asm/ovl16/ovl16_2.s b/asm.old/asm/ovl16/ovl16_2.s similarity index 100% rename from asm/ovl16/ovl16_2.s rename to asm.old/asm/ovl16/ovl16_2.s diff --git a/asm/ovl17/ovl17_0.s b/asm.old/asm/ovl17/ovl17_0.s similarity index 100% rename from asm/ovl17/ovl17_0.s rename to asm.old/asm/ovl17/ovl17_0.s diff --git a/asm/ovl17/ovl17_2.s b/asm.old/asm/ovl17/ovl17_2.s similarity index 100% rename from asm/ovl17/ovl17_2.s rename to asm.old/asm/ovl17/ovl17_2.s diff --git a/asm/ovl17/ovl17_3.s b/asm.old/asm/ovl17/ovl17_3.s similarity index 100% rename from asm/ovl17/ovl17_3.s rename to asm.old/asm/ovl17/ovl17_3.s diff --git a/asm/ovl18/ovl18_6.s b/asm.old/asm/ovl18/ovl18_6.s similarity index 100% rename from asm/ovl18/ovl18_6.s rename to asm.old/asm/ovl18/ovl18_6.s diff --git a/asm/ovl18/ovl18_bss.s b/asm.old/asm/ovl18/ovl18_bss.s similarity index 100% rename from asm/ovl18/ovl18_bss.s rename to asm.old/asm/ovl18/ovl18_bss.s diff --git a/asm/ovl19/ovl19_4.s b/asm.old/asm/ovl19/ovl19_4.s similarity index 100% rename from asm/ovl19/ovl19_4.s rename to asm.old/asm/ovl19/ovl19_4.s diff --git a/asm/ovl19/ovl19_bss.s b/asm.old/asm/ovl19/ovl19_bss.s similarity index 100% rename from asm/ovl19/ovl19_bss.s rename to asm.old/asm/ovl19/ovl19_bss.s diff --git a/asm/ovl2/ovl2_bss.s b/asm.old/asm/ovl2/ovl2_bss.s similarity index 100% rename from asm/ovl2/ovl2_bss.s rename to asm.old/asm/ovl2/ovl2_bss.s diff --git a/asm/ovl2/ovl2_data.s b/asm.old/asm/ovl2/ovl2_data.s similarity index 100% rename from asm/ovl2/ovl2_data.s rename to asm.old/asm/ovl2/ovl2_data.s diff --git a/asm/ovl3/ovl3_3.s b/asm.old/asm/ovl3/ovl3_3.s similarity index 100% rename from asm/ovl3/ovl3_3.s rename to asm.old/asm/ovl3/ovl3_3.s diff --git a/asm/ovl3/ovl3_4.s b/asm.old/asm/ovl3/ovl3_4.s similarity index 100% rename from asm/ovl3/ovl3_4.s rename to asm.old/asm/ovl3/ovl3_4.s diff --git a/asm/ovl4/ovl4_2.s b/asm.old/asm/ovl4/ovl4_2.s similarity index 100% rename from asm/ovl4/ovl4_2.s rename to asm.old/asm/ovl4/ovl4_2.s diff --git a/asm/ovl4/ovl4_2_1.s b/asm.old/asm/ovl4/ovl4_2_1.s similarity index 100% rename from asm/ovl4/ovl4_2_1.s rename to asm.old/asm/ovl4/ovl4_2_1.s diff --git a/asm/ovl5/ovl5_1.s b/asm.old/asm/ovl5/ovl5_1.s similarity index 100% rename from asm/ovl5/ovl5_1.s rename to asm.old/asm/ovl5/ovl5_1.s diff --git a/asm/ovl5/ovl5_11.s b/asm.old/asm/ovl5/ovl5_11.s similarity index 100% rename from asm/ovl5/ovl5_11.s rename to asm.old/asm/ovl5/ovl5_11.s diff --git a/asm/ovl7/ovl7_1.s b/asm.old/asm/ovl7/ovl7_1.s similarity index 100% rename from asm/ovl7/ovl7_1.s rename to asm.old/asm/ovl7/ovl7_1.s diff --git a/asm/ovl7/ovl7_10.s b/asm.old/asm/ovl7/ovl7_10.s similarity index 100% rename from asm/ovl7/ovl7_10.s rename to asm.old/asm/ovl7/ovl7_10.s diff --git a/asm/ovl7/ovl7_11.s b/asm.old/asm/ovl7/ovl7_11.s similarity index 100% rename from asm/ovl7/ovl7_11.s rename to asm.old/asm/ovl7/ovl7_11.s diff --git a/asm/ovl7/ovl7_12.s b/asm.old/asm/ovl7/ovl7_12.s similarity index 100% rename from asm/ovl7/ovl7_12.s rename to asm.old/asm/ovl7/ovl7_12.s diff --git a/asm/ovl7/ovl7_13.s b/asm.old/asm/ovl7/ovl7_13.s similarity index 100% rename from asm/ovl7/ovl7_13.s rename to asm.old/asm/ovl7/ovl7_13.s diff --git a/asm/ovl7/ovl7_17.s b/asm.old/asm/ovl7/ovl7_17.s similarity index 100% rename from asm/ovl7/ovl7_17.s rename to asm.old/asm/ovl7/ovl7_17.s diff --git a/asm/ovl7/ovl7_2.s b/asm.old/asm/ovl7/ovl7_2.s similarity index 100% rename from asm/ovl7/ovl7_2.s rename to asm.old/asm/ovl7/ovl7_2.s diff --git a/asm/ovl7/ovl7_3.s b/asm.old/asm/ovl7/ovl7_3.s similarity index 100% rename from asm/ovl7/ovl7_3.s rename to asm.old/asm/ovl7/ovl7_3.s diff --git a/asm/ovl7/ovl7_4.s b/asm.old/asm/ovl7/ovl7_4.s similarity index 100% rename from asm/ovl7/ovl7_4.s rename to asm.old/asm/ovl7/ovl7_4.s diff --git a/asm/ovl7/ovl7_5.s b/asm.old/asm/ovl7/ovl7_5.s similarity index 100% rename from asm/ovl7/ovl7_5.s rename to asm.old/asm/ovl7/ovl7_5.s diff --git a/asm/ovl7/ovl7_6.s b/asm.old/asm/ovl7/ovl7_6.s similarity index 100% rename from asm/ovl7/ovl7_6.s rename to asm.old/asm/ovl7/ovl7_6.s diff --git a/asm/ovl7/ovl7_7.s b/asm.old/asm/ovl7/ovl7_7.s similarity index 100% rename from asm/ovl7/ovl7_7.s rename to asm.old/asm/ovl7/ovl7_7.s diff --git a/asm/ovl7/ovl7_8.s b/asm.old/asm/ovl7/ovl7_8.s similarity index 100% rename from asm/ovl7/ovl7_8.s rename to asm.old/asm/ovl7/ovl7_8.s diff --git a/asm/ovl7/ovl7_9.s b/asm.old/asm/ovl7/ovl7_9.s similarity index 100% rename from asm/ovl7/ovl7_9.s rename to asm.old/asm/ovl7/ovl7_9.s diff --git a/asm/ovl8/ovl8.s b/asm.old/asm/ovl8/ovl8.s similarity index 100% rename from asm/ovl8/ovl8.s rename to asm.old/asm/ovl8/ovl8.s diff --git a/asm/ovl8/ovl8_3.s b/asm.old/asm/ovl8/ovl8_3.s similarity index 100% rename from asm/ovl8/ovl8_3.s rename to asm.old/asm/ovl8/ovl8_3.s diff --git a/asm/ovl8/ovl8_4.s b/asm.old/asm/ovl8/ovl8_4.s similarity index 100% rename from asm/ovl8/ovl8_4.s rename to asm.old/asm/ovl8/ovl8_4.s diff --git a/asm/ovl9/ovl9.s b/asm.old/asm/ovl9/ovl9.s similarity index 100% rename from asm/ovl9/ovl9.s rename to asm.old/asm/ovl9/ovl9.s diff --git a/asm/ovl9/ovl9_11.s b/asm.old/asm/ovl9/ovl9_11.s similarity index 100% rename from asm/ovl9/ovl9_11.s rename to asm.old/asm/ovl9/ovl9_11.s diff --git a/asm/ovl9/ovl9_12.s b/asm.old/asm/ovl9/ovl9_12.s similarity index 100% rename from asm/ovl9/ovl9_12.s rename to asm.old/asm/ovl9/ovl9_12.s diff --git a/asm/ovl9/ovl9_2.s b/asm.old/asm/ovl9/ovl9_2.s similarity index 100% rename from asm/ovl9/ovl9_2.s rename to asm.old/asm/ovl9/ovl9_2.s diff --git a/asm/ovl9/ovl9_3.s b/asm.old/asm/ovl9/ovl9_3.s similarity index 100% rename from asm/ovl9/ovl9_3.s rename to asm.old/asm/ovl9/ovl9_3.s diff --git a/asm/ovl9/ovl9_4.s b/asm.old/asm/ovl9/ovl9_4.s similarity index 100% rename from asm/ovl9/ovl9_4.s rename to asm.old/asm/ovl9/ovl9_4.s diff --git a/asm/ovl9/ovl9_5.s b/asm.old/asm/ovl9/ovl9_5.s similarity index 100% rename from asm/ovl9/ovl9_5.s rename to asm.old/asm/ovl9/ovl9_5.s diff --git a/asm/ovl9/ovl9_6.s b/asm.old/asm/ovl9/ovl9_6.s similarity index 100% rename from asm/ovl9/ovl9_6.s rename to asm.old/asm/ovl9/ovl9_6.s diff --git a/asm/ovl9/ovl9_7.s b/asm.old/asm/ovl9/ovl9_7.s similarity index 100% rename from asm/ovl9/ovl9_7.s rename to asm.old/asm/ovl9/ovl9_7.s diff --git a/asm/ovl9/ovl9_8.s b/asm.old/asm/ovl9/ovl9_8.s similarity index 100% rename from asm/ovl9/ovl9_8.s rename to asm.old/asm/ovl9/ovl9_8.s diff --git a/asm/rom_header.s b/asm.old/asm/rom_header.s similarity index 100% rename from asm/rom_header.s rename to asm.old/asm/rom_header.s diff --git a/assets/Makefile b/assets/Makefile index ba418cf32..3c5ab0450 100644 --- a/assets/Makefile +++ b/assets/Makefile @@ -1,8 +1,9 @@ MATCHING ?= 1 -BUILD_DIR := ../build/us/assets +K64_BUILD_DIR := ../build +BUILD_DIR := $(K64_BUILD_DIR)/assets DUMMY != mkdir -p $(BUILD_DIR) -TARGET = $(BUILD_DIR)/assets.marker +TARGET = $(BUILD_DIR)/game_assets.o FILETABLES := filetable_models.mk \ filetable_image.mk \ @@ -11,7 +12,7 @@ FILETABLES := filetable_models.mk \ -include $(FILETABLES) -# V := @ +V := @ BANK_LINKSCRIPTS := $(BUILD_DIR)/bank0.ld \ $(BUILD_DIR)/bank1.ld \ @@ -32,8 +33,10 @@ INCLUDE_CFLAGS := -I $(FIXDIR)/include -I $(FIXDIR)/include/libc -I $(FIXDIR)/sr TARGET_CFLAGS := -nostdinc -I include/libc -DTARGET_N64 -DF3DEX_GBI_2 GCC_CFLAGS = -Wall $(TARGET_CFLAGS) $(INCLUDE_CFLAGS) -march=vr4300 -mtune=vr4300 -mfix4300 -mabi=32 -mno-shared -G 0 -fno-PIC -mno-abicalls -fno-zero-initialized-in-bss -fno-toplevel-reorder -Wno-missing-braces ASFLAGS = -mtune=vr4300 -march=vr4300 --no-pad-sections -mabi=32 -mips3 $(INCLUDE_FLAGS) +# I can't find a cleaner cross-platform option to fill these 11 bytes +MATCH_ASSETS := --pad-to=0x019e1260 --gap-fill=0x00 -ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0) +ifeq ($(shell type mips-linux-gnu-cpp >/dev/null 2>/dev/null; echo $$?), 0) CROSS := mips-linux-gnu- else CROSS := mips64-elf- @@ -88,23 +91,28 @@ endif $(V)$(CROSS)ld -r -b binary -o $@ $(@:.o=.bin) $(BUILD_DIR)/%.o: %.png + @printf " [Asset:PNG] $<\n" $(V)mkdir -p $(@D) $(V)../tools/rgb2c -G $(lastword $(subst ., ,$*)) -o RAW $< > $(@:.o=.bin) $(V)$(CROSS)ld -r -b binary -o $@ $(@:.o=.bin) $(BUILD_DIR)/%.o: $(BUILD_DIR)/%.bin + @printf " [Asset:BIN] $<\n" $(V)mkdir -p $(@D) $(V)$(CROSS)ld -r -b binary -o $@ $< $(BUILD_DIR)/%.o: %.c + @printf " [Asset:CC] $<\n" $(V)mkdir -p $(@D) $(V)$(CROSS)gcc -c $(GCC_CFLAGS) -D__sgi -o $@ $< $(BUILD_DIR)/%.o: %.s + @printf " [Asset:ASM] $<\n" $(V)mkdir -p $(@D) $(V)$(CROSS)as $(ASFLAGS) -o $@ $< $(BUILD_DIR)/%.o: %.bin + @printf " [Asset:BIN] $<\n" $(V)mkdir -p $(@D) $(V)$(CROSS)ld -r -b binary -o $@ $< @@ -117,9 +125,14 @@ $(BUILD_DIR)/%.filetable.c: $(BUILD_DIR)/%.ld $(BUILD_DIR)/%.h: $(BUILD_DIR)/%.filetable.c $(V)python3 tools/make_bank_header.py $(BUILD_DIR)/ $@ -$(TARGET): $(BANK_HEADERS) bank_header.ld.in +$(BUILD_DIR)/assets.ld: assets.ld $(BANK_LINKSCRIPTS) bank_header.ld.in $(V)cp bank_header.ld.in $(BUILD_DIR) - $(V)touch $@ + $(CROSS)cpp -P -I$(K64_BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $< -DBUILD_DIR=$(K64_BUILD_DIR) -Umips + +$(TARGET): $(BUILD_DIR)/assets.ld $(BANK_HEADERS) + $(V)$(CROSS)ld -L $(K64_BUILD_DIR) -T $< -o $(BUILD_DIR)/$(@F).elf + $(CROSS)objcopy $(MATCH_ASSETS) $(BUILD_DIR)/$(@F).elf $(BUILD_DIR)/$(@F).bin -O binary + $(CROSS)ld -r -b binary -o $@ $(BUILD_DIR)/$(@F).bin .PHONY: all clean default diff test distclean .SECONDARY: diff --git a/assets/assets.ld b/assets/assets.ld new file mode 100644 index 000000000..23da2413a --- /dev/null +++ b/assets/assets.ld @@ -0,0 +1,39 @@ +OUTPUT_ARCH (mips) + + +/*TODO: put these segment defines in their own file */ +#define BEGIN_SEG(name, addr) \ + _##name##SegmentStart = ADDR(.name); \ + _##name##SegmentRomStart = __romPos; \ + .name addr : AT(__romPos) + +#define END_SEG(name) \ + _##name##SegmentEnd = ADDR(.name) + SIZEOF(.name); \ + _##name##SegmentRomEnd = __romPos + SIZEOF(.name); \ + __romPos += SIZEOF(.name); + +SECTIONS +{ + __romPos = 0; /* TODO: do we even use this here? */ + + #include "assets/bank0.ld" + + #include "assets/bank1.ld" + + #include "assets/bank2.ld" + + #include "assets/bank3.ld" + + #include "assets/bank4.ld" + + #include "assets/bank5.ld" + + #include "assets/bank6.ld" + + #include "assets/bank7.ld" + + /DISCARD/ : + { + *(*); + } +} \ No newline at end of file diff --git a/assets/bank_header.ld.in b/assets/bank_header.ld.in index 12462a26a..956d92187 100644 --- a/assets/bank_header.ld.in +++ b/assets/bank_header.ld.in @@ -115,15 +115,28 @@ END_MISC(bank, index) #define FILLER(filetype, bank) \ - BEGIN_SEG(bank_ ## bank ##_## filetype ## _filler, 0) {\ + BEGIN_SEG(bank_ ## bank ##_## filetype ## _filler, 0) ALIGN(16) SUBALIGN(16){\ BYTE(0x39);\ BYTE(0x39);\ BYTE(0x39);\ BYTE(0x0A);\ - FILL(0x00);\ }\ END_SEG(bank_ ## bank ##_## filetype ## _filler) +#define match_DO_NOT_TOUCH() \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); \ + BYTE(0x00); + /*#define FILLER(filetype, bank) \ ._bank##bank##_##filetype##_patch 0 : AT(__romPos) \ diff --git a/datatodo.txt b/datatodo.txt new file mode 100644 index 000000000..578991ca5 --- /dev/null +++ b/datatodo.txt @@ -0,0 +1,522 @@ + +D_39E90 = 0x39E90; +D_3B220 = 0x3B220; +D_3C3B0 = 0x3C3B0; +D_41FF0 = 0x41FF0; +D_42410 = 0x42410; +D_42800 = 0x42800; +D_80000000 = 0x80000000; +D_80000004 = 0x80000004; +D_80000008 = 0x80000008; +D_8000000C = 0x8000000C; +D_8012EB00 = 0x8012EB00; +D_80130005 = 0x80130005; +D_80130030 = 0x80130030; +D_80130034 = 0x80130034; +D_8013003C = 0x8013003C; +D_80130040 = 0x80130040; +D_80130044 = 0x80130044; +D_801300BA = 0x801300BA; +D_801300D2 = 0x801300D2; +D_801300E4 = 0x801300E4; +D_801300E8 = 0x801300E8; +D_801300EC = 0x801300EC; +D_801300F0 = 0x801300F0; +D_801300F4 = 0x801300F4; +D_801300F8 = 0x801300F8; +D_801300FC = 0x801300FC; +D_80130100 = 0x80130100; +D_80130102 = 0x80130102; +D_80130104 = 0x80130104; +D_80130106 = 0x80130106; +D_80130108 = 0x80130108; +D_8013010A = 0x8013010A; +D_8013010C = 0x8013010C; +D_8013010E = 0x8013010E; +D_80130110 = 0x80130110; +D_80130114 = 0x80130114; +D_80130118 = 0x80130118; +D_8013011C = 0x8013011C; +D_80130120 = 0x80130120; +D_80130124 = 0x80130124; +D_80130128 = 0x80130128; +D_8013012C = 0x8013012C; +D_80130140 = 0x80130140; +D_8013015C = 0x8013015C; +D_80155ED8 = 0x80155ED8; +D_80155F0C = 0x80155F0C; +D_8015A7D0 = 0x8015A7D0; +D_8016C510 = 0x8016C510; +D_80177098 = 0x80177098; +D_8018EE60 = 0x8018EE60; +D_80190358 = 0x80190358; +D_801923DC = 0x801923DC; +D_80192444 = 0x80192444; +D_801924AC = 0x801924AC; +D_80192514 = 0x80192514; +D_8019257C = 0x8019257C; +D_801925E4 = 0x801925E4; +D_8019264C = 0x8019264C; +D_801926B4 = 0x801926B4; +D_801926E8 = 0x801926E8; +D_80192F64 = 0x80192F64; +D_80192F9C = 0x80192F9C; +D_80192FF4 = 0x80192FF4; +D_8019304C = 0x8019304C; +D_801930A4 = 0x801930A4; +D_801964E8 = 0x801964E8; +D_80196524 = 0x80196524; +D_801965F4 = 0x801965F4; +D_801966D0 = 0x801966D0; +D_80198820 = 0x80198820; +D_801A3864 = 0x801A3864; +D_801A38BC = 0x801A38BC; +D_801A4C0C = 0x801A4C0C; +D_801A6DF0 = 0x801A6DF0; +D_801A7000 = 0x801A7000; +D_801A9618 = 0x801A9618; +D_801AC33C = 0x801AC33C; +D_801AC4EC = 0x801AC4EC; +D_801C324C = 0x801C324C; +D_801C333C = 0x801C333C; +D_801C35C4 = 0x801C35C4; +D_801C3608 = 0x801C3608; +D_801C36F4 = 0x801C36F4; +D_801C3958 = 0x801C3958; +D_801C399C = 0x801C399C; +D_801C3A04 = 0x801C3A04; +D_801C3A28 = 0x801C3A28; +D_801C3A70 = 0x801C3A70; +D_801C3A94 = 0x801C3A94; +D_801C417C = 0x801C417C; +D_801C41A0 = 0x801C41A0; +D_801C41C4 = 0x801C41C4; +D_801C4428 = 0x801C4428; +D_801C446C = 0x801C446C; +D_801C44B0 = 0x801C44B0; +D_801C44F4 = 0x801C44F4; +D_801C7F84 = 0x801C7F84; +D_801C7FCC = 0x801C7FCC; +D_801C7FF0 = 0x801C7FF0; +D_801C8038 = 0x801C8038; +D_801C8080 = 0x801C8080; +D_801C80C8 = 0x801C80C8; +D_801C834C = 0x801C834C; +D_801C8394 = 0x801C8394; +D_801C83DC = 0x801C83DC; +D_801C8448 = 0x801C8448; +D_801C8490 = 0x801C8490; +D_801C84D8 = 0x801C84D8; +D_801C8520 = 0x801C8520; +D_801C8568 = 0x801C8568; +D_801C85F8 = 0x801C85F8; +D_801C8640 = 0x801C8640; +D_801C86AC = 0x801C86AC; +D_801C8784 = 0x801C8784; +D_801C87A8 = 0x801C87A8; +D_801C87CC = 0x801C87CC; +D_801C8838 = 0x801C8838; +D_801C8880 = 0x801C8880; +D_801C88C8 = 0x801C88C8; +D_801C8910 = 0x801C8910; +D_801C8958 = 0x801C8958; +D_801C89A0 = 0x801C89A0; +D_801C8B08 = 0x801C8B08; +D_801C8CB4 = 0x801C8CB4; +D_801C8CFC = 0x801C8CFC; +D_801C8D44 = 0x801C8D44; +D_801C8DF8 = 0x801C8DF8; +D_801C8F14 = 0x801C8F14; +D_801C8FEC = 0x801C8FEC; +D_801C90A0 = 0x801C90A0; +D_801C9178 = 0x801C9178; +D_801C9208 = 0x801C9208; +D_801C92E0 = 0x801C92E0; +D_801C9544 = 0x801C9544; +D_801C9718 = 0x801C9718; +D_801C9784 = 0x801C9784; +D_801C98A0 = 0x801C98A0; +D_801C9A4C = 0x801C9A4C; +D_801C9B48 = 0x801C9B48; +D_801C9F2C = 0x801C9F2C; +D_801CA04C = 0x801CA04C; +D_801CA100 = 0x801CA100; +D_801CA28C = 0x801CA28C; +D_801CA3C4 = 0x801CA3C4; +D_801CA454 = 0x801CA454; +D_801CA4C0 = 0x801CA4C0; +D_801CA508 = 0x801CA508; +D_801CA550 = 0x801CA550; +D_801CA598 = 0x801CA598; +D_801CA5E0 = 0x801CA5E0; +D_801CA738 = 0x801CA738; +D_801CA840 = 0x801CA840; +D_801CA980 = 0x801CA980; +D_801CA9E4 = 0x801CA9E4; +D_801CA9E8 = 0x801CA9E8; +D_801CA9F8 = 0x801CA9F8; +D_801CAA34 = 0x801CAA34; +D_801CAA84 = 0x801CAA84; +D_801CAAAC = 0x801CAAAC; +D_801CAAC0 = 0x801CAAC0; +D_801CAAD4 = 0x801CAAD4; +D_801CABC4 = 0x801CABC4; +D_801CACB4 = 0x801CACB4; +D_801CACF0 = 0x801CACF0; +D_801CAD04 = 0x801CAD04; +D_801CB044 = 0x801CB044; +D_801CB1FC = 0x801CB1FC; +D_801CB470 = 0x801CB470; +D_801CB494 = 0x801CB494; +D_801CB4DC = 0x801CB4DC; +D_801CB548 = 0x801CB548; +D_801CB56C = 0x801CB56C; +D_801CB590 = 0x801CB590; +D_801CB5B4 = 0x801CB5B4; +D_801CB5D8 = 0x801CB5D8; +D_801CB5FC = 0x801CB5FC; +D_801CB620 = 0x801CB620; +D_801CB668 = 0x801CB668; +D_801CB68C = 0x801CB68C; +D_801CB6B0 = 0x801CB6B0; +D_801CB6D4 = 0x801CB6D4; +D_801CB6F8 = 0x801CB6F8; +D_801CB71C = 0x801CB71C; +D_801CB740 = 0x801CB740; +D_801CB764 = 0x801CB764; +D_801CB788 = 0x801CB788; +D_801CB7F4 = 0x801CB7F4; +D_801CB818 = 0x801CB818; +D_801CB83C = 0x801CB83C; +D_801CB860 = 0x801CB860; +D_801CB884 = 0x801CB884; +D_801CB8A8 = 0x801CB8A8; +D_801CB8CC = 0x801CB8CC; +D_801CB8F0 = 0x801CB8F0; +D_801CB914 = 0x801CB914; +D_801CB938 = 0x801CB938; +D_801CB95C = 0x801CB95C; +D_801CB980 = 0x801CB980; +D_801CB9A4 = 0x801CB9A4; +D_801CB9C8 = 0x801CB9C8; +D_801CB9EC = 0x801CB9EC; +D_801CBA10 = 0x801CBA10; +D_801CBA34 = 0x801CBA34; +D_801CBA58 = 0x801CBA58; +D_801CBA7C = 0x801CBA7C; +D_801CBAA0 = 0x801CBAA0; +D_801CBAC4 = 0x801CBAC4; +D_801CBAE8 = 0x801CBAE8; +D_801CBB0C = 0x801CBB0C; +D_801CBB30 = 0x801CBB30; +D_801CBB54 = 0x801CBB54; +D_801CBB78 = 0x801CBB78; +D_801CBB9C = 0x801CBB9C; +D_801CBBC0 = 0x801CBBC0; +D_801CBBE4 = 0x801CBBE4; +D_801CBC08 = 0x801CBC08; +D_801CBC2C = 0x801CBC2C; +D_801CBC50 = 0x801CBC50; +D_801CBC74 = 0x801CBC74; +D_801CBC98 = 0x801CBC98; +D_801CBCBC = 0x801CBCBC; +D_801CBCE0 = 0x801CBCE0; +D_801CBD28 = 0x801CBD28; +D_801CBD4C = 0x801CBD4C; +D_801CBD70 = 0x801CBD70; +D_801CBD94 = 0x801CBD94; +D_801CBDB8 = 0x801CBDB8; +D_801CBDDC = 0x801CBDDC; +D_801CBE00 = 0x801CBE00; +D_801CBE24 = 0x801CBE24; +D_801CBE48 = 0x801CBE48; +D_801CBE6C = 0x801CBE6C; +D_801CBE90 = 0x801CBE90; +D_801CBEB4 = 0x801CBEB4; +D_801CBED8 = 0x801CBED8; +D_801CBEFC = 0x801CBEFC; +D_801CBF20 = 0x801CBF20; +D_801CBF44 = 0x801CBF44; +D_801CBF68 = 0x801CBF68; +D_801CBF8C = 0x801CBF8C; +D_801CBFB0 = 0x801CBFB0; +D_801CBFD4 = 0x801CBFD4; +D_801CBFF8 = 0x801CBFF8; +D_801CC01C = 0x801CC01C; +D_801CC040 = 0x801CC040; +D_801CC13C = 0x801CC13C; +D_801CC160 = 0x801CC160; +D_801CC184 = 0x801CC184; +D_801CC1A8 = 0x801CC1A8; +D_801CC1CC = 0x801CC1CC; +D_801CC1F0 = 0x801CC1F0; +D_801CC214 = 0x801CC214; +D_801CC238 = 0x801CC238; +D_801CC25C = 0x801CC25C; +D_801CC280 = 0x801CC280; +D_801CC2A4 = 0x801CC2A4; +D_801CC2C8 = 0x801CC2C8; +D_801CC2EC = 0x801CC2EC; +D_801CC310 = 0x801CC310; +D_801CC334 = 0x801CC334; +D_801CC358 = 0x801CC358; +D_801CC37C = 0x801CC37C; +D_801CC3A0 = 0x801CC3A0; +D_801CC3C4 = 0x801CC3C4; +D_801CC3E8 = 0x801CC3E8; +D_801CC40C = 0x801CC40C; +D_801CC430 = 0x801CC430; +D_801CC454 = 0x801CC454; +D_801CC478 = 0x801CC478; +D_801CC49C = 0x801CC49C; +D_801CC4C0 = 0x801CC4C0; +D_801CC4E4 = 0x801CC4E4; +D_801CC508 = 0x801CC508; +D_801CC550 = 0x801CC550; +D_801CC574 = 0x801CC574; +D_801CC598 = 0x801CC598; +D_801CC5BC = 0x801CC5BC; +D_801CC5E0 = 0x801CC5E0; +D_801CC604 = 0x801CC604; +D_801CC628 = 0x801CC628; +D_801CC64C = 0x801CC64C; +D_801CC670 = 0x801CC670; +D_801CC694 = 0x801CC694; +D_801CC6B8 = 0x801CC6B8; +D_801CC6DC = 0x801CC6DC; +D_801CC700 = 0x801CC700; +D_801CC724 = 0x801CC724; +D_801CC748 = 0x801CC748; +D_801CC76C = 0x801CC76C; +D_801CC790 = 0x801CC790; +D_801CC7B4 = 0x801CC7B4; +D_801CC7D8 = 0x801CC7D8; +D_801CC7FC = 0x801CC7FC; +D_801CC820 = 0x801CC820; +D_801CC844 = 0x801CC844; +D_801CC868 = 0x801CC868; +D_801CC88C = 0x801CC88C; +D_801CC8B0 = 0x801CC8B0; +D_801CC8D4 = 0x801CC8D4; +D_801CC8F8 = 0x801CC8F8; +D_801CC91C = 0x801CC91C; +D_801CC940 = 0x801CC940; +D_801CC9F4 = 0x801CC9F4; +D_801CCA18 = 0x801CCA18; +D_801CCA3C = 0x801CCA3C; +D_801CCA60 = 0x801CCA60; +D_801CCA84 = 0x801CCA84; +D_801CCAA8 = 0x801CCAA8; +D_801CCACC = 0x801CCACC; +D_801CCAF0 = 0x801CCAF0; +D_801CCB14 = 0x801CCB14; +D_801CCB38 = 0x801CCB38; +D_801CCB5C = 0x801CCB5C; +D_801CCB80 = 0x801CCB80; +D_801CCC10 = 0x801CCC10; +D_801CCC34 = 0x801CCC34; +D_801CCC58 = 0x801CCC58; +D_801CCC7C = 0x801CCC7C; +D_801CCCA0 = 0x801CCCA0; +D_801CCCC4 = 0x801CCCC4; +D_801CCCE8 = 0x801CCCE8; +D_801CCD0C = 0x801CCD0C; +D_801CCD54 = 0x801CCD54; +D_801CCD78 = 0x801CCD78; +D_801CCD9C = 0x801CCD9C; +D_801CCDC0 = 0x801CCDC0; +D_801CCDE4 = 0x801CCDE4; +D_801CCE08 = 0x801CCE08; +D_801CCE2C = 0x801CCE2C; +D_801CCE50 = 0x801CCE50; +D_801CCE74 = 0x801CCE74; +D_801CCE98 = 0x801CCE98; +D_801CCEBC = 0x801CCEBC; +D_801CCEE0 = 0x801CCEE0; +D_801CCF04 = 0x801CCF04; +D_801CCF28 = 0x801CCF28; +D_801CCF4C = 0x801CCF4C; +D_801CCF70 = 0x801CCF70; +D_801CCF94 = 0x801CCF94; +D_801CCFB8 = 0x801CCFB8; +D_801CCFDC = 0x801CCFDC; +D_801CD000 = 0x801CD000; +D_801CD024 = 0x801CD024; +D_801CD048 = 0x801CD048; +D_801CD06C = 0x801CD06C; +D_801CD21C = 0x801CD21C; +D_801D02AC = 0x801D02AC; +D_801D0D44 = 0x801D0D44; +D_801D0E3C = 0x801D0E3C; +D_801D1094 = 0x801D1094; +D_801D152C = 0x801D152C; +D_801D17F4 = 0x801D17F4; +D_801D184C = 0x801D184C; +D_801D19B8 = 0x801D19B8; +D_801D1BB0 = 0x801D1BB0; +D_801D7880 = 0x801D7880; +D_801D789C = 0x801D789C; +D_801D79E8 = 0x801D79E8; +D_801D7A2C = 0x801D7A2C; +D_801D7B60 = 0x801D7B60; +D_801D7BC4 = 0x801D7BC4; +D_801D7C04 = 0x801D7C04; +D_801D7C48 = 0x801D7C48; +D_801D7C8C = 0x801D7C8C; +D_801D7D58 = 0x801D7D58; +D_801D7D9C = 0x801D7D9C; +D_801D80CC = 0x801D80CC; +D_801D80F0 = 0x801D80F0; +D_801D8114 = 0x801D8114; +D_801D8A3C = 0x801D8A3C; +D_801D8A84 = 0x801D8A84; +D_801D8ACC = 0x801D8ACC; +D_801D8AF0 = 0x801D8AF0; +D_801D8B14 = 0x801D8B14; +D_801D8B38 = 0x801D8B38; +D_801D8B5C = 0x801D8B5C; +D_801D8B80 = 0x801D8B80; +D_801D8C7C = 0x801D8C7C; +D_801D8CA0 = 0x801D8CA0; +D_801D8CC4 = 0x801D8CC4; +D_801D8CE8 = 0x801D8CE8; +D_801D8D54 = 0x801D8D54; +D_801D8D78 = 0x801D8D78; +D_801D8E08 = 0x801D8E08; +D_801D8E98 = 0x801D8E98; +D_801D8F70 = 0x801D8F70; +D_801D8F94 = 0x801D8F94; +D_801D8FB8 = 0x801D8FB8; +D_801D8FDC = 0x801D8FDC; +D_801D906C = 0x801D906C; +D_801D90D8 = 0x801D90D8; +D_801D90FC = 0x801D90FC; +D_801D9120 = 0x801D9120; +D_801D921C = 0x801D921C; +D_801D92AC = 0x801D92AC; +D_801D92D0 = 0x801D92D0; +D_801D9384 = 0x801D9384; +D_801D93A8 = 0x801D93A8; +D_801D93CC = 0x801D93CC; +D_801D93F0 = 0x801D93F0; +D_801D9438 = 0x801D9438; +D_801D9480 = 0x801D9480; +D_801D9510 = 0x801D9510; +D_801D95C4 = 0x801D95C4; +D_801D9678 = 0x801D9678; +D_801D969C = 0x801D969C; +D_801D96E4 = 0x801D96E4; +D_801D972C = 0x801D972C; +D_801D9774 = 0x801D9774; +D_801D9798 = 0x801D9798; +D_801D9804 = 0x801D9804; +D_801D9828 = 0x801D9828; +D_801D98B8 = 0x801D98B8; +D_801D9900 = 0x801D9900; +D_801D9948 = 0x801D9948; +D_801D99D8 = 0x801D99D8; +D_801D9A20 = 0x801D9A20; +D_801D9A68 = 0x801D9A68; +D_801D9AB0 = 0x801D9AB0; +D_801D9CCC = 0x801D9CCC; +D_801D9D80 = 0x801D9D80; +D_801D9DC8 = 0x801D9DC8; +D_801D9E34 = 0x801D9E34; +D_801D9E58 = 0x801D9E58; +D_801D9F0C = 0x801D9F0C; +D_801D9FC0 = 0x801D9FC0; +D_801DA04C = 0x801DA04C; +D_801DA070 = 0x801DA070; +D_801DA0B8 = 0x801DA0B8; +D_801DA0DC = 0x801DA0DC; +D_801DA268 = 0x801DA268; +D_801DA2B0 = 0x801DA2B0; +D_801DA2F8 = 0x801DA2F8; +D_801DA31C = 0x801DA31C; +D_801DA364 = 0x801DA364; +D_801DA3AC = 0x801DA3AC; +D_801DA3F4 = 0x801DA3F4; +D_801DA43C = 0x801DA43C; +D_801DA484 = 0x801DA484; +D_801DA4A8 = 0x801DA4A8; +D_801DA4F0 = 0x801DA4F0; +D_801DA514 = 0x801DA514; +D_801DA55C = 0x801DA55C; +D_801DA9B8 = 0x801DA9B8; +D_801DAA48 = 0x801DAA48; +D_801DAAB4 = 0x801DAAB4; +D_801DAAC8 = 0x801DAAC8; +D_801DAADC = 0x801DAADC; +D_801DAAF0 = 0x801DAAF0; +D_801DAB04 = 0x801DAB04; +D_801DAB18 = 0x801DAB18; +D_801DAD20 = 0x801DAD20; +D_801DAD44 = 0x801DAD44; +D_801DAD68 = 0x801DAD68; +D_801DAD8C = 0x801DAD8C; +D_801DADB0 = 0x801DADB0; +D_801DADD4 = 0x801DADD4; +D_801DADF8 = 0x801DADF8; +D_801DAE1C = 0x801DAE1C; +D_801DAE40 = 0x801DAE40; +D_801DAEF4 = 0x801DAEF4; +D_801DAF18 = 0x801DAF18; +D_801DAF3C = 0x801DAF3C; +D_801DAF60 = 0x801DAF60; +D_801DAF84 = 0x801DAF84; +D_801DAFA8 = 0x801DAFA8; +D_801DAFCC = 0x801DAFCC; +D_801F33F0 = 0x801F33F0; +D_801F33FC = 0x801F33FC; +D_8020C710 = 0x8020C710; +D_8022785C = 0x8022785C; +D_8022947C = 0x8022947C; +D_8022AED8 = 0x8022AED8; +D_8022B428 = 0x8022B428; +D_8022B7C0 = 0x8022B7C0; +D_8022FB50 = 0x8022FB50; +D_803D6900 = 0x803D6900; +D_803DA800 = 0x803DA800; +D_803FC100 = 0x803FC100; +D_A0000000 = 0xA0000000; +D_A4000000 = 0xA4000000; +D_A4001000 = 0xA4001000; +D_A4040000 = 0xA4040000; +D_A4100000 = 0xA4100000; +D_A4300000 = 0xA4300000; +D_A4400000 = 0xA4400000; +D_A4500000 = 0xA4500000; +D_A4600000 = 0xA4600000; +D_A4800000 = 0xA4800000; +D_801CE6D0 = 0x801CE6D0; +D_801D8DC0 = 0x801D8DC0; +D_801D9558 = 0x801D9558; +D_803001A0 = 0x803001A0; +gFrameBuffer = 0x803b6900; +D_80300170 = 0x80300170; +D_8022FAB0 = D_8022FAB0_ovl19; + +D_8004A684 = omGObjListDlHead + 4; +D_8004A704 = omGObjListDlHead + 0x84; +D_8004A70C = omGObjListDlTail + 4; +D_8004A56C = omGObjProcList + 0xC; + +/* delete these cont things when done */ +D_80048E9D = 0x80048E9D; +D_80048E9E = 0x80048E9E; +D_80048E9F = 0x80048E9F; +D_80048EB0 = 0x80048EB0; +D_80048EB4 = 0x80048EB4; +D_80048EBC = 0x80048EBC; +D_80048ED0 = 0x80048ED0; +D_80048ED4 = 0x80048ED4; +D_80048EDC = 0x80048EDC; +D_80048EF0 = 0x80048EF0; +D_80048EF4 = 0x80048EF4; +D_80048EFC = 0x80048EFC; +D_80048F10 = 0x80048F10; +D_80048F14 = 0x80048F14; +D_80048F1C = 0x80048F1C; +D_80048FC4 = 0x80048FC4; +D_800490D4 = 0x800490D4; + diff --git a/asm-differ/diff_settings.py b/diff_settings.py similarity index 68% rename from asm-differ/diff_settings.py rename to diff_settings.py index 9d08e5230..323d6a281 100644 --- a/asm-differ/diff_settings.py +++ b/diff_settings.py @@ -1,10 +1,10 @@ def apply(config, args): config["baseimg"] = "baserom.us.z64" - config["myimg"] = "build/us/kirby.us.z64" - config["mapfile"] = "build/us/kirby.us.map" + config["myimg"] = "build/kirby.us.z64" + config["mapfile"] = "build/kirby.us.map" config["source_directories"] = ["."] #config["arch"] = "mips" #config["map_format"] = "gnu" # gnu or mw #config["mw_build_dir"] = "build/" # only needed for mw map format #config["makeflags"] = [] - #config["objdump_executable"] = "" + #config["objdump_executable"] = "" \ No newline at end of file diff --git a/entry.s b/entry.s new file mode 100644 index 000000000..380eb4a32 --- /dev/null +++ b/entry.s @@ -0,0 +1,40 @@ +.include "macro.inc" + +/* assembler directives */ +.set noat /* allow manual use of $at */ +.set noreorder /* don't insert nops after branches */ +.set gp=64 /* allow use of 64-bit general purpose registers */ + +.section .text, "ax" + +/* Generated by spimdisasm 1.27.0 */ + +/* Handwritten function */ +glabel EntryPoint +.type EntryPoint, @function +/* 1000 80000400 3C088004 */ lui $t0, %hi(gEntryStack) +/* 1004 80000404 3C090005 */ lui $t1, (0x589B0 >> 16) +/* 1008 80000408 25082B90 */ addiu $t0, $t0, %lo(gEntryStack) +/* 100C 8000040C 352989B0 */ ori $t1, $t1, (0x589B0 & 0xFFFF) +.L80000410: +/* 1010 80000410 2129FFF8 */ addi $t1, $t1, -0x8 /* handwritten instruction */ +/* 1014 80000414 AD000000 */ sw $zero, 0x0($t0) +/* 1018 80000418 AD000004 */ sw $zero, 0x4($t0) +/* 101C 8000041C 1520FFFC */ bnez $t1, .L80000410 +/* 1020 80000420 21080008 */ addi $t0, $t0, 0x8 /* handwritten instruction */ +/* 1024 80000424 3C0A8000 */ lui $t2, %hi(cboot) +/* 1028 80000428 3C1D8004 */ lui $sp, %hi(gIdleThread) +/* 102C 8000042C 254A0870 */ addiu $t2, $t2, %lo(cboot) +/* 1030 80000430 01400008 */ jr $t2 +/* 1034 80000434 27BD2D90 */ addiu $sp, $sp, %lo(gIdleThread) +/* 1038 80000438 00000000 */ nop +/* 103C 8000043C 00000000 */ nop +/* 1040 80000440 00000000 */ nop +/* 1044 80000444 00000000 */ nop +/* 1048 80000448 00000000 */ nop +/* 104C 8000044C 00000000 */ nop +/* 1050 80000450 00000000 */ nop +/* 1054 80000454 00000000 */ nop +/* 1058 80000458 00000000 */ nop +/* 105C 8000045C 00000000 */ nop +.size EntryPoint, . - EntryPoint diff --git a/first-diff.py b/first-diff.py index 7dd0ea92a..6e34117e0 100755 --- a/first-diff.py +++ b/first-diff.py @@ -81,8 +81,8 @@ baseimg = f"baserom.{version}.z64" basemap = f"kirby.{version}.map" -myimg = f"build/{version}/kirby.{version}.z64" -mymap = f"build/{version}/{basemap}" +myimg = f"build/kirby.{version}.z64" +mymap = f"build/{basemap}" if os.path.isfile("expected/" + mymap): basemap = "expected/" + mymap diff --git a/fsym.sh b/fsym.sh new file mode 100755 index 000000000..a20ab8773 --- /dev/null +++ b/fsym.sh @@ -0,0 +1,3 @@ +#!/bin/bash +set -e +grep -r $1 libreultra diff --git a/funcstodo.txt b/funcstodo.txt new file mode 100644 index 000000000..ea0535ccd --- /dev/null +++ b/funcstodo.txt @@ -0,0 +1,6 @@ +func_80198880 = 0x80198880; +func_801DB1E0 = 0x801DB1E0; +tamper_check_ovl20 = 0x80300000; +func_80300170 = 0x80300170; +D_A4080000 = 0xA4080000; + diff --git a/include/AObj.h b/include/AObj.h new file mode 100644 index 000000000..c1cb08979 --- /dev/null +++ b/include/AObj.h @@ -0,0 +1,22 @@ +#ifndef AOBJ_H +#define AOBJ_H + +#include "ovl0/ovl0_3.h" + +// AObj +struct AObj { // TODO: Same as Unk6C? + struct AObj *next; // it's a list but is it really the next one? + u8 unk4; // index + u8 unk5; + u8 unk6; + u8 unk7; + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; + s32 unk20; +}; + +#endif // AOBJ_H diff --git a/include/D_8004A7C4.h b/include/D_8004A7C4.h index a7b1a159d..9052d476c 100644 --- a/include/D_8004A7C4.h +++ b/include/D_8004A7C4.h @@ -1,175 +1,6 @@ #ifndef D_8004A7C4_H #define D_8004A7C4_H -#include "types.h" -#include "ovl0/ovl0_2_5.h" -// same as D_800E1B50? -struct UnkStruct8004A7C4_3C_80 { - struct UnkStruct8004A7C4_3C_80 *unk0; - u32 unk4; - struct UnkStruct8004A7C4_3C_80 *unk8; - u32 unkC; - u32 unk10; - u32 unk14; - u32 unk18; - u32 unk1C; - u32 unk20; - u32 unk24; - u32 unk28; - u32 unk2C; - u32 unk30; - u32 unk34; - u32 unk38; - u32 unk3C; - u32 unk40; - u32 unk44; - u32 unk48; - u32 unk4C; - u8 unk50; - u8 unk51; - u8 unk52; - u8 unk53; - u32 unk54; - u8 unk58; - u8 unk59; - u8 unk5A; - u8 unk5B; - u32 unk5C; - u32 unk60; - u32 unk64; - u32 unk68; - u32 unk6C; - u32 unk70; - u32 unk74; - u32 unk78; - u32 unk7C; - u32 unk80; - u32 unk84; - f32 unk88; - u32 unk8C; - u32 unk90; - u32 unk94; - f32 unk98; - u32 unk9C; - f32 unkA0; -}; - - -struct UnkStruct8004A7C4_3C_10 { - u8 pad[0x30]; - // vec? - Vector unk30; -}; - -// SOME chunk of the beginning of the struct is a union -struct UnkStruct8004A7C4_3C { - // u32 unk0; - // u32 unk4; - // u32 unk8; - Vector unk0; - - u32 unkC; - - struct UnkStruct8004A7C4_3C_10 *unk10; - u32 unk14; - u32 unk18; - - // pos - Vector posVec; - - u32 unk28; - u32 unk2C; - - // angle - Vector angleVec; - - // TODO: how is this actually structured? - // some code thinks unk3C is the vector while others - // think unk40 is - f32 unk3C; - // scale - Vector scaleVec; - - u32 unk4C; - u32 unk50[4]; - u32 unk60[4]; - s32 unk70; - s32 unk74; - f32 unk78; - s32 unk7C; - struct UnkStruct8004A7C4_3C_80 *unk80; - u32 unk84; -}; - -// only difference is that unk3C is a vector now -struct UnkStruct8004A7C4_3C_duplicate { - // u32 unk0; - // u32 unk4; - // u32 unk8; - Vector unk0; - - u32 unkC; - - struct UnkStruct8004A7C4_3C_10 *unk10; - u32 unk14; - u32 unk18; - - Vector unk1C; - - u32 unk28; - u32 unk2C; - - Vector unk30; - - Vector unk3C; - f32 unk40; - - u32 unk4C; - u32 unk50[4]; - u32 unk60[4]; - u32 unk70[4]; - u32 unk80; - u32 unk84; -}; - -// GObj? -typedef struct GObj { - /* 0x00 */ u32 objId; - /* 0x04 */ struct GObj* unk4; - /* 0x08 */ struct GObj* unk8; - /* 0x0C */ u8 link; - // todo: find the array this indexes - /* 0x0D */ u8 dl_link; - // seems to be similar to other GObj's in proximity - u8 unkE; - u8 unkF; - u32 unk10; - // location of render callback according to HSD - void (*unk14)(void); - struct GObjProcess *proc; - u32 unk1C; - struct GObj* nextDL; - struct GObj* prevDL; - u32 renderPriority; - // location of user data removal function according to HSD - // based on usage this might actually be the render callback - void (*unk2C)(struct GObj *); - u32 unk30; - u32 unk34; - u32 unk38; - // user_data??? - struct UnkStruct8004A7C4_3C *unk3C; - // goes up by 2.0f per frame until it hits 40.0f, then resets to 0.0f - f32 unk40; - u32 unk44; - // grab arguments - void (*unk48)(void); - u32 unk4C; -} GObj; -// size: 0x50 -extern struct GObj *D_8004A7C4, *D_8004A7C8, *D_8004A7CC; -extern struct GObj *D_800DE44C; - -typedef void (*VTABLE[])(struct GObj *); +#include "GObj.h" #endif diff --git a/include/GObj.h b/include/GObj.h new file mode 100644 index 000000000..f6c27f729 --- /dev/null +++ b/include/GObj.h @@ -0,0 +1,188 @@ +#ifndef GOBJ_H +#define GOBJ_H +#include "types.h" +#include "main/object_manager.h" + +// same as D_800E1B50? +struct UnkStruct8004A7C4_3C_80 { + struct UnkStruct8004A7C4_3C_80 *unk0; + u32 unk4; + struct UnkStruct8004A7C4_3C_80 *unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + u32 unk20; + u32 unk24; + u32 unk28; + u32 unk2C; + u32 unk30; + u32 unk34; + u32 unk38; + u32 unk3C; + u32 unk40; + u32 unk44; + u32 unk48; + u32 unk4C; + u8 unk50; + u8 unk51; + u8 unk52; + u8 unk53; + u32 unk54; + u8 unk58; + u8 unk59; + u8 unk5A; + u8 unk5B; + u32 unk5C; + u32 unk60; + u32 unk64; + u32 unk68; + u32 unk6C; + u32 unk70; + u32 unk74; + u32 unk78; + u32 unk7C; + u32 unk80; + u32 unk84; + f32 unk88; + u32 unk8C; + u32 unk90; + u32 unk94; + f32 unk98; + u32 unk9C; + f32 unkA0; +}; + + +struct UnkStruct8004A7C4_3C_10 { + u8 pad[0x30]; + // vec? + Vector unk30; +}; + +// SOME chunk of the beginning of the struct is a union +// SAME AS A LayoutNode?????? +struct UnkStruct8004A7C4_3C { + // u32 unk0; + // u32 unk4; + // u32 unk8; + Vector unk0; + + u32 unkC; + + struct UnkStruct8004A7C4_3C_10 *unk10; + u32 unk14; + u32 unk18; + + // pos + Vector posVec; + + u32 unk28; + u32 unk2C; + + // angle + Vector angleVec; + + // TODO: how is this actually structured? + // some code thinks unk3C is the vector while others + // think unk40 is + f32 unk3C; + // scale + Vector scaleVec; + + u32 unk4C; + u32 unk50[4]; + u32 unk60[4]; + s32 unk70; + s32 unk74; + f32 unk78; + s32 unk7C; + struct UnkStruct8004A7C4_3C_80 *unk80; + u32 unk84; +}; + +// only difference is that unk3C is a vector now +struct UnkStruct8004A7C4_3C_duplicate { + // u32 unk0; + // u32 unk4; + // u32 unk8; + Vector unk0; + + u32 unkC; + + struct UnkStruct8004A7C4_3C_10 *unk10; + u32 unk14; + u32 unk18; + + Vector unk1C; + + u32 unk28; + u32 unk2C; + + Vector unk30; + + Vector unk3C; + f32 unk40; + + u32 unk4C; + u32 unk50[4]; + u32 unk60[4]; + u32 unk70[4]; + u32 unk80; + u32 unk84; +}; + +enum GObjKinds { + GOBJ_KIND_NONE = 0, + // GOBJ_KIND_DOBJ, + // GOBJ_KIND_SOBJ, + // GOBJ_KIND_CAMERA, +}; + +typedef void (*GObjFunc)(struct GObj *); + +// Flags +#define GOBJ_FLAGS_HIDDEN 1 + +// GObj? +typedef struct GObj { + /* 0x00 */ u32 objId; + /* 0x04 */ struct GObj* next; + /* 0x08 */ struct GObj* prev; + /* 0x0C */ u8 link; + // todo: find the array this indexes + /* 0x0D */ u8 dl_link; + // seems to be similar to other GObj's in proximity + u8 unkE; + u8 kind; + /* 0x10 */ + u32 pri; + GObjFunc onUpdate; + struct GObjProcess *procListHead; + struct GObjProcess *procListTail; + /* 0x20 */ + struct GObj* nextDL; + struct GObj* prevDL; + u32 renderPriority; + GObjFunc onDraw; + /* 0x30 */ + u32 unk30; + u32 unk34; + u32 unk38; + // user_data??? + struct UnkStruct8004A7C4_3C *unk3C; + // goes up by 2.0f per frame until it hits 40.0f, then resets to 0.0f + f32 unk40; + u32 flags; + // grab arguments + void (*unk48)(void); + u32 unk4C; +} GObj; +// size: 0x50 +extern struct GObj *omCurrentObj, *D_8004A7C8, *D_8004A7CC; +extern struct GObj *D_800DE44C; + +typedef void (*VTABLE[])(struct GObj *); + +#endif // GOBJ_H diff --git a/include/PR/libaudio.h b/include/PR/_libaudio.h.old similarity index 100% rename from include/PR/libaudio.h rename to include/PR/_libaudio.h.old diff --git a/include/PR/os_cont.h b/include/PR/_oscont.h similarity index 100% rename from include/PR/os_cont.h rename to include/PR/_oscont.h diff --git a/include/PR/os_pi.h b/include/PR/os_pi.h index 7dbf471cd..2d9e3549a 100644 --- a/include/PR/os_pi.h +++ b/include/PR/os_pi.h @@ -60,9 +60,7 @@ typedef struct { /*0x08*/ void *dramAddr; /*0x0C*/ uintptr_t devAddr; /*0x10*/ size_t size; -#if defined(VERSION_EU) || defined(VERSION_SH) OSPiHandle *piHandle; // from the official definition -#endif } OSIoMesg; /* Definitions */ diff --git a/include/Player.h b/include/Player.h new file mode 100644 index 000000000..a09e824a1 --- /dev/null +++ b/include/Player.h @@ -0,0 +1,220 @@ +#ifndef PLAYER_H +#define PLAYER_H + +#include "types.h" + +struct KirbyState_114 { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u16 unk10; + u16 unk12; +}; + +struct KirbyState_184 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; + f32 unk20; +}; + +// 0x8012E7C0 +// TODO: populate with actual values +struct Player { + u32 actionChange; // 0x0 + u8 unk4; + u8 action; // 0x5 + u8 previousAction; // 0x6 + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 abilityState; // 0xC + s8 unkD; + u8 unkE; + u8 unkF; + u32 unk10; + u8 unk14; + u8 unk15; + u8 unk16; + u8 unk17; + u8 unk18; + u8 unk19; + u8 unk1A; + u8 unk1B; + u32 floatTimer; // 0x1C + s32 turnDirection; // 0x20 + u32 unk24; + u32 unk28; + s32 unk2C; + u32 unk30; + // u8 unk31; + // u8 unk32; + // u8 unk33; + u32 isTurning; // 0x34 + f32 unk38; + s32 unk3C; + f32 unk40; + s32 unk44; + u32 unk48; + // struct pointer + u32 unk4C; + // struct pointer + u32 unk50; + u32 unk54; + u32 unk58; + u16 unk5C; + u16 unk5E; + u32 unk60; + u16 unk64; + u16 unk66; + u16 unk68; + u16 unk6A; + u32 unk6C; + u32 unk70; + u32 unk74; + f32 unk78; + f32 unk7C; + f32 unk80; + u32 unk84; + u16 unk88; + u16 unk8A; + u32 unk8C; + u32 ability; // 0x90 + u32 currentInhale; // 0x94 + u32 firstInhale; // 0x98 + u32 secondInhale; // 0x9C + u32 abilityInUse; // 0xA0 + u32 unkA4; + u32 inhaledEntityData; // 0xA8 (First 4 bytes of Entity struct) + u32 isHoldingEntity; // 0xAC + u8 isInhaling; // 0xB0 + u8 isInhalingBlock; // 0xB1 + s16 numberInhaling; // 0xB2 + s16 numberInhaled; // 0xB4 + u16 unkB6; + u8 unkB8; + u8 unkB9; + u16 unkBA; + f32 unkBC; + f32 unkC0; + f32 unkC4; + f32 unkC8; + f32 unkCC; + u16 jumpHeight; // 0xD0 + u16 isFullJump; // 0xD2 + s16 damageType; // 0xD4 + u16 damageFlashTimer; // 0xD6 + u16 damagePaletteTimer; // 0xD8 + u16 damagePaletteIndex; // 0xDA + u8 isTakingDamage; // 0xDC + u8 droppedAbility; // 0xDD + u16 abilityDropTimer; // 0xDE + u16 hpAfterDamage; // 0xE0 + u16 unkE2; + u32 ceilingCollisionNext; // 0xE4 + u32 floorCollisionNext; // 0xE8 + u32 rightCollisionNext; // 0xEC + u32 leftCollisionNext; // 0xF0 + u32 levelCollisionFlags; // 0xF4 + u32 verticalCollision; // 0xF8 + u32 horizontalCollision; // 0xFC + u16 ceilingType; // 0x100 + u16 floorType; // 0x102 + u16 unk104; + u16 unk106; + u16 unk108; + u16 unk10A; + u32 unk10C; + u32 unk110; + // todo: verify this + struct KirbyState_114 *unk114; + u32 unk118; + u32 unk11C; + u32 unk120; + u32 unk124; + u32 unk128; + u32 unk12C; + u32 unk130; + u32 unk134; + u32 unk138; + u32 unk13C; + u32 unk140; + + f32 unk144; + f32 unk148; + f32 unk14C; + + u8 unk150; + u8 unk151; + u8 unk152; + u8 unk153; + u32 unk154; + f32 unk158; + u32 unk15C; + + u16 unk160; + u16 unk162; + f32 unk164; + f32 unk168; + u32 unk16C; + u32 unk170; + + f32 forwardVel; + Vec3f vel; // 0x178 + + // --- + // TODO: does Player actually end here??? + // --- + + + // u32 unk184; + // u32 unk188; + // u32 unk18C; + // u32 unk190; + // u32 unk194; + // u32 unk198; + // u32 unk19C; + // u32 unk1A0; + // u32 unk1A4; + struct KirbyState_184 _184; + + + u32 unk1A8; //PositionState goes from here until the end + u32 unk1AC; + u32 unk1B0; + u32 unk1B4; + u32 unk1B8; + u32 unk1BC; + u32 unk1C0; + u32 unk1C4; + u32 unk1C8; + + f32 xPos; // 0x1CC + f32 yPos; // 0x1D0 + f32 zPos; // 0x1D4 + + u32 unk1D8; + u32 unk1DC; + u32 unk1E0; + u32 unk1E4; + u32 unk1E8; + u32 unk1EC; + u32 unk1F0; + u32 unk1F4; + u32 unk1F8; + u32 unk1FC; + u32 viTimer; // 0x200 +}; + +extern struct Player gKirbyState; + +#endif // PLAYER_H diff --git a/include/common.h b/include/common.h new file mode 100644 index 000000000..446b8a040 --- /dev/null +++ b/include/common.h @@ -0,0 +1,2 @@ +#include +#include "types.h" diff --git a/include/macro.inc b/include/macro.inc new file mode 100644 index 000000000..f8b3cd8da --- /dev/null +++ b/include/macro.inc @@ -0,0 +1,2 @@ +# n64split->splat translation +.include "macros.inc" diff --git a/include/segments.h b/include/segments.h index 8ab99191e..ec87acafe 100644 --- a/include/segments.h +++ b/include/segments.h @@ -1,3 +1,6 @@ +#ifndef SEGMENTS_H +#define SEGMENTS_H + #define EXTERN_OVERLAY(nm) \ extern u8 _ ## nm ## SegmentRomStart[];\ extern u8 _ ## nm ## SegmentRomEnd[];\ @@ -7,7 +10,7 @@ extern u8 _ ## nm ## DataSegmentEnd[];\ extern u8 _ ## nm ## DataSegmentRomEnd[];\ extern u8 _ ## nm ## SegNoloadStart[];\ - extern u8 _ ## nm ## SegNoloadEnd[];\ + extern u8 _ ## nm ## SegNoloadEnd[] EXTERN_OVERLAY(ovl1); EXTERN_OVERLAY(ovl2); @@ -30,6 +33,51 @@ EXTERN_OVERLAY(ovl18); EXTERN_OVERLAY(ovl19); EXTERN_OVERLAY(ovl20); + +#define EXTERN_OVERLAY_SPLAT(nm) \ + extern u8 nm ## _ROM_START[];\ + extern u8 nm ## _ROM_END[];\ + extern u8 nm ## _VRAM[];\ + extern u8 nm ## _TEXT_START[];\ + extern u8 nm ## _TEXT_END[];\ + extern u8 nm ## _DATA_START[];\ + extern u8 nm ## _RODATA_END[];\ + extern u8 nm ## _BSS_START[];\ + extern u8 nm ## _BSS_END[] + +EXTERN_OVERLAY_SPLAT(ovl1); +EXTERN_OVERLAY_SPLAT(ovl2); +EXTERN_OVERLAY_SPLAT(ovl3); +EXTERN_OVERLAY_SPLAT(ovl4); +EXTERN_OVERLAY_SPLAT(ovl5); +EXTERN_OVERLAY_SPLAT(ovl6); +EXTERN_OVERLAY_SPLAT(ovl7); +EXTERN_OVERLAY_SPLAT(ovl8); +EXTERN_OVERLAY_SPLAT(ovl9); +EXTERN_OVERLAY_SPLAT(ovl10); +EXTERN_OVERLAY_SPLAT(ovl11); +EXTERN_OVERLAY_SPLAT(ovl12); +EXTERN_OVERLAY_SPLAT(ovl13); +EXTERN_OVERLAY_SPLAT(ovl14); +EXTERN_OVERLAY_SPLAT(ovl15); +EXTERN_OVERLAY_SPLAT(ovl16); +EXTERN_OVERLAY_SPLAT(ovl17); +EXTERN_OVERLAY_SPLAT(ovl18); +EXTERN_OVERLAY_SPLAT(ovl19); +EXTERN_OVERLAY_SPLAT(ovl20); + +#define OVERLAY(nm) {\ + nm ## _ROM_START, \ + nm ## _ROM_END, \ + nm ## _VRAM, \ + nm ## _TEXT_START, \ + nm ## _TEXT_END, \ + nm ## _DATA_START, \ + nm ## _RODATA_END, \ + nm ## _BSS_START, \ + nm ## _BSS_END, \ +} + extern u8 _data_250320SegmentRomStart[]; extern u8 _data_2A8CB0SegmentRomStart[]; extern u8 _data_2B1510SegmentRomStart[]; @@ -50,3 +98,5 @@ extern u8 _data_49F590SegmentRomEnd[]; extern u8 _data_4A0340SegmentRomEnd[]; extern u8 _data_4A3B60SegmentRomEnd[]; extern u8 _data_4AA8F0SegmentRomEnd[]; + +#endif // SEGMENTS_H diff --git a/include/track_arrays.h b/include/track_arrays.h new file mode 100644 index 000000000..8fa499e2a --- /dev/null +++ b/include/track_arrays.h @@ -0,0 +1,164 @@ +#ifndef OVL1_6_H +#define OVL1_6_H + +#include "ovl2/ovl2_6.h" +#include "ovl19/ovl19_5.h" + + +#define MultiType union {u32 as_u32; u32 *as_u32p; s32 as_s32; s32 *as_s32p; f32 as_f32; void *as_ptr;} +#define _MultiType(CustomType) union {u32 as_u32; s32 as_s32; f32 as_f32; void *as_ptr; CustomType *consume;} + +extern s32 D_800DD710[]; +extern s32 D_800DE190[]; +extern s32 D_800DDFD0[]; +extern s32 D_800DDE10[]; +extern s32 gEntityVtableIndexArray[]; +extern s32 D_800DD8D0[]; +extern s32 D_800E0810[]; + + +extern f32 D_800E0B90[]; +extern f32 D_800E09D0[]; +extern s32 D_800E0F10[]; +extern s32 D_800E0D50[]; +extern f32 **D_800E0490[]; +extern s32 *D_800E0650[]; +extern s32 D_800E1ED0[]; +extern void (*D_800DEDD0[])(struct GObj *); +extern void (*D_800DEF90[])(s32); +extern void (*D_800DF150[])(s32); +extern void (*D_800DF310[])(s32, s32, f32); +extern u32 D_800DF850[]; +extern u32 D_800DF690[]; +extern u32 *gSegment4StartArray[]; + +// i think this is an array of pairs (2-length arrays) of pointers but cba to figure out syntax +extern struct LayoutNode **D_800DFBD0[]; +extern s32 D_800E0110[]; +extern s32 D_800DFF50[]; +extern s32 D_800E02D0[]; + +extern f32 D_800E2410[]; +extern f32 D_800E2250[]; +extern f32 D_800E2090[]; + +extern f32 gEntitiesPosZArray[]; +extern f32 gEntitiesPosYArray[]; +extern f32 gEntitiesPosXArray[]; +extern f32 gEntitiesNextPosZArray[]; +extern f32 gEntitiesNextPosYArray[]; +extern f32 gEntitiesNextPosXArray[]; +extern f32 D_800E3910[]; +extern f32 D_800E3750[]; +extern f32 D_800E3590[]; +extern f32 D_800E33D0[]; +extern f32 D_800E3210[]; +extern f32 D_800E3050[]; +extern f32 D_800E3E50[]; +extern f32 D_800E3C90[]; +extern f32 D_800E3AD0[]; +extern f32 gEntitiesAngleZArray[]; +extern f32 gEntitiesAngleYArray[]; +extern f32 gEntitiesAngleXArray[]; +extern f32 D_800E1450[]; +extern f32 D_800E1290[]; +extern f32 D_800E10D0[]; +extern f32 gEntitiesScaleZArray[]; +extern f32 gEntitiesScaleYArray[]; +extern f32 gEntitiesScaleXArray[]; +extern f32 D_800E5DD0[]; +extern f32 D_800E5C10[]; +extern f32 D_800E5A50[]; +extern f32 D_800E4E10[]; +extern f32 D_800E4C50[]; +extern f32 D_800E4A90[]; +extern f32 D_800E5350[]; +extern f32 D_800E5190[]; +extern f32 D_800E4FD0[]; + +extern u32 D_800DDA90[]; + +extern u8 D_800E7650[]; + +extern s32 D_800E8AE0[]; +extern s32 D_800E8220[]; +extern s32 D_800E83E0[]; +extern s32 D_800E8760[]; + +extern u32 D_800E8E60[]; +extern f32 D_800E9020[]; +extern u8 D_800E76C0[]; +extern u8 D_800E7730[]; + +extern u16 D_800E77A0[]; + +extern u8 D_800E7880[]; +extern u8 D_800E78F0[]; +extern f32 D_800E7B20[]; +extern u32 D_800E7CE0[]; +extern s32 D_800EA520[]; +extern s32 D_800EA360[]; +extern s32 D_800EA1A0[]; + +// this is a union or void* +extern MultiType D_800E9FE0[]; + +extern s32 D_800E9E20[]; +extern s32 D_800E9C60[]; + +// this is also a union or void* +extern MultiType D_800E9AA0[]; +extern s32 D_800E98E0[]; +extern f32 D_800EB320[]; +extern f32 D_800EB160[]; +extern f32 D_800EAFA0[]; +extern f32 D_800EADE0[]; +extern f32 D_800EAC20[]; +extern f32 D_800EAA60[]; +extern f32 D_800EA8A0[]; +extern f32 D_800EA6E0[]; +extern s32 D_800EB6A0[]; +extern s32 D_800EB4E0[]; +extern f32 D_800EBA20[]; +extern f32 D_800EB860[]; +extern s32 D_800EC120[]; +extern s32 D_800EBF60[]; +extern s32 D_800EBDA0[]; +extern s32 D_800EBBE0[]; +extern s32 D_800EC4A0[]; + +// this is also a union or void* +extern MultiType D_800EC2E0[]; + +extern f32 D_800EC820[]; +extern f32 D_800EC660[]; +extern s32 D_800E6150[]; +extern s32 D_800E5F90[]; +extern f32 D_800E6D90[]; +extern f32 D_800E6BD0[]; +extern f32 D_800E17D0[]; +extern f32 D_800E1610[]; +extern f32 D_800E6A10[]; +extern f32 D_800E6690[]; +extern f32 D_800E64D0[]; + +extern f32 D_800E6850[]; +extern s32 D_800E8CA0[]; +extern s32 D_800E6310[]; +extern f32 D_800E56D0[]; +extern f32 D_800E5510[]; +extern f32 D_800E5890[]; +extern s32 D_800E9720[]; +extern s32 D_800E9560[]; +extern s32 D_800E93A0[]; + +extern f32 D_800D6B10; + +extern struct Normal D_800E6F50[]; +extern f32 D_800D66FC, D_800D66F8; + +extern u32 D_800E8060[]; +extern s32 D_800E8920[]; +extern s32 D_800E7EA0[]; + +#endif diff --git a/include/types.h b/include/types.h index e4df75cd1..fa7c171bf 100644 --- a/include/types.h +++ b/include/types.h @@ -43,22 +43,27 @@ typedef f32 Vec3f[3]; // TODO: where do i put this??? typedef f32 Mat4[4][4]; -typedef struct { +typedef struct Vector3 { f32 x; f32 y; f32 z; } Vector; +typedef struct { + f32 x; + f32 y; +} Vector2; + struct Overlay { - void *startAddr; - void *endAddr; - void *RAMStart; - void *textStart; - void *textEnd; - void *dataStart; - void *dataEnd; - void *bssStart; - void *bssEnd; + /* 0x00 */ void *startAddr; + /* 0x04 */ void *endAddr; + /* 0x08 */ void *RAMStart; + /* 0x0C */ void *textStart; + /* 0x10 */ void *textEnd; + /* 0x14 */ void *dataStart; + /* 0x18 */ void *dataEnd; + /* 0x1C */ void *bssStart; + /* 0x20 */ void *bssEnd; }; struct Entity { @@ -119,217 +124,5 @@ typedef struct Controller_800D6FE8 { } Controller_800D6FE8; extern Controller_800D6FE8 gKirbyController; -struct KirbyState_114 { - u32 unk0; - u32 unk4; - u32 unk8; - u32 unkC; - u16 unk10; - u16 unk12; -}; - -struct KirbyState_184 { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; - - f32 unk10; - f32 unk14; - f32 unk18; - f32 unk1C; - f32 unk20; -}; - -// 0x8012E7C0 -// TODO: populate with actual values -struct Player { - u32 actionChange; // 0x0 - u8 unk4; - u8 action; // 0x5 - u8 previousAction; // 0x6 - u8 unk7; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 abilityState; // 0xC - s8 unkD; - u8 unkE; - u8 unkF; - u32 unk10; - u8 unk14; - u8 unk15; - u8 unk16; - u8 unk17; - u8 unk18; - u8 unk19; - u8 unk1A; - u8 unk1B; - u32 floatTimer; // 0x1C - s32 turnDirection; // 0x20 - u32 unk24; - u32 unk28; - s32 unk2C; - u32 unk30; - // u8 unk31; - // u8 unk32; - // u8 unk33; - u32 isTurning; // 0x34 - f32 unk38; - s32 unk3C; - f32 unk40; - u32 unk44; - u32 unk48; - // struct pointer - u32 unk4C; - // struct pointer - u32 unk50; - u32 unk54; - u32 unk58; - u16 unk5C; - u16 unk5E; - u32 unk60; - u16 unk64; - u16 unk66; - u16 unk68; - u16 unk6A; - u32 unk6C; - u32 unk70; - u32 unk74; - f32 unk78; - f32 unk7C; - f32 unk80; - u32 unk84; - u16 unk88; - u16 unk8A; - u32 unk8C; - u32 ability; // 0x90 - u32 currentInhale; // 0x94 - u32 firstInhale; // 0x98 - u32 secondInhale; // 0x9C - u32 abilityInUse; // 0xA0 - u32 unkA4; - u32 inhaledEntityData; // 0xA8 (First 4 bytes of Entity struct) - u32 isHoldingEntity; // 0xAC - u8 isInhaling; // 0xB0 - u8 isInhalingBlock; // 0xB1 - s16 numberInhaling; // 0xB2 - s16 numberInhaled; // 0xB4 - u16 unkB6; - u8 unkB8; - u8 unkB9; - u16 unkBA; - f32 unkBC; - f32 unkC0; - f32 unkC4; - f32 unkC8; - f32 unkCC; - u16 jumpHeight; // 0xD0 - u16 isFullJump; // 0xD2 - s16 damageType; // 0xD4 - u16 damageFlashTimer; // 0xD6 - u16 damagePaletteTimer; // 0xD8 - u16 damagePaletteIndex; // 0xDA - u8 isTakingDamage; // 0xDC - u8 droppedAbility; // 0xDD - u16 abilityDropTimer; // 0xDE - u16 hpAfterDamage; // 0xE0 - u16 unkE2; - u32 ceilingCollisionNext; // 0xE4 - u32 floorCollisionNext; // 0xE8 - u32 rightCollisionNext; // 0xEC - u32 leftCollisionNext; // 0xF0 - u32 levelCollisionFlags; // 0xF4 - u32 verticalCollision; // 0xF8 - u32 horizontalCollision; // 0xFC - u16 ceilingType; // 0x100 - u16 floorType; // 0x102 - u16 unk104; - u16 unk106; - u16 unk108; - u16 unk10A; - u32 unk10C; - u32 unk110; - // todo: verify this - struct KirbyState_114 *unk114; - u32 unk118; - u32 unk11C; - u32 unk120; - u32 unk124; - u32 unk128; - u32 unk12C; - u32 unk130; - u32 unk134; - u32 unk138; - u32 unk13C; - u32 unk140; - - f32 unk144; - f32 unk148; - f32 unk14C; - - u8 unk150; - u8 unk151; - u8 unk152; - u8 unk153; - u32 unk154; - f32 unk158; - u32 unk15C; - - u16 unk160; - u16 unk162; - f32 unk164; - f32 unk168; - u32 unk16C; - u32 unk170; - - f32 forwardVel; - Vec3f vel; // 0x178 - - // --- - // TODO: does Player actually end here??? - // --- - - - // u32 unk184; - // u32 unk188; - // u32 unk18C; - // u32 unk190; - // u32 unk194; - // u32 unk198; - // u32 unk19C; - // u32 unk1A0; - // u32 unk1A4; - struct KirbyState_184 _184; - - - u32 unk1A8; //PositionState goes from here until the end - u32 unk1AC; - u32 unk1B0; - u32 unk1B4; - u32 unk1B8; - u32 unk1BC; - u32 unk1C0; - u32 unk1C4; - u32 unk1C8; - - f32 xPos; // 0x1CC - f32 yPos; // 0x1D0 - f32 zPos; // 0x1D4 - - u32 unk1D8; - u32 unk1DC; - u32 unk1E0; - u32 unk1E4; - u32 unk1E8; - u32 unk1EC; - u32 unk1F0; - u32 unk1F4; - u32 unk1F8; - u32 unk1FC; - u32 viTimer; // 0x200 -}; - #endif /* TYPES_H */ diff --git a/include/ultra64.h b/include/ultra64.h index 409a3cf76..dcc11697d 100644 --- a/include/ultra64.h +++ b/include/ultra64.h @@ -27,7 +27,7 @@ #include #include #include -#include +// #include #include #endif diff --git a/include/unk_structs/D_800D6C68.h b/include/unk_structs/D_800D6C68.h new file mode 100644 index 000000000..57af868ce --- /dev/null +++ b/include/unk_structs/D_800D6C68.h @@ -0,0 +1,14 @@ +#ifndef D_800D6C68_H +#define D_800D6C68_H + +struct UnkStruct800D6C68 { + u32 unk00[4]; + u32 unk10[4]; + u32 unk20[2]; + u8 unk28[0x40]; + u8 unk68[0x40]; +}; + +extern struct UnkStruct800D6C68 D_800D6C68; + +#endif // D_800D6C68_H \ No newline at end of file diff --git a/include/unk_structs/D_8022FAB0.h b/include/unk_structs/D_8022FAB0.h new file mode 100644 index 000000000..f8a3a4077 --- /dev/null +++ b/include/unk_structs/D_8022FAB0.h @@ -0,0 +1,22 @@ +#ifndef _8022FAB0_H +#define _8022FAB0_H + +struct UnkStruct8022FAB0 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; + u8 unk20; + u8 unk21; + u8 unk22; + u8 unk23; +}; + +extern struct UnkStruct8022FAB0 *D_8022FAB0; +extern struct UnkStruct8022FAB0 *D_8022FAB0_ovl19; + +#endif \ No newline at end of file diff --git a/kirby.us.ld b/kirby.us.ld index 7fbb1e442..519b3237b 100644 --- a/kirby.us.ld +++ b/kirby.us.ld @@ -39,7 +39,8 @@ OUTPUT_ARCH (mips) .name.noload (NOLOAD) : #define END_NOLOAD(name) \ - _##name##SegNoloadEnd = ADDR(.name.noload) + SIZEOF(.name.noload); + _##name##SegNoloadEnd = ADDR(.name.noload) + SIZEOF(.name.noload); \ + _##name##SegNoloadSize = _##name##SegNoloadEnd - _##name##SegNoloadStart; SECTIONS @@ -332,10 +333,11 @@ SECTIONS BUILD_DIR/libultra.a:pfsisplug.o(.bss); BUILD_DIR/libultra.a:vimgr.o(.bss); BUILD_DIR/libultra.a:conteepread.o(.bss); + . += 0x40; } END_NOLOAD(ovl0) /* edit this line when modifying bss */ - _mainSegmentNoloadSize = SIZEOF(.ovl0.noload) + 0x40; + _mainSegmentNoloadSize = SIZEOF(.ovl0.noload); _mainSegmentNoloadSizeHi = _mainSegmentNoloadSize >> 16; _mainSegmentNoloadSizeLo = _mainSegmentNoloadSize & 0xFFFF; diff --git a/kirby.us.sha1 b/kirby.us.sha1 index 06b1655e6..b3c27dc57 100644 --- a/kirby.us.sha1 +++ b/kirby.us.sha1 @@ -1 +1 @@ -6cea2d46b929a3bb347b060a77fccc83526fb855 build/us/kirby.us.z64 +6cea2d46b929a3bb347b060a77fccc83526fb855 build/kirby.us.z64 diff --git a/kirby64.yaml b/kirby64.yaml new file mode 100644 index 000000000..33cee43ec --- /dev/null +++ b/kirby64.yaml @@ -0,0 +1,770 @@ +name: Kirby 64 (US) +sha1: 6cea2d46b929a3bb347b060a77fccc83526fb855 +options: + basename: kirby + target_path: baserom.us.z64 + find_file_boundaries: True + platform: n64 + compiler: ido + asm_emit_size_directive: True + asm_path: asm + src_path: src + asset_path: assets + base_path: . + build_path: build + lib_path: build + o_as_suffix: True + do_c_func_detection: True + symbol_addrs_path: tools/symbol_addrs.txt + extensions_path: tools/splat_ext + # reloc_addrs_path: reloc_addrs.txt + ld_script_path: kirby.ld + asm_inc_header: "" + use_legacy_include_asm: False + subalign: 16 + segment_end_before_align: True +segments: + - [0x0, header] + + - name: boot + type: bin + start: 0x0040 + + - name: main + type: code + start: 0x1000 + end: 0x69EE0 + vram: 0x80000400 + bss_size: 0x589b0 + subsegments: + - [0x1000, hasm, entry] + - [0x1060, c, main/main] + - [0x1500, c, main/sched] + - [0x37A0, c, main/dma] + - [0x49C0, c, main/contpad] + - [0x5F50, c, main/code_5F50] + - [0x8430, c, main/memory_layer] + - [0x84F0, c, main/code_84F0] + - [0x8800, c, main/rdp_reset] + - [0x8B60, c, main/object_manager] + - [0xBFE0, c, main/object_helpers] + - [0xCA90, c, main/code_CA90] + - [0x11720, c, main/code_11720] + - [0x191B0, c, main/math] + - [0x198A0, c, main/lbvector] + - [0x1A630, c, main/lbreflect] + - [0x1EFA0, c, main/audio] + - [0x21b20, pad] + - [0x21B40, c, main/crash_screen] + - [0x23EB0, asm, main/code_23EB0] + - [0x23F00, asm, main/code_23F00] + - [0x23F60, asm, main/libn_audio] + - [0x2B910, lib, libn_audio, n_synsetpan] + - [0x2B990, asm, main/libn_audio_2] + - [0x2DE50, lib, libn_audio, n_synsetvol] + - [0x2DEF0, lib, libultra_rom, sendmesg] + - [0x2E040, lib, libultra_rom, stopthread] + - [0x2E100, lib, libultra_rom, recvmesg] + - [0x2E240, lib, libultra_rom, setintmask] + - [0x2E2E0, lib, libultra_rom, sinf] + - [0x2E4A0, lib, libultra_rom, sptask] + - [0x2E790, lib, libultra_rom, destroythread] + - [0x2E8A0, lib, libultra_rom, ll] + - [0x2EB60, lib, libultra_rom, exceptasm] + - [0x2F470, lib, libultra_rom, thread] + - [0x2F4B0, lib, libultra_rom, bzero] + - [0x2F550, lib, libultra_rom, leointerrupt] + - [0x2FC40, lib, libultra_rom, motor] + - [0x30010, lib, libultra_rom, siacs] + - [0x30240, lib, libultra_rom, controller] + - [0x30410, lib, libultra_rom, conteepwrite] + - [0x307E0, lib, libultra_rom, createthread] + - [0x30930, lib, libultra_rom, contreaddata] + - [0x30B10, lib, libultra_rom, conteeplongread] + - [0x30BA0, lib, libultra_rom, virtualtophysical] + - [0x30C20, lib, libultra_rom, writebackdcache] + - [0x30CA0, lib, libultra_rom, initialize] + - [0x30F30, lib, libultra_rom, pirawread] + - [0x30F90, pad] + - [0x30FF0, lib, libultra_rom, setsr] + - [0x31000, lib, libultra_rom, getsr] + - [0x31010, lib, libultra_rom, vigetnextframebuf] + - [0x31050, lib, libultra_rom, sprawdma] + - [0x310E0, lib, libultra_rom, sirawdma] + - [0x31140, lib, libultra_rom, epilinkhandle] + - [0x311E0, lib, libultra_rom, viblack] + - [0x31250, lib, libultra_rom, sirawread] + - [0x312A0, lib, libultra_rom, sptaskyield] + - [0x312C0, lib, libultra_rom, pfsreadwritefile] + - [0x31710, lib, libultra_rom, mtxutil] + - [0x31980, lib, libultra_rom, visetmode] + - [0x319F0, lib, libultra_rom, pfsallocatefile] + - [0x31E70, lib, libultra_rom, pfsfreeblocks] + - [0x32010, lib, libultra_rom, probetlb] + - [0x320D0, lib, libultra_rom, getcount] + - [0x320E0, lib, libultra_rom, contpfs] + - [0x32C60, lib, libultra_rom, conteepprobe] + - [0x32CD0, lib, libultra_rom, pfssearchfile] + - [0x32E80, lib, libultra_rom, pimgr] + - [0x33070, lib, libultra_rom, piacs] + - [0x33130, pad] + - [0x33140, lib, libultra_rom, devmgr] + - [0x335D0, lib, libultra_rom, pirawdma] + - [0x336B0, lib, libultra_rom, seteventmesg] + - [0x33720, lib, libultra_rom, sqrtf] + - [0x33730, lib, libultra_rom, afterprenmi] + - [0x33750, lib, libultra_rom, contquery] + - [0x33800, lib, libultra_rom, xprintf] + - [0x344C0, lib, libultra_rom, epidma] + - [0x345A0, lib, libultra_rom, leodiskinit] + - [0x34640, lib, libultra_rom, string] + - [0x346E0, lib, libultra_rom, createmesgqueue] + - [0x34710, lib, libultra_rom, invalicache] + - [0x34790, lib, libultra_rom, invaldcache] + - [0x34840, lib, libultra_rom, conteeplongwrite] + - [0x34930, lib, libultra_rom, sp] + - [0x34960, lib, libultra_rom, si] + - [0x34990, lib, libultra_rom, jammesg] + - [0x34AE0, lib, libultra_rom, setthreadpri] + - [0x34BD0, lib, libultra_rom, getthreadpri] + - [0x34BE0, lib, libultra_rom, viswapbuf] + - [0x34C30, lib, libultra_rom, mtxcatf] + - [0x34E40, lib, libultra_rom, epirawdma] + - [0x35070, lib, libultra_rom, sptaskyielded] + - [0x350F0, lib, libultra_rom, bcmp] + - [0x35210, lib, libultra_rom, gettime] + - [0x352A0, lib, libultra_rom, timerintr] + - [0x356A0, lib, libultra_rom, setglobalintmask] + - [0x356F0, lib, libultra_rom, aisetfreq] + - [0x35850, lib, libultra_rom, normalize] + - [0x358E0, lib, libultra_rom, setcompare] + - [0x358F0, lib, libultra_rom, getactivequeue] + - [0x35900, lib, libultra_rom, bcopy] + - [0x35C10, lib, libultra_rom, copy] # todo: memcpy? + - [0x35C90, lib, libultra_rom, resetglobalintmask] + - [0x35CF0, lib, libultra_rom, pfsdeletefile] + - [0x35F60, lib, libultra_rom, interrupt] + - [0x35FA0, lib, libultra_rom, vi] + - [0x360E0, lib, libultra_rom, viswapcontext] + - [0x363E0, lib, libultra_rom, pigetcmdq] + - [0x36410, lib, libultra_rom, cosf] + - [0x36580, lib, libultra_rom, settime] + - [0x365B0, lib, libultra_rom, visetevent] + - [0x36620, lib, libultra_rom, cartrominit] + - [0x36720, asm, main/code_36720] + - [0x368A0, lib, libultra_rom, pfsselectbank] + - [0x36920, lib, libultra_rom, setfpccsr] + - [0x36930, lib, libultra_rom, pfsinitpak] + - [0x36B20, lib, libultra_rom, pfsgetstatus] + - [0x36D50, lib, libultra_rom, pfschecker] + - [0x376F0, lib, libultra_rom, pfsisplug] + - [0x37A30, lib, libultra_rom, epirawread] + - [0x37BD0, lib, libultra_rom, maptlbrdb] + - [0x37C30, lib, libultra_rom, yieldthread] + - [0x37C80, lib, libultra_rom, cents2ratio] + - [0x37CD0, lib, libultra_rom, contramwrite] + - [0x37F20, lib, libultra_rom, contramread] + - [0x38150, lib, libultra_rom, crc] + - [0x382C0, lib, libultra_rom, epirawwrite] + - [0x38450, lib, libultra_rom, settimer] + - [0x38530, lib, libultra_rom, xldtob] + - [0x38FF0, pad] + - [0x39000, lib, libultra_rom, ldiv] + - [0x39190, lib, libultra_rom, xlitob] + - [0x39430, lib, libultra_rom, sirawwrite] + - [0x39480, lib, libultra_rom, dpsetnextbuf] + - [0x39530, lib, libultra_rom, dp] + - [0x39560, lib, libultra_rom, spsetstat] + - [0x39570, lib, libultra_rom, spgetstat] + - [0x39580, lib, libultra_rom, vimgr] + - [0x39890, lib, libultra_rom, vigetcurrcontext] + - [0x398A0, lib, libultra_rom, writebackdcacheall] + - [0x398D0, lib, libultra_rom, startthread] + - [0x39A20, lib, libultra_rom, visetyscale] + - [0x39A80, lib, libultra_rom, aisetnextbuf] + - [0x39B30, lib, libultra_rom, ai] + - [0x39B60, lib, libultra_rom, conteepread] + - [0x39DB0, lib, libultra_rom, vigetcurrframebuf] + - [0x39DF0, lib, libultra_rom, spsetpc] + - [0x39E30, asm, main/n_aspMain] + - [0x3AA90, data, main/gspF3DEX2_fifo] + - [0x3BE20, data, main/gspL3DEX2_fifo] + - [0x3C3B0, data, main/gspS2DEX2_fifo] + - [0x3E870, .data, main/main] + - [0x3E8A0, data, mainseg.2] + - [0x3EA50, .data, main/object_manager] + - [0x3EB10, data, mainseg.2.0] + - [0x3EB20, .data, main/math] + - [0x3EF30, data, mainseg.2.1] + - [0x40750, lib, libultra_rom, thread, .data] + - [0x40750, lib, libultra_rom, siacs, .data] + - [0x40750, lib, libultra_rom, controller, .data] + - [0x40790, lib, libultra_rom, initialize, .data] + - [0x407B0, lib, libultra_rom, contpfs, .data] + - [0x407C0, lib, libultra_rom, pimgr, .data] + - [0x407F0, lib, libultra_rom, piacs, .data] + - [0x40800, lib, libultra_rom, xprintf, .data] + - [0x40850, data, mainseg.4] + - [0x40850, lib, libultra_rom, timerintr, .data] + - [0x40860, data, viModeNtscLan1MpalLan1] + - [0x40900, lib, libultra_rom, vi, .data] + - [0x40970, data, vimodes] + - [0x40A10, lib, libultra_rom, contramread, .data] + - [0x40A20, lib, libultra_rom, xlitob, .data] + - [0x40A50, lib, libultra_rom, vimgr, .data] + - [0x40A70, lib, libultra_rom, aisetnextbuf, .data] + - [0x40A80, .rodata, main/main] + - [0x40AA0, rodata, mainseg] + - [0x40B30, .rodata, main/contpad] + - [0x40B90, rodata, mainseg.00] + - [0x40E10, .rodata, main/memory_layer] + - [0x40E30, .rodata, main/object_manager] + - [0x41270, .rodata, main/object_helpers] + - [0x412A0, rodata, mainseg.0] + - [0x41820, .rodata, main/math] + - [0x41870, rodata, mainseg.0.1] + - [0x418E0, .rodata, main/audio] + - [0x41910, rodata, mainseg.1] + - [0x423F0, rodata, mainseg.2] + - [0x42630, lib, libultra_rom, setintmask, .rodata] + - [0x426B0, lib, libultra_rom, sinf, .rodata] + - [0x42700, rodata, main/interruptVecs] + - [0x42750, lib, libultra_rom, devmgr, .rodata] + - [0x42770, lib, libultra_rom, xprintf, .rodata] + - [0x42870, lib, libultra_rom, cosf, .rodata] + - [0x428C0, lib, libultra_rom, libm_vals, .rodata] + - [0x428D0, lib, libultra_rom, cents2ratio, .rodata] + - [0x428E0, lib, libultra_rom, xldtob, .rodata] + - [0x42940, rodata, main/n_aspMain] + - [0x42BF0, rodata, main/gspF3DEX2_fifo] + - [0x43010, rodata, main/gspL3DEX2_fifo] + - [0x43400, rodata, main/gspS2DEX2_fifo] + - [0x43790] + - {type: .bss, vram: 0x80042B90, name: main/main} + - {type: bss, vram: 0x80048B80, name: mainseg} + - {type: .bss, vram: 0x80048DA0, name: main/contpad} + - {type: bss, vram: 0x800492B0, name: mainseg.1} + - {type: .bss, vram: 0x8004A540, name: main/object_manager} + - {type: bss, vram: 0x8004AA90, name: mainseg.2} + - {type: lib, vram: 0x80097950, name: libultra_rom, object: sptask, section: .bss} + - {type: lib, vram: 0x80097990, name: libultra_rom, object: leointerrupt, section: .bss} + - {type: lib, vram: 0x80098990, name: libultra_rom, object: motor, section: .bss} + - {type: bss, vram: 0x80098A90, name: mainseg.2.2} + - {type: lib, vram: 0x80098d00, name: libultra_rom, object: contpfs, section: .bss} + - {type: bss, vram: 0x80098e00, name: mainseg.3} + - {type: lib, vram: 0x80098EF0, name: libultra_rom, object: pimgr, section: .bss} + - {type: lib, vram: 0x8009A0C0, name: libultra_rom, object: piacs, section: .bss} + - {type: lib, vram: 0x8009A0E0, name: libultra_rom, object: seteventmesg, section: .bss} + - {type: lib, vram: 0x8009A160, name: libultra_rom, object: leodiskinit, section: .bss} + - {type: lib, vram: 0x8009A1E0, name: libultra_rom, object: timerintr, section: .bss} + - {type: lib, vram: 0x8009A220, name: libultra_rom, object: cartrominit, section: .bss} + - {type: lib, vram: 0x8009A2A0, name: libultra_rom, object: pfsisplug, section: .bss} + - {type: lib, vram: 0x8009A2E0, name: libultra_rom, object: vimgr, section: .bss} + - {type: lib, vram: 0x8009B500, name: libultra_rom, object: conteepread, section: .bss} + + - name: ovl1 + type: code + overlay: yes + start: 0x0043790 + vram: 0x8009B540 + bss_size: 0x1f7e0 + subsegments: + - [0x43790, pad] + - [0x437A0, c, ovl1/ovl1] + - [0x4AB10, c, ovl1/ovl1_1] + - [0x4C4C0, c, ovl1/ovl1_1_2] + - [0x4EE10, c, ovl1/ovl1_2] + - [0x4F700, c, ovl1/ovl1_2_2] # TODO: reassess split location + - [0x50510, c, ovl1/ovl1_3] + - [0x536E0, c, ovl1/ovl1_4] + - [0x538D0, c, ovl1/ovl1_5] + - [0x56340, c, ovl1/ovl1_6] + - [0x56F10, c, ovl1/ovl1_7] + - [0x5B840, c, ovl1/ovl1_8] + - [0x60950, c, ovl1/save_file] + - [0x629F0, c, ovl1/ovl1_10] + - [0x637D0, c, ovl1/ovl1_11] + - [0x63DF0, c, ovl1/ovl1_12] + - [0x64230, c, ovl1/ovl1_13] + - [0x66630, data, ovl1/ovl1] + - [0x7D8B0, .rodata, ovl1/ovl1] + - [0x7DCC0, .rodata, ovl1/ovl1_1] + - [0x7DE80, .rodata, ovl1/ovl1_1_2] + - [0x7DEC0, .rodata, ovl1/ovl1_2] + - [0x7DF10, .rodata, ovl1/ovl1_2_2] + - [0x7DFB0, .rodata, ovl1/ovl1_3] + - [0x7E050, rodata, ovl1/level_names] + - [0x7E8D0, .rodata, ovl1/ovl1_5] + - [0x7E910, .rodata, ovl1/ovl1_6] + - [0x7E950, .rodata, ovl1/ovl1_7] + - [0x7EA50, .rodata, ovl1/ovl1_8] + - [0x7EB30, .rodata, ovl1/ovl1_10] + - [0x7EB90, .rodata, ovl1/ovl1_11] + - [0x7EBD0, .rodata, ovl1/ovl1_12] + - [0x7ec10] + - {type: bss, vram: 0x800d69c0, name: ovl1/ovl1} + + - name: ovl2 + type: code + overlay: yes + start: 0x07EC10 + vram: 0x800F61A0 + bss_size: 0x5a20 + subsegments: + - [0x7EC10, c, ovl2/ovl2] + - [0x7F6B0, c, ovl2/ovl2_2] + - [0x81310, c, ovl2/ovl2_3] + - [0x85DA0, c, ovl2/ovl2_4] + - [0x864B0, c, ovl2/ovl2_5] + - [0x88050, c, ovl2/ovl2_6] + - [0x89E70, c, ovl2/ovl2_7] + - [0x97020, c, ovl2/ovl2_8] + - [0x98BC0, c, ovl2/ovl2_9] + - [0x9A980, c, ovl2/ovl2_10] + - [0xA4480, c, ovl2/ovl2_11] + - [0xAC900, data, ovl2/ovl2] + - [0xB1150, .rodata, ovl2/ovl2] + - [0xB1180, .rodata, ovl2/ovl2_2] + - [0xB1210, .rodata, ovl2/ovl2_3] + - [0xB1300, .rodata, ovl2/ovl2_4] + - [0xB1350, .rodata, ovl2/ovl2_5] + - [0xB1420, .rodata, ovl2/ovl2_6] + - [0xB14C0, .rodata, ovl2/ovl2_8] + - [0xB1560, .rodata, ovl2/ovl2_9] + - [0xB1740, .rodata, ovl2/ovl2_10] + - [0xB17E0, .rodata, ovl2/ovl2_11] + - [0x0B1B40] + - {type: bss, vram: 0x801290d0, name: ovl2/ovl2} + + - name: ovl3 + type: code + symbol_name_format : $VRAM_ovl3 + overlay: yes + start: 0xB1B40 + vram: 0x80151100 + exclusive_ram_id: players + bss_size: 0xc80 + subsegments: + - [0xB1B40, asm, ovl3/ovl3] + - [0xB2AB0, asm, ovl3/ovl3_1] + - [0xB6A90, asm, ovl3/plydemo] + - [0xBB6D0, asm, ovl3/plyshot] + - [0xC9E70, asm, ovl3/ovl3_4] + - [0xCC9A0, asm, ovl3/kirby] + - [0xDD9A0, asm, ovl3/ovl3_6] # TODO: reassess split + - [0xF0D50, data, ovl3/ovl3] + - [0xF7810, rodata, ovl3/ovl3] + - [0xF7850, rodata, ovl3/ovl3_1] + - [0xF7920, rodata, ovl3/plydemo] + - [0xF7A30, rodata] + - [0xF7C30, rodata, ovl3/ovl3_4] + - [0xF7D10, rodata] + - [0xF8630] + - {type: bss, vram: 0x80197bf0, name: ovl3/ovl3} + + - name: ovl4 + folder: ovl4 + symbol_name_format : $VRAM_ovl4 + type: code + overlay: yes + start: 0x0F8630 + vram: 0x80151100 + exclusive_ram_id: players + bss_size: 0xb0 + subsegments: + - [0xF8630, asm, ovl4/ovl4_1] + - [0xF9310, asm, ovl4/ovl4_2] + - [0xFC8F0, asm, ovl4/ovl4_3] + - [0xFF650, asm, ovl4/ovl4_4] + - [0x101030, asm, ovl4/ovl4_5] + - [0x1014F0, data, ovl4/ovl4] + - [0x1039F0, rodata, ovl4/ovl4_1] + - [0x103A40, rodata, ovl4/ovl4_2] + - [0x103AA0, rodata, ovl4/ovl4_3] + - [0x103B50, rodata, ovl4/ovl4_4] + - [0x103BA0, rodata, ovl4/ovl4_5] + - [0x103BB0] + - {type: bss, vram: 0x8015c680, name: ovl4/ovl4} + + - name: ovl5 + type: code + symbol_name_format : $VRAM_ovl5 + overlay: yes + start: 0x103BB0 + vram: 0x8015C740 + exclusive_ram_id: self_contained + bss_size: 0xe40 + subsegments: + - [0x103BB0, asm, ovl5/ovl5_1] + - [0x104170, asm, ovl5/ovl5_2] + - [0x10C8B0, asm, ovl5/ovl5_3] + - [0x10DD50, asm, ovl5/ovl5_4] + - [0x116FF0, asm, ovl5/ovl5_5] + - [0x11EF70, asm, ovl5/ovl5_6] + - [0x121270, asm, ovl5/ovl5_7] + - [0x1255F0, asm, ovl5/ovl5_8] + - [0x1261D0, asm, ovl5/ovl5_9] + - [0x126AD0, asm, ovl5/ovl5_10] + - [0x1277D0, c, ovl5/ovl5_11] + - [0x1297D0, asm, ovl5/ovl5_12] + - [0x12A510, asm, ovl5/ovl5_13] + - [0x12D410, data, ovl5/ovl5] + - [0x1348C0, rodata, ovl5/ovl5_1] + - [0x1348F0, rodata, ovl5/ovl5_2] + - [0x134A60, rodata, ovl5/ovl5_3] + - [0x134B30, rodata, ovl5/ovl5_4] + - [0x134BF0, rodata, ovl5/ovl5_5] + - [0x135120, rodata, ovl5/ovl5_6] + - [0x135160, rodata, ovl5/ovl5_7] + - [0x135200, rodata, ovl5/ovl5_8] + - [0x135220, .rodata, ovl5/ovl5_11] + - [0x135270, rodata, ovl5/ovl5_13] + - [0x135490] + - {type: bss, vram: 0x8018e020, name: ovl5/ovl5} + + - name: ovl6 + type: code + symbol_name_format : $VRAM_ovl6 + overlay: yes + start: 0x135490 + vram: 0x80151100 + exclusive_ram_id: players + bss_size: 0x270 + subsegments: + - [0x135490, c, ovl6/ovl6] + - [0x139150, data, ovl6/ovl6] + - [0x13E7A0, .rodata, ovl6/ovl6] + - [0x13E8F0] + - {type: bss, vram: 0x8015A560, name: ovl6/ovl6} + + - name: ovl7 + type: code + symbol_name_format : $VRAM_ovl7 + overlay: yes + start: 0x13E8F0 + vram: 0x80198880 + exclusive_ram_id: ovl7 + bss_size: 0x2590 + subalign: 4 + subsegments: + - [0x13E8F0, asm, ovl7/ovl7_1] + - [0x145420, asm, ovl7/ovl7_2] + - [0x146DC0, asm, ovl7/ovl7_3] + - [0x149EF0, asm, ovl7/ovl7_4] + - [0x14D070, asm, ovl7/ovl7_5] + - [0x152A40, asm, ovl7/ovl7_5_2] + - [0x153040, asm, ovl7/ovl7_6] + - [0x154A90, asm, ovl7/ovl7_7] + - [0x1565C0, asm, ovl7/ovl7_8] + - [0x157ED0, asm, ovl7/ovl7_9] + - [0x1596E0, asm, ovl7/ovl7_10] + - [0x15ADC0, asm, ovl7/ovl7_11] + - [0x15DA20, asm, ovl7/ovl7_12] + - [0x15EF90, asm, ovl7/ovl7_13] + - [0x161A40, asm, ovl7/ovl7_14] + - [0x161EC0, asm, ovl7/yakulib] + - [0x163580, asm, ovl7/ovl7_16] + - [0x165290, asm, ovl7/ovl7_17] + - [0x168840, data, ovl7/ovl7] + - [0x173AE0, rodata, ovl7/ovl7_1] + - [0x173F10, rodata, ovl7/ovl7_2] + - [0x173FD0, rodata, ovl7/ovl7_3] + - [0x174020, rodata, ovl7/ovl7_4] + - [0x174090, rodata, ovl7/ovl7_5] + - [0x1741D0, rodata, ovl7/ovl7_5_2] + - [0x174210, rodata, ovl7/ovl7_6] + - [0x174290, rodata, ovl7/ovl7_7] + - [0x1742F0, rodata, ovl7/ovl7_8] + - [0x174330, rodata, ovl7/ovl7_9] + - [0x174380, rodata, ovl7/filesplit] + - [0x1743B0, rodata, ovl7/ovl7_11] + - [0x1743D0, rodata, ovl7/ovl7_12] + - [0x1743F0, rodata, ovl7/ovl7_13] + - [0x174500, rodata, ovl7/ovl7_14] + - [0x174510, rodata, ovl7/yakulib] + - [0x174620, rodata, ovl7/ovl7_16] + - [0x174650, rodata, ovl7/ovl7_17] + - [0x174740] + - {type: bss, vram: 0x801CE6D0, name: ovl7/ovl7} + + # ovl8 and ovl9 share ram + - name: ovl8 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl8 + start: 0x174740 + vram: 0x801D0C60 + exclusive_ram_id: self_contained + bss_size: 0x10 + subsegments: + - [0x174740, asm, ovl8/ovl8] + - [0x175B20, asm, ovl8/eneeff] + - [0x176670, asm, ovl8/ovl8_3] + - [0x178090, asm, ovl8/ovl8_4] + - [0x17B360, data, ovl8/ovl8] + - [0x17EB40, rodata, ovl8/ovl8] + - [0x17EB60, rodata, ovl8/eneeff] + - [0x17EC20, rodata, ovl8/ovl8_3] + - [0x17EC60, rodata, ovl8/ovl8_4] + - [0x17ECB0] + - {type: bss, vram: 0x801DB1D0, name: ovl8/ovl8} + + - name: ovl9 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl9 + start: 0x17ECB0 + vram: 0x801D0C60 + exclusive_ram_id: self_contained + bss_size: 0x10 + subsegments: + - [0x17ECB0, asm, ovl9/ovl9_1] + - [0x186E10, asm, ovl9/ovl9_2] + - [0x18A910, asm, ovl9/ovl9_3] + - [0x18EAF0, asm, ovl9/ovl9_4] + - [0x193770, asm, ovl9/ovl9_5] + - [0x198C10, asm, ovl9/ovl9_6] + - [0x19E0B0, asm, ovl9/ovl9_7] + - [0x1A0A20, asm, ovl9/ovl9_7_2] + - [0x1A6780, asm, ovl9/ovl9_8] + - [0x1A9AF0, asm, ovl9/ovl9_9] + - [0x1AFE30, asm, ovl9/ovl9_10] + - [0x1B5310, asm, ovl9/ovl9_11] + - [0x1B7080, asm, ovl9/ovl9_12] + - [0x1B7770, asm, ovl9/ovl9_13] + - [0x1BDFD0, asm, ovl9/ovl9_14] + - [0x1C2A50, asm, ovl9/ovl9_14_2] + - [0x1C2F10, asm, ovl9/ovl9_15] + - [0x1C6810, asm, ovl9/ovl9_16] + - [0x1C7A30, asm, ovl9/ovl9_17] + - [0x1C81F0, asm, ovl9/ovl9_18] + - [0x1C9B00, data, ovl9/ovl9] + - [0x1CAEB0, rodata, ovl9/ovl9_1] + - [0x1CAF80, rodata, ovl9/ovl9_2] + - [0x1CAFB0, rodata, ovl9/ovl9_3] + - [0x1CAFF0, rodata, ovl9/ovl9_4] + - [0x1CB080, rodata, ovl9/ovl9_5] + - [0x1CB210, rodata, ovl9/ovl9_6] + - [0x1CB900, rodata, ovl9/ovl9_7] + - [0x1CB940, rodata, ovl9/ovl9_7_2] + - [0x1CB990, rodata, ovl9/ovl9_8] + - [0x1CB9E0, rodata, ovl9/ovl9_9] + - [0x1CBA70, rodata, ovl9/ovl9_10] + - [0x1CBB10, rodata, ovl9/ovl9_11] + - [0x1CBB40, rodata, ovl9/ovl9_13] + - [0x1CBD00, rodata, ovl9/ovl9_14] + - [0x1CBE20, rodata, ovl9/ovl9_14_2] + - [0x1CBE40, rodata, ovl9/ovl9_15] + - [0x1CBED0, rodata, ovl9/ovl9_16] + - [0x1CBF00, rodata, ovl9/ovl9_17] + - [0x1CBF30, rodata, ovl9/ovl9_18] + - [0x1CBF50] + - {type: bss, vram: 0x8021DF00, name: ovl9/ovl9} + + # ovl10 - ovl17 share ram + - name: ovl10 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl10 + start: 0x1CBF50 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x80 + subsegments: + - [0x1CBF50, c, ovl10/ovl10] + - [0x1CC970, asm, ovl10/ovl10_2] + - [0x1E0160, asm, ovl10/ovl10_3] + - [0x1E0500, asm, ovl10/ovl10_4] + - [0x1E4160, data, ovl10/ovl10] + - [0x1E56F0, .rodata, ovl10/ovl10] + - [0x1E5710, rodata, ovl10/ovl10_1] + - [0x1E57B0, rodata, ovl10/ovl10_2] + - [0x1E58F0, rodata, ovl10/ovl10_3] + - [0x1E5900, rodata, ovl10/ovl10_4] + - [0x1E5AA0] + - {type: bss, vram: 0x801f4d30, name: ovl10/ovl10} + + - name: ovl11 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl11 + start: 0x1E5AA0 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x30 + subsegments: + - [0x1E5AA0, asm, ovl11/ovl11] + - [0x1EB3C0, data, ovl11/ovl11] + - [0x1EB520] + - {type: bss, vram: 0x801E0C60, name: ovl11/ovl11} + + - name: ovl12 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl12 + start: 0x1EB520 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x10 + subsegments: + - [0x1EB520, asm, ovl12/code_1EB520] + - [0x1F18D0, asm, ovl12/code_1F18D0] + - [0x1F2DE0, data, ovl12/ovl12] + - [0x1F3160] + - {type: bss, vram: 0x801e2e20, name: ovl12/ovl12} + + - name: ovl13 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl13 + start: 0x1F3160 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x10 + subsegments: + - [0x1F3160, asm, ovl13/code_1F3160] + - [0x1FBD40, asm, ovl13/code_1FBD40] + - [0x1FC420, asm, ovl13/code_1FC420] + - [0x1FDA00, data, ovl13/ovl13] + - [0x1FDDD0] + - {type: bss, vram: 0x801e5e50, name: ovl13/ovl13} + + - name: ovl14 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl14 + start: 0x1FDDD0 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x10 + subsegments: + - [0x1FDDD0, asm, ovl14/ovl14] + - [0x202980, asm, ovl14/ovl14_2] + - [0x205A90, data, ovl14/ovl14] + - [0x205d40] + - {type: bss, vram: 0x801e3150, name: ovl14/ovl14} + + - name: ovl15 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl15 + start: 0x205D40 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x10 + subsegments: + - [0x205D40, asm, ovl15/ovl15] + - [0x210970, asm, ovl15/ovl15_2] + - [0x210FB0, data, ovl15/ovl15] + - [0x211490] + - {type: bss, vram: 0x801E6930, name: ovl15/ovl15} + + - name: ovl16 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl16 + start: 0x211490 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x110 + subsegments: + - [0x211490, asm, ovl16/ovl16] + - [0x225770, data, ovl16/ovl16] + - [0x2263D0] + - {type: bss, vram: 0x801F0120, name: ovl16/ovl16} + + - name: ovl17 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl17 + start: 0x2263D0 + vram: 0x801DB1E0 + exclusive_ram_id: self_contained + bss_size: 0x70 + subsegments: + - [0x2263D0, asm, ovl17/ovl17] + - [0x228AE0, asm, ovl17/ovl17_2] + - [0x22BEF0, asm, ovl17/ovl17_3] + - [0x230050, data, ovl17/ovl17] + - [0x2308C0] + - {type: bss, vram: 0x801e56d0, name: ovl17/ovl17} + + # ovl18 and ovl19 share ram + - name: ovl18 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl18 + start: 0x2308C0 + vram: 0x8021DF20 + exclusive_ram_id: ovl_18_19 + bss_size: 0xB0 + subsegments: + - [0x2308C0, asm, ovl18/code_2308C0] + - [0x232B60, asm, ovl18/code_232B60] + - [0x234830, asm, ovl18/code_234830] + - [0x234BC0, asm, ovl18/code_234BC0] + - [0x236CC0, asm, ovl18/code_236CC0] + - [0x236F20, asm, ovl18/code_236F20] + - [0x2385A0, asm, ovl18/code_2385A0] + - [0x239080, asm, ovl18/code_239080] + - [0x239D80, data, ovl18/ovl18] + - [0x23E630] + - {type: bss, vram: 0x8022bc90, name: ovl18/ovl18} + + - name: ovl19 + type: code + overlay: yes + symbol_name_format : $VRAM_ovl19 + start: 0x23E630 + vram: 0x8021DF20 + exclusive_ram_id: ovl_18_19 + bss_size: 0xa0 + subsegments: + - [0x23E630, c, ovl19/helplib] + - [0x23F130, c, ovl19/helpeff] # either 23F130 or 23F150 + - [0x23F600, pad] + - [0x23F610, c, ovl19/helper] + - [0x243910, c, ovl19/ovl19_2] + - [0x249800, pad] + - [0x249810, c, ovl19/ovl19_3] + - [0x24ED40, c, ovl19/ovl19_4] + - [0x24F750, data, ovl19/helplib] + - [0x24F780, .data, ovl19/helpeff] + - [0x24F790, data, ovl19/helper] + - [0x24F880, data, ovl19/ovl19_2] + - [0x24FCC0, data, ovl19/ovl19_3] + - [0x24FDB0, .rodata, ovl19/helplib] + - [0x24FDF0, .rodata, ovl19/helpeff] + - [0x24FE30, .rodata, ovl19/helper] + - [0x24FEF0, .rodata, ovl19/ovl19_2] + - [0x250080, .rodata, ovl19/ovl19_3] + - [0x2501A0, .rodata, ovl19/ovl19_4] + - [0x2501C0] + - {type: bss, vram: 0x8022fab0, name: ovl19/ovl19} + + - name: ovl20 + type: code + folder: ovl20 + overlay: yes + start: 0x2501C0 + vram: 0x80300000 + exclusive_ram_id: ovl20 + bss_size: 0xd0 + extract: false + subsegments: + - [0x2501C0, c, ovl20/tamper_check] + - [0x2502A0, .data, ovl20/tamper_check] + - [0x250320] + - {type: .bss, vram: 0x80300160, name: ovl20/tamper_check} + + - [0x250320, bin, sound/sound_250320] + - [0x2A8CB0, bin, sound/ctl_2A8CB0] + - [0x2B1510, bin, sound/sound_2B1510] + - [0x3E1400, bin, sound/ctl_3E1400] + - [0x3E6BC0, bin, sound/sound_3E6BC0] + - [0x49F590, bin, sound/sound_49F590] + - [0x4A0340, bin, sound/sound_4A0340] + - [0x4A3B60, bin, sound/sound_4A3B60] + - { start: 0x4aa8f0, type: bin, name: game_assets, extract: False} + - [0x1e8bb50, bin, pad] + - [0x2000000] diff --git a/libreultra b/libreultra index abe8ce1c0..3fc312315 160000 --- a/libreultra +++ b/libreultra @@ -1 +1 @@ -Subproject commit abe8ce1c0a7f7a918ee3e62559d15a1fe7f6897c +Subproject commit 3fc312315626fe182a37e697ddb34838ff244f0a diff --git a/qbuild.sh b/qbuild.sh new file mode 100755 index 000000000..a6d883910 --- /dev/null +++ b/qbuild.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +splat split kirby64.yaml +make -j12 diff --git a/ramvals.txt b/ramvals.txt new file mode 100644 index 000000000..170824ec9 --- /dev/null +++ b/ramvals.txt @@ -0,0 +1,4 @@ +osTvType = 0x80000300; +osRomBase = 0x80000308; +osResetType = 0x8000030C; +osAppNMIBuffer = 0x8000031C; diff --git a/rebuild.sh b/rebuild.sh new file mode 100755 index 000000000..2863ff8af --- /dev/null +++ b/rebuild.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -e + +rm -rf asm +rm -rf src/main/code_* +rm -rf src/ovl1/code_* +rm -rf src/ovl2/code_* +rm -rf src/ovl3/code_* +rm -rf src/ovl4/code_* +rm -rf src/ovl5/code_* +rm -rf src/ovl6/code_* +rm -rf src/ovl7/code_* +rm -rf src/ovl8/code_* +rm -rf src/ovl9/code_* +rm -rf src/ovl10/code_* +rm -rf src/ovl11/code_* +rm -rf src/ovl12/code_* +rm -rf src/ovl13/code_* +rm -rf src/ovl14/code_* +rm -rf src/ovl15/code_* +rm -rf src/ovl16/code_* +rm -rf src/ovl17/code_* +rm -rf src/ovl18/code_* +rm -rf src/ovl19/code_* +splat split kirby64.yaml +cp entry.s asm/ +make -j16 diff --git a/splat b/splat new file mode 160000 index 000000000..bdc8ce738 --- /dev/null +++ b/splat @@ -0,0 +1 @@ +Subproject commit bdc8ce7384713036917d73f1ca55e2946452a1aa diff --git a/src.old/1000.c b/src.old/1000.c new file mode 100644 index 000000000..79b3d9832 --- /dev/null +++ b/src.old/1000.c @@ -0,0 +1,1761 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000046C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000478.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800004B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800004E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800005D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800007C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000870.s") + +void func_80000900(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800009E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000C54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000CE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000DC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000E4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000E9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80000F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80001774.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000189C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80001924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800019BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80001E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80001FAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002014.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000206C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800022DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000256C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002AF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002B70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002B7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002B88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002BA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002BD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002D8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002E48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002EBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002F4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002F88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80002FC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80003788.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800037A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800037F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80003838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000385C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80003DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80003ECC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80003FDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800041A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004250.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800045C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004624.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000464C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800046A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800046D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800046FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800047B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800047D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800047F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004810.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800049BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004A3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004B50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004C5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004CD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004D68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004D98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004DC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80004E98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800051E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005350.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005378.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800053A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800053B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800053D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005430.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000548C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005530.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000561C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800056DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005734.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800057AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005910.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000597C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800059F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005A98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005C64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005CC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005DE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80005F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000630C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006628.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800067B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800067C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800067E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006854.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800068E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006E94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80006F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000708C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800075DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800075F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007620.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007694.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800076D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000783C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800078A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800078F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007944.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800079E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800079FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007A74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007ADC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007B38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007BA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007C9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007CE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007CF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007FB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80007FE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000803C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008068.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800080C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008198.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800081C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008210.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008280.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000828C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800082D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000831C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000835C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800083A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800083CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800084A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008528.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008590.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800085F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008664.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800086EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008754.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800087AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800087D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008840.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008850.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008860.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000888C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800088E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008910.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008994.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800089EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008A18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008B94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008DA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80008EC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009628.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800097E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000984C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800098AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009918.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009978.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800099E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009B5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009C38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009CE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009D5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009DF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80009F7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A02C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A0C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A1C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A200.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A24C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A29C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A350.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A4D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A508.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A544.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A580.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A5FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A684.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A6D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A730.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A764.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A7A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A7DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A904.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000A9C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AA04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AA38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AA6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AAA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AAE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000ABAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AC3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AD88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000AE84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B3E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B448.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B4D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B57C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B63C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B65C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B6B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B6BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B78C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B7C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B7D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B7F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B8C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B950.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000B9FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BA2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BA5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BA8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BAEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BBE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BC34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BCA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BD3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BDF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BE90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BEF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BF3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000BFA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C044.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C10C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C17C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C2C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000C3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000CE18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000CECC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000CF84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000D030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000D0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000D35C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000DE30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000E324.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000E3F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000E434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000E474.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000E4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000E554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000E818.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000EC98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F054.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F448.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F4B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F4E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F6EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F754.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000F980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000FB10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000FCE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000FD78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000FE2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8000FE64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001074C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80010988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800109B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80010B0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80010B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80010B44.s") + +void func_80010B50(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80010B58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80010D28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80010EF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001103C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80011180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80013300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800140FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800141D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800141F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001421C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014264.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800143A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800143D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014768.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001479C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800147C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014B04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014B4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014C78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014DF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80014FA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001503C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80015368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800156C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001585C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001588C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80015BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80015BFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80015DC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80015F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800162D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80016634.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001663C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80016940.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80016DE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800171E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017B6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017DB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80017FEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001806C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800180BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800180E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001810C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018170.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800183BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800185B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800185E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001870C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001880C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018890.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018920.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018948.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018970.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800189A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800189B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800189E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018A94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018AAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018AFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018BF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018C5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018D3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018D7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018DB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018DEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018E24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018E70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018EA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018EEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018F34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80018FBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019090.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800191CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800191F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800193C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800195D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800196D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800197EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800198C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019A30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019C60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019E5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80019EB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001A13C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001A1B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001A488.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001A504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001A8EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001A964.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001AD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001AE10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001AFA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B28C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B454.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B4AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B5E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B6E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001B9B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BA04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BA60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BAC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BB30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BBAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BCE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BF88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001BFDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C2E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C73C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C874.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C8B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001C9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CA40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CB0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CB4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CB9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CBF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CCBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CCFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CD4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CDA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CE30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CE68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CEB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CF00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CF90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001CFC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D014.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D0B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D200.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D264.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D2DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D34C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D3D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D514.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D6A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D800.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001D934.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001DA48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001DB54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001DDE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001DF68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E104.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E344.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E3A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E3D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E450.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E490.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E5C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E660.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E6B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E724.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E7A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E8D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E9A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001E9EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001ECC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001F234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001F24C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001F2E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001F81C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8001FD64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020894.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800208A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800208D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020914.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020A20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020BB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020BE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020C70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020CC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020D58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020DAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020E0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020E5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020E8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020E9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020EA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020EB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020ECC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80020F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021444.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800215F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021668.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021764.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80021FA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002206C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022134.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800221BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022248.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800222C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800229CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022A38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022A58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022B88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022BC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022D98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80022E04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002309C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800231F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800232B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023384.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800233F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023464.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800234F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023884.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002397C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023990.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023A28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023AE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023C48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023CB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023D5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80023E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80024628.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80024680.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800246E4.s") + +void func_80024748(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80024750.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80025758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002581C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002587C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80025B74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80025C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80025DE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80025F50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80025F74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80025FA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800261B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026260.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002638C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002639C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800263F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002649C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026898.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026A10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026B2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80026FA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002714C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027520.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800275C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027610.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027670.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027D58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80027F38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80028080.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002810C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80028318.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800285F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002901C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800296C0.s") + +void func_80029834(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002983C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80029888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80029908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80029938.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800299AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800299F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80029D10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80029E38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A1C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A290.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A508.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A910.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002A998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002AA0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002AA70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002AAE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002ABD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002AD10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002AD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002AE74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002AF60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B03C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B0A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B158.s") + +void func_8002B20C(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B214.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B238.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B2E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B4B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B524.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B59C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B5E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B6A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B70C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002B810.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C044.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C68C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C80C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C990.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C9B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C9D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C9EC.s") + +void func_8002C9F4(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002C9FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CA48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CBCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CCEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CD60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CDA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CE20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CEC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CF00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CF40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002CFE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D070.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D0A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D0D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D120.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D1B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D250.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D2F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D440.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D500.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D6E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D8A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002D9BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DB4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DB90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DCA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DCCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DD44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DD70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DDAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DE08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DE38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DE98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DF34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002DF60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002E8B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002E950.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002EED0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002EF84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F040.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F1A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F2B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F410.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F4A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F4D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F710.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F810.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002F988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002FA34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002FBE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002FD30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002FDB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002FE40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002FF10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8002FFA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800300A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030330.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800303F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030410.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030450.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800304E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030590.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800305E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030650.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800306A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800306C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030B10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030C10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030C98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030CC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030D80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80030DF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031124.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031410.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800314D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800314E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031650.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800319A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031B04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031CB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80031D84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800320D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032280.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800323FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032470.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800324C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800329D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032AB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032B30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032B50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80032C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800338C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800339A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033A6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033A94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033AE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033B10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033B90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033D30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033D90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033FC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80033FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800340D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034470.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800344F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034610.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800346A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_8003472C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800348A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034918.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034AF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034C50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034CE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034CF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80034D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035090.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800350F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800352C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800353A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800354E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800357E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035810.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800359B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035A20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035D20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035D30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80035FF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800360B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036150.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036AF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036C90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80036FD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037080.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800370D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037620.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800376C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037850.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037930.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80037EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038500.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038590.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038880.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038930.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038960.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038970.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038B00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038C90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038CD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038F30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80038F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80039124.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800391B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_800391F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1000/func_80039230.s") diff --git a/src.old/11720.c b/src.old/11720.c new file mode 100644 index 000000000..c7e3d1dae --- /dev/null +++ b/src.old/11720.c @@ -0,0 +1,156 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80010B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80010B44.s") + +void func_80010B50(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80010B58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80010D28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80010EF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001103C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80011180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80013300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800140FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800141D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800141F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001421C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014264.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800143A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800143D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014768.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001479C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800147C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014B04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014B4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014C78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014DF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80014FA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001503C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80015368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800156C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001585C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001588C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80015BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80015BFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80015DC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80015F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800162D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80016634.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001663C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80016940.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80016DE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800171E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017B6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017DB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80017FEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001806C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800180BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800180E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001810C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018170.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800183BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800185B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800185E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001870C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_8001880C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018890.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018920.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018948.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018970.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800189A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800189B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_800189E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018A94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018AAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018AFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018BF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/11720/func_80018C5C.s") diff --git a/src.old/1500.c b/src.old/1500.c new file mode 100644 index 000000000..21d914961 --- /dev/null +++ b/src.old/1500.c @@ -0,0 +1,60 @@ +#include "common.h" + +void func_80000900(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_800009E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000C54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000CE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000DC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000E4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000E9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80000F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80001774.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_8000189C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80001924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_800019BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80001E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80001FAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80002014.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_8000206C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_800022DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_8000256C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80002598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80002AF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80002B70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80002B7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1500/func_80002B88.s") diff --git a/src.old/198A0.c b/src.old/198A0.c new file mode 100644 index 000000000..3a69f543c --- /dev/null +++ b/src.old/198A0.c @@ -0,0 +1,47 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018D3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018D7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018DB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018DEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018E24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018E70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018EA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018EEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018F34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80018FBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80019090.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_800191CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_800191F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80019380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_800193C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_800195D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80019648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_800196D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80019740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_800197EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_80019870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/198A0/func_800198C0.s") diff --git a/src.old/1A630.c b/src.old/1A630.c new file mode 100644 index 000000000..06b0759ed --- /dev/null +++ b/src.old/1A630.c @@ -0,0 +1,157 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_80019A30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_80019C60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_80019E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_80019E5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_80019EB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001A13C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001A1B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001A488.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001A504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001A8EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001A964.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001AD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001AE10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001AFA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B28C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B454.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B4AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B5E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B6E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001B9B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BA04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BA60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BAC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BB30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BBAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BCE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BF88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001BFDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C2E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C73C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C874.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C8B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001C9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CA40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CB0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CB4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CB9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CBF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CCBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CCFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CD4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CDA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CE30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CE68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CEB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CF00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CF90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001CFC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D014.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D0B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D200.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D264.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D2DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D34C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D3D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D514.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D6A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D800.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001D934.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001DA48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001DB54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001DDE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001DF68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001E000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001E104.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001E300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1A630/func_8001E344.s") diff --git a/src.old/1EFA0.c b/src.old/1EFA0.c new file mode 100644 index 000000000..7de0285c9 --- /dev/null +++ b/src.old/1EFA0.c @@ -0,0 +1,93 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E3A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E3D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E450.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E490.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E5C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E660.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E6B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E724.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E7A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E8D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E9A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001E9EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001ECC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001F234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001F24C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001F2E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001F81C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_8001FD64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020894.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_800208A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_800208D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020914.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020A20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020BB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020BE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020C70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020CC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020D58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020DAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020E0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020E5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020E8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020E9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020EA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020EB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/1EFA0/func_80020ECC.s") diff --git a/src.old/21B40.c b/src.old/21B40.c new file mode 100644 index 000000000..c2886c0b1 --- /dev/null +++ b/src.old/21B40.c @@ -0,0 +1,55 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80020F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021444.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_800215F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021668.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021764.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80021FA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_8002206C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022134.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_800221BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022248.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_800222C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_800229CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022A38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022A58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022B88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022BC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022D98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80022E04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_80023048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_8002309C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/21B40/func_800231F0.s") diff --git a/src.old/23EB0.c b/src.old/23EB0.c new file mode 100644 index 000000000..3d4460fca --- /dev/null +++ b/src.old/23EB0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/23EB0/func_800232B0.s") diff --git a/src.old/23F00.c b/src.old/23F00.c new file mode 100644 index 000000000..09aac037a --- /dev/null +++ b/src.old/23F00.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/23F00/func_80023300.s") diff --git a/src.old/23F60.c b/src.old/23F60.c new file mode 100644 index 000000000..65b0c401e --- /dev/null +++ b/src.old/23F60.c @@ -0,0 +1,157 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023384.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800233F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023464.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800234F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023884.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002397C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023990.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023A28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023AE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023C48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023CB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023D5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80023E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80024628.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80024680.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800246E4.s") + +void func_80024748(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80024750.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80025758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002581C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002587C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80025B74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80025C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80025DE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80025F50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80025F74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80025FA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800261B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026260.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002638C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002639C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800263F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002649C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026898.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026A10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026B2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80026FA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002714C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027520.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800275C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027610.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027670.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027D58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80027F38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80028080.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002810C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80028318.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800285F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002901C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800296C0.s") + +void func_80029834(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002983C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80029888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80029908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80029938.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800299AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_800299F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80029D10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_80029E38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002A138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002A178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002A1C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002A290.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002A4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/23F60/func_8002A508.s") diff --git a/src.old/2B510.c b/src.old/2B510.c new file mode 100644 index 000000000..0b03f6571 --- /dev/null +++ b/src.old/2B510.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2B510/func_8002A910.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2B510/func_8002A998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2B510/func_8002AA0C.s") diff --git a/src.old/2B670.c b/src.old/2B670.c new file mode 100644 index 000000000..582213e74 --- /dev/null +++ b/src.old/2B670.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2B670/func_8002AA70.s") diff --git a/src.old/2B6E0.c b/src.old/2B6E0.c new file mode 100644 index 000000000..20162fc7f --- /dev/null +++ b/src.old/2B6E0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2B6E0/func_8002AAE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2B6E0/func_8002ABD0.s") diff --git a/src.old/2B910.c b/src.old/2B910.c new file mode 100644 index 000000000..c46a1c811 --- /dev/null +++ b/src.old/2B910.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2B910/func_8002AD10.s") diff --git a/src.old/2B990.c b/src.old/2B990.c new file mode 100644 index 000000000..e56433b92 --- /dev/null +++ b/src.old/2B990.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2B990/func_8002AD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2B990/func_8002AE74.s") diff --git a/src.old/2BB60.c b/src.old/2BB60.c new file mode 100644 index 000000000..18dc87aa9 --- /dev/null +++ b/src.old/2BB60.c @@ -0,0 +1,44 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002AF60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B03C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B0A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B158.s") + +void func_8002B20C(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B214.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B238.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B2E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B4B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B524.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B59C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B5E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B6A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B70C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002B810.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002C044.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002C68C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002C790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2BB60/func_8002C80C.s") diff --git a/src.old/2D590.c b/src.old/2D590.c new file mode 100644 index 000000000..708164d17 --- /dev/null +++ b/src.old/2D590.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2D590/func_8002C990.s") diff --git a/src.old/2D5B0.c b/src.old/2D5B0.c new file mode 100644 index 000000000..f601255f4 --- /dev/null +++ b/src.old/2D5B0.c @@ -0,0 +1,18 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2D5B0/func_8002C9B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2D5B0/func_8002C9D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2D5B0/func_8002C9EC.s") + +void func_8002C9F4(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/2D5B0/func_8002C9FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2D5B0/func_8002CA48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2D5B0/func_8002CBCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2D5B0/func_8002CCEC.s") diff --git a/src.old/2D960.c b/src.old/2D960.c new file mode 100644 index 000000000..87e7a0f23 --- /dev/null +++ b/src.old/2D960.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2D960/func_8002CD60.s") diff --git a/src.old/2D9A0.c b/src.old/2D9A0.c new file mode 100644 index 000000000..41636d44d --- /dev/null +++ b/src.old/2D9A0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2D9A0/func_8002CDA0.s") diff --git a/src.old/2DA20.c b/src.old/2DA20.c new file mode 100644 index 000000000..af1c0eca8 --- /dev/null +++ b/src.old/2DA20.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DA20/func_8002CE20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2DA20/func_8002CEC0.s") diff --git a/src.old/2DB00.c b/src.old/2DB00.c new file mode 100644 index 000000000..83fc1661c --- /dev/null +++ b/src.old/2DB00.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DB00/func_8002CF00.s") diff --git a/src.old/2DB40.c b/src.old/2DB40.c new file mode 100644 index 000000000..0e7696249 --- /dev/null +++ b/src.old/2DB40.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DB40/func_8002CF40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2DB40/func_8002CFE4.s") diff --git a/src.old/2DC70.c b/src.old/2DC70.c new file mode 100644 index 000000000..a3b516188 --- /dev/null +++ b/src.old/2DC70.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DC70/func_8002D070.s") diff --git a/src.old/2DCA0.c b/src.old/2DCA0.c new file mode 100644 index 000000000..9ad910eb1 --- /dev/null +++ b/src.old/2DCA0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DCA0/func_8002D0A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2DCA0/func_8002D0D0.s") diff --git a/src.old/2DD20.c b/src.old/2DD20.c new file mode 100644 index 000000000..aee3e3a39 --- /dev/null +++ b/src.old/2DD20.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DD20/func_8002D120.s") diff --git a/src.old/2DD80.c b/src.old/2DD80.c new file mode 100644 index 000000000..88c582d19 --- /dev/null +++ b/src.old/2DD80.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DD80/func_8002D180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2DD80/func_8002D1B0.s") diff --git a/src.old/2DE50.c b/src.old/2DE50.c new file mode 100644 index 000000000..ce8b5711b --- /dev/null +++ b/src.old/2DE50.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DE50/func_8002D250.s") diff --git a/src.old/2DEF0.c b/src.old/2DEF0.c new file mode 100644 index 000000000..34bb4e722 --- /dev/null +++ b/src.old/2DEF0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2DEF0/func_8002D2F0.s") diff --git a/src.old/2E040.c b/src.old/2E040.c new file mode 100644 index 000000000..2054fe0f1 --- /dev/null +++ b/src.old/2E040.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2E040/func_8002D440.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E040/func_8002D500.s") diff --git a/src.old/2E240.c b/src.old/2E240.c new file mode 100644 index 000000000..346b72cbd --- /dev/null +++ b/src.old/2E240.c @@ -0,0 +1,11 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2E240/func_8002D640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E240/func_8002D6E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E240/func_8002D8A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E240/func_8002D9BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E240/func_8002DB4C.s") diff --git a/src.old/2E790.c b/src.old/2E790.c new file mode 100644 index 000000000..17edaafcb --- /dev/null +++ b/src.old/2E790.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2E790/func_8002DB90.s") diff --git a/src.old/2E8A0.c b/src.old/2E8A0.c new file mode 100644 index 000000000..987095c58 --- /dev/null +++ b/src.old/2E8A0.c @@ -0,0 +1,35 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DCA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DCCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DD44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DD70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DDAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DE08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DE38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DE98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DF34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002DF60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002E58C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002E68C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002E6D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002E6E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002E870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2E8A0/func_8002E8B0.s") diff --git a/src.old/2F550.c b/src.old/2F550.c new file mode 100644 index 000000000..354b978b7 --- /dev/null +++ b/src.old/2F550.c @@ -0,0 +1,25 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002E950.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002EED0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002EF84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F040.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F1A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F2B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F410.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F4A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F4D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/2F550/func_8002F710.s") diff --git a/src.old/30410.c b/src.old/30410.c new file mode 100644 index 000000000..203a23e9c --- /dev/null +++ b/src.old/30410.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30410/func_8002F810.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/30410/func_8002F988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/30410/func_8002FA34.s") diff --git a/src.old/307E0.c b/src.old/307E0.c new file mode 100644 index 000000000..06b358c71 --- /dev/null +++ b/src.old/307E0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/307E0/func_8002FBE0.s") diff --git a/src.old/30930.c b/src.old/30930.c new file mode 100644 index 000000000..4eb49421f --- /dev/null +++ b/src.old/30930.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30930/func_8002FD30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/30930/func_8002FDB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/30930/func_8002FE40.s") diff --git a/src.old/30B10.c b/src.old/30B10.c new file mode 100644 index 000000000..3613aa82d --- /dev/null +++ b/src.old/30B10.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30B10/func_8002FF10.s") diff --git a/src.old/30BA0.c b/src.old/30BA0.c new file mode 100644 index 000000000..596948b34 --- /dev/null +++ b/src.old/30BA0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30BA0/func_8002FFA0.s") diff --git a/src.old/30C20.c b/src.old/30C20.c new file mode 100644 index 000000000..a19c4e061 --- /dev/null +++ b/src.old/30C20.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30C20/func_80030020.s") diff --git a/src.old/30CA0.c b/src.old/30CA0.c new file mode 100644 index 000000000..681f18365 --- /dev/null +++ b/src.old/30CA0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30CA0/func_800300A0.s") diff --git a/src.old/30F30.c b/src.old/30F30.c new file mode 100644 index 000000000..f0e179a49 --- /dev/null +++ b/src.old/30F30.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30F30/func_80030330.s") diff --git a/src.old/30FF0.c b/src.old/30FF0.c new file mode 100644 index 000000000..dd86fa1bb --- /dev/null +++ b/src.old/30FF0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/30FF0/func_800303F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/30FF0/func_80030400.s") diff --git a/src.old/31010.c b/src.old/31010.c new file mode 100644 index 000000000..ff903e87d --- /dev/null +++ b/src.old/31010.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/31010/func_80030410.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/31010/func_80030450.s") diff --git a/src.old/310E0.c b/src.old/310E0.c new file mode 100644 index 000000000..4d3c9ce26 --- /dev/null +++ b/src.old/310E0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/310E0/func_800304E0.s") diff --git a/src.old/31190.c b/src.old/31190.c new file mode 100644 index 000000000..f681991c0 --- /dev/null +++ b/src.old/31190.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/31190/func_80030590.s") diff --git a/src.old/311E0.c b/src.old/311E0.c new file mode 100644 index 000000000..01431e6bb --- /dev/null +++ b/src.old/311E0.c @@ -0,0 +1,11 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/311E0/func_800305E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/311E0/func_80030650.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/311E0/func_800306A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/311E0/func_800306C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/311E0/func_80030794.s") diff --git a/src.old/31710.c b/src.old/31710.c new file mode 100644 index 000000000..9cca31c11 --- /dev/null +++ b/src.old/31710.c @@ -0,0 +1,9 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/31710/func_80030B10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/31710/func_80030C10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/31710/func_80030C98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/31710/func_80030CC8.s") diff --git a/src.old/31980.c b/src.old/31980.c new file mode 100644 index 000000000..342a43032 --- /dev/null +++ b/src.old/31980.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/31980/func_80030D80.s") diff --git a/src.old/319F0.c b/src.old/319F0.c new file mode 100644 index 000000000..ccd078a0e --- /dev/null +++ b/src.old/319F0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/319F0/func_80030DF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/319F0/func_80031124.s") diff --git a/src.old/31E70.c b/src.old/31E70.c new file mode 100644 index 000000000..bd2851bf1 --- /dev/null +++ b/src.old/31E70.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/31E70/func_80031270.s") diff --git a/src.old/32010.c b/src.old/32010.c new file mode 100644 index 000000000..87545feeb --- /dev/null +++ b/src.old/32010.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/32010/func_80031410.s") diff --git a/src.old/320D0.c b/src.old/320D0.c new file mode 100644 index 000000000..37b19fbae --- /dev/null +++ b/src.old/320D0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/320D0/func_800314D0.s") diff --git a/src.old/320E0.c b/src.old/320E0.c new file mode 100644 index 000000000..20071d434 --- /dev/null +++ b/src.old/320E0.c @@ -0,0 +1,15 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/320E0/func_800314E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/320E0/func_80031554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/320E0/func_80031650.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/320E0/func_800319A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/320E0/func_80031B04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/320E0/func_80031CB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/320E0/func_80031D84.s") diff --git a/src.old/32C60.c b/src.old/32C60.c new file mode 100644 index 000000000..e913fccec --- /dev/null +++ b/src.old/32C60.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/32C60/func_80032060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/32C60/func_800320D0.s") diff --git a/src.old/32E80.c b/src.old/32E80.c new file mode 100644 index 000000000..bc7439546 --- /dev/null +++ b/src.old/32E80.c @@ -0,0 +1,11 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/32E80/func_80032280.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/32E80/func_800323FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/32E80/func_80032470.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/32E80/func_800324C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/32E80/func_80032504.s") diff --git a/src.old/33140.c b/src.old/33140.c new file mode 100644 index 000000000..d93a275b1 --- /dev/null +++ b/src.old/33140.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/33140/func_80032540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/33140/func_800329D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/33140/func_80032AB0.s") diff --git a/src.old/33720.c b/src.old/33720.c new file mode 100644 index 000000000..ed72e1f23 --- /dev/null +++ b/src.old/33720.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/33720/func_80032B20.s") diff --git a/src.old/33730.c b/src.old/33730.c new file mode 100644 index 000000000..71a8eace0 --- /dev/null +++ b/src.old/33730.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/33730/func_80032B30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/33730/func_80032B50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/33730/func_80032BD4.s") diff --git a/src.old/33800.c b/src.old/33800.c new file mode 100644 index 000000000..12df95c0d --- /dev/null +++ b/src.old/33800.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/33800/func_80032C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/33800/func_80033270.s") diff --git a/src.old/344C0.c b/src.old/344C0.c new file mode 100644 index 000000000..a582a9e20 --- /dev/null +++ b/src.old/344C0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/344C0/func_800338C0.s") diff --git a/src.old/345A0.c b/src.old/345A0.c new file mode 100644 index 000000000..cc78b00ed --- /dev/null +++ b/src.old/345A0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/345A0/func_800339A0.s") diff --git a/src.old/34640.c b/src.old/34640.c new file mode 100644 index 000000000..62f9b799c --- /dev/null +++ b/src.old/34640.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34640/func_80033A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/34640/func_80033A6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/34640/func_80033A94.s") diff --git a/src.old/346E0.c b/src.old/346E0.c new file mode 100644 index 000000000..9563db00b --- /dev/null +++ b/src.old/346E0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/346E0/func_80033AE0.s") diff --git a/src.old/34710.c b/src.old/34710.c new file mode 100644 index 000000000..7ef6939eb --- /dev/null +++ b/src.old/34710.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34710/func_80033B10.s") diff --git a/src.old/34790.c b/src.old/34790.c new file mode 100644 index 000000000..cd2181688 --- /dev/null +++ b/src.old/34790.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34790/func_80033B90.s") diff --git a/src.old/34840.c b/src.old/34840.c new file mode 100644 index 000000000..c43e239df --- /dev/null +++ b/src.old/34840.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34840/func_80033C40.s") diff --git a/src.old/34930.c b/src.old/34930.c new file mode 100644 index 000000000..ff76b17dd --- /dev/null +++ b/src.old/34930.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34930/func_80033D30.s") diff --git a/src.old/34960.c b/src.old/34960.c new file mode 100644 index 000000000..1a954804e --- /dev/null +++ b/src.old/34960.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34960/func_80033D60.s") diff --git a/src.old/34990.c b/src.old/34990.c new file mode 100644 index 000000000..67291b16e --- /dev/null +++ b/src.old/34990.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34990/func_80033D90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/34990/func_80033EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/34990/func_80033FC0.s") diff --git a/src.old/34BE0.c b/src.old/34BE0.c new file mode 100644 index 000000000..d8898367c --- /dev/null +++ b/src.old/34BE0.c @@ -0,0 +1,7 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34BE0/func_80033FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/34BE0/func_80034030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/34BE0/func_800340D0.s") diff --git a/src.old/34E40.c b/src.old/34E40.c new file mode 100644 index 000000000..445a327e1 --- /dev/null +++ b/src.old/34E40.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/34E40/func_80034240.s") diff --git a/src.old/35070.c b/src.old/35070.c new file mode 100644 index 000000000..d89a11172 --- /dev/null +++ b/src.old/35070.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/35070/func_80034470.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/35070/func_800344F0.s") diff --git a/src.old/35210.c b/src.old/35210.c new file mode 100644 index 000000000..5f933f44f --- /dev/null +++ b/src.old/35210.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/35210/func_80034610.s") diff --git a/src.old/352A0.c b/src.old/352A0.c new file mode 100644 index 000000000..b5932b2e5 --- /dev/null +++ b/src.old/352A0.c @@ -0,0 +1,11 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/352A0/func_800346A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/352A0/func_8003472C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/352A0/func_800348A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/352A0/func_80034918.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/352A0/func_80034AA0.s") diff --git a/src.old/356F0.c b/src.old/356F0.c new file mode 100644 index 000000000..c3c4fa2ea --- /dev/null +++ b/src.old/356F0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/356F0/func_80034AF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/356F0/func_80034C50.s") diff --git a/src.old/358E0.c b/src.old/358E0.c new file mode 100644 index 000000000..47ec58a36 --- /dev/null +++ b/src.old/358E0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/358E0/func_80034CE0.s") diff --git a/src.old/358F0.c b/src.old/358F0.c new file mode 100644 index 000000000..9c241eb16 --- /dev/null +++ b/src.old/358F0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/358F0/func_80034CF0.s") diff --git a/src.old/35900.c b/src.old/35900.c new file mode 100644 index 000000000..3b72ae390 --- /dev/null +++ b/src.old/35900.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/35900/func_80034D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/35900/func_80035010.s") diff --git a/src.old/35C90.c b/src.old/35C90.c new file mode 100644 index 000000000..c8b7194be --- /dev/null +++ b/src.old/35C90.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/35C90/func_80035090.s") diff --git a/src.old/35CF0.c b/src.old/35CF0.c new file mode 100644 index 000000000..b5003b6d7 --- /dev/null +++ b/src.old/35CF0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/35CF0/func_800350F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/35CF0/func_800352C8.s") diff --git a/src.old/35F60.c b/src.old/35F60.c new file mode 100644 index 000000000..adb31c2b9 --- /dev/null +++ b/src.old/35F60.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/35F60/func_80035360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/35F60/func_80035380.s") diff --git a/src.old/35FA0.c b/src.old/35FA0.c new file mode 100644 index 000000000..94a0abd77 --- /dev/null +++ b/src.old/35FA0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/35FA0/func_800353A0.s") diff --git a/src.old/360E0.c b/src.old/360E0.c new file mode 100644 index 000000000..c163b9f71 --- /dev/null +++ b/src.old/360E0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/360E0/func_800354E0.s") diff --git a/src.old/363E0.c b/src.old/363E0.c new file mode 100644 index 000000000..8b7799ebc --- /dev/null +++ b/src.old/363E0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/363E0/func_800357E0.s") diff --git a/src.old/36410.c b/src.old/36410.c new file mode 100644 index 000000000..a9cea1270 --- /dev/null +++ b/src.old/36410.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/36410/func_80035810.s") diff --git a/src.old/36580.c b/src.old/36580.c new file mode 100644 index 000000000..abdeeebde --- /dev/null +++ b/src.old/36580.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/36580/func_80035980.s") diff --git a/src.old/365B0.c b/src.old/365B0.c new file mode 100644 index 000000000..3b8fadf08 --- /dev/null +++ b/src.old/365B0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/365B0/func_800359B0.s") diff --git a/src.old/36620.c b/src.old/36620.c new file mode 100644 index 000000000..bd6fbe0ea --- /dev/null +++ b/src.old/36620.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/36620/func_80035A20.s") diff --git a/src.old/36720.c b/src.old/36720.c new file mode 100644 index 000000000..2bc2604e7 --- /dev/null +++ b/src.old/36720.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/36720/func_80035B20.s") diff --git a/src.old/368A0.c b/src.old/368A0.c new file mode 100644 index 000000000..a49fc49f1 --- /dev/null +++ b/src.old/368A0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/368A0/func_80035CA0.s") diff --git a/src.old/36920.c b/src.old/36920.c new file mode 100644 index 000000000..86a00638e --- /dev/null +++ b/src.old/36920.c @@ -0,0 +1,11 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/36920/func_80035D20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36920/func_80035D30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36920/func_80035F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36920/func_80035FF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36920/func_800360B4.s") diff --git a/src.old/36D50.c b/src.old/36D50.c new file mode 100644 index 000000000..9418dde32 --- /dev/null +++ b/src.old/36D50.c @@ -0,0 +1,15 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/36D50/func_80036150.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36D50/func_80036688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36D50/func_80036954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36D50/func_80036AF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36D50/func_80036C90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36D50/func_80036D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/36D50/func_80036E30.s") diff --git a/src.old/37A0.c b/src.old/37A0.c new file mode 100644 index 000000000..ea61707c2 --- /dev/null +++ b/src.old/37A0.c @@ -0,0 +1,29 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002BA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002BD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002D8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002E48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002EBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002F4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002F88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80002FC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80003788.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_800037A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_800037F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_80003838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37A0/func_8000385C.s") diff --git a/src.old/37BD0.c b/src.old/37BD0.c new file mode 100644 index 000000000..3dbdf2fa8 --- /dev/null +++ b/src.old/37BD0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/37BD0/func_80036FD0.s") diff --git a/src.old/37C30.c b/src.old/37C30.c new file mode 100644 index 000000000..e71581678 --- /dev/null +++ b/src.old/37C30.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/37C30/func_80037030.s") diff --git a/src.old/37C80.c b/src.old/37C80.c new file mode 100644 index 000000000..140297632 --- /dev/null +++ b/src.old/37C80.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/37C80/func_80037080.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/37C80/func_800370D0.s") diff --git a/src.old/37F20.c b/src.old/37F20.c new file mode 100644 index 000000000..7f1283dc0 --- /dev/null +++ b/src.old/37F20.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/37F20/func_80037320.s") diff --git a/src.old/38150.c b/src.old/38150.c new file mode 100644 index 000000000..333f4ff7b --- /dev/null +++ b/src.old/38150.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/38150/func_80037550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/38150/func_80037620.s") diff --git a/src.old/382C0.c b/src.old/382C0.c new file mode 100644 index 000000000..0a92c1e5d --- /dev/null +++ b/src.old/382C0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/382C0/func_800376C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/382C0/func_80037850.s") diff --git a/src.old/38530.c b/src.old/38530.c new file mode 100644 index 000000000..21a591312 --- /dev/null +++ b/src.old/38530.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/38530/func_80037930.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/38530/func_80037EA0.s") diff --git a/src.old/39000.c b/src.old/39000.c new file mode 100644 index 000000000..66ea87ed2 --- /dev/null +++ b/src.old/39000.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39000/func_80038400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/39000/func_80038500.s") diff --git a/src.old/39190.c b/src.old/39190.c new file mode 100644 index 000000000..b54786da7 --- /dev/null +++ b/src.old/39190.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39190/func_80038590.s") diff --git a/src.old/39430.c b/src.old/39430.c new file mode 100644 index 000000000..3e70db3d2 --- /dev/null +++ b/src.old/39430.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39430/func_80038830.s") diff --git a/src.old/39480.c b/src.old/39480.c new file mode 100644 index 000000000..b90da4c76 --- /dev/null +++ b/src.old/39480.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39480/func_80038880.s") diff --git a/src.old/39530.c b/src.old/39530.c new file mode 100644 index 000000000..06ed81170 --- /dev/null +++ b/src.old/39530.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39530/func_80038930.s") diff --git a/src.old/39560.c b/src.old/39560.c new file mode 100644 index 000000000..72b146e2c --- /dev/null +++ b/src.old/39560.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39560/func_80038960.s") diff --git a/src.old/39570.c b/src.old/39570.c new file mode 100644 index 000000000..e2e41d943 --- /dev/null +++ b/src.old/39570.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39570/func_80038970.s") diff --git a/src.old/39580.c b/src.old/39580.c new file mode 100644 index 000000000..d6e72db6e --- /dev/null +++ b/src.old/39580.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39580/func_80038980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/39580/func_80038B00.s") diff --git a/src.old/39890.c b/src.old/39890.c new file mode 100644 index 000000000..d70b85004 --- /dev/null +++ b/src.old/39890.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39890/func_80038C90.s") diff --git a/src.old/398A0.c b/src.old/398A0.c new file mode 100644 index 000000000..4b93dffd0 --- /dev/null +++ b/src.old/398A0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/398A0/func_80038CA0.s") diff --git a/src.old/398D0.c b/src.old/398D0.c new file mode 100644 index 000000000..ed17b61d6 --- /dev/null +++ b/src.old/398D0.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/398D0/func_80038CD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/398D0/func_80038E20.s") diff --git a/src.old/39A80.c b/src.old/39A80.c new file mode 100644 index 000000000..312bff250 --- /dev/null +++ b/src.old/39A80.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39A80/func_80038E80.s") diff --git a/src.old/39B30.c b/src.old/39B30.c new file mode 100644 index 000000000..c3d4309c8 --- /dev/null +++ b/src.old/39B30.c @@ -0,0 +1,11 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39B30/func_80038F30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/39B30/func_80038F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/39B30/func_80039124.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/39B30/func_800391B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/39B30/func_800391F0.s") diff --git a/src.old/39E30.c b/src.old/39E30.c new file mode 100644 index 000000000..408bbbae3 --- /dev/null +++ b/src.old/39E30.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/39E30/func_80039230.s") diff --git a/src.old/43790.c b/src.old/43790.c new file mode 100644 index 000000000..87f39c8fc --- /dev/null +++ b/src.old/43790.c @@ -0,0 +1,1067 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009B540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009B5E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009B69C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009B6F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009B72C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009B768.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009B99C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BA68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BA74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BC4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BD3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BE04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BE54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BF7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BFA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009BFD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009C0E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009C154.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009C18C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009C1C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009C350.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009C44C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009C4E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009E834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_8009E8F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A043C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A0460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A0480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A04A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A04B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A0558.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A09AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A194C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A19EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A1F30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2024.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A206C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2080.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A22A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A22D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A238C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2440.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A24C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A28C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2904.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2B9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2C80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2CE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2D5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2D68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A2E98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A3058.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A30E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A3128.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A3150.s") + +void func_800A3228(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A3230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A336C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A3408.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A34C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A36C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A377C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A41B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A428C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4414.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A447C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A44BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A455C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A465C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4958.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4DB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A4F48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A509C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5268.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A52F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5404.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5468.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A54FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A55E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5660.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A56F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5744.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A57A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A57C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A58E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5AD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5B14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5B3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5BDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5C60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5D24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5D88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A5F94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A62D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6820.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A699C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6A18.s") + +void func_800A6B18(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6BC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6E64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A6F68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A70C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7160.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A71A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A71E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A72AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7394.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A73B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A74B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A74D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A75B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7704.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A77E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A78D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7A70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7BF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7E48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7E7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7EB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A7F74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A802C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8100.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A82C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8310.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8358.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A840C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A84F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8518.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A855C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8564.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A86C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8724.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8934.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A89E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8B0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8BAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8CE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8D64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8E54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A8EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9250.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A94F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9760.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9864.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A99E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9A2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9AA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9B48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9C78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9D64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9DE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9EA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9EC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800A9F98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA018.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA038.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA0C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA154.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA174.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA2C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA2F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA3F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA49C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA5C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA608.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA78C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA7D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA864.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA8E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA934.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AA96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AAB3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AABD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AACC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AAF04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AAF34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AAFC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB040.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB0A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB0CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB0F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB110.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB120.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB174.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB1F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB244.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB2C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB314.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB390.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB398.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB3A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB3F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB470.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB478.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB490.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB680.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB6D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AB804.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ABB4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC5B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC5E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC610.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC700.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC820.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC8E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AC954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ACB7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ACBDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ACC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ACC68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ACE1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ACE88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AD1A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800ADD14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AE048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AE0F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AE138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AE7A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEA64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEADC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEC08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEC3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEC70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AECC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AED20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AED80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEDD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEE20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEEB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEF0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEFA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AEFFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF09C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF0F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF27C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF314.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF3A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF408.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF4BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF7A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF7EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF890.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF8C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF8F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF920.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AF9B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFA14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFA54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFA88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFBB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFBEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFC20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFC54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFC88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFDA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFEB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800AFFD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B0100.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B01DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B030C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B04D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B07B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B0974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B0AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B0BC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B0D24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B0D90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B0F28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B113C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1378.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B143C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B158C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B175C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B17B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1814.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B18B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1900.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B19B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B19F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1A4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1B28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1BF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1E08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1EC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1F68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B1FD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B20E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B21FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B2288.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B2340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B26D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B2928.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B2AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B2F54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B2F90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3070.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B30BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3158.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B31B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B33F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3520.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B35F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B369C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3A6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B3CEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4024.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B46F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4864.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B491C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B49F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4AB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4B9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4D40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4D70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4EBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B4F48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B5064.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B5094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B50C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B531C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B5A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B5C28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B5E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B5FBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6064.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B62AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B63C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6474.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B658C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6684.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B67A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B68AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6A2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6B8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6CF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B6FD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B72AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B742C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B74B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B74D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7514.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B78AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B799C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B79F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7D88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B7ED4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8130.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B83C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8630.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8700.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B87E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B891C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8B2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8B58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8B84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8BB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8BDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8C08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8C34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8F34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B8FC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9068.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B90E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9104.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B91B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B922C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B92B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B92D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B94FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B96A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9C50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9DC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9E4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9F50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9F64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9F90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800B9FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BA284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BA40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BA5C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BA7A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BA90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAA04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAA64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAAE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAB68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAC0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAD0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAEB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BAF50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB08C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB12C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB198.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB24C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB364.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB394.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB3C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB3F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB418.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB440.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB468.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB4BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB53C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB580.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB588.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB6B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BB98C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BBBA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BBC6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BBDC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BBF60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BBFE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC0F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC1FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC258.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC298.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC4C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC664.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC800.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BC9A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BCA5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BCEEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BCFD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD0E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD2F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD374.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD660.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD6E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD7FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BD92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDAA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDB18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDD68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDD88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDD98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDE0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDF2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BDFB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BE028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BE098.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BE320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BE374.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/43790/func_800BE3EC.s") diff --git a/src.old/49C0.c b/src.old/49C0.c new file mode 100644 index 000000000..674c670d9 --- /dev/null +++ b/src.old/49C0.c @@ -0,0 +1,61 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80003DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80003ECC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80003FDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800041A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004250.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800045C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004624.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_8000464C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800046A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800046D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800046FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800047B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800047D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800047F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004810.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800049BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004A3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004B50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004C5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004CD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004D68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004D98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004DC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_80004E98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/49C0/func_800051E0.s") diff --git a/src.old/4AB10.c b/src.old/4AB10.c new file mode 100644 index 000000000..dda3f9093 --- /dev/null +++ b/src.old/4AB10.c @@ -0,0 +1,137 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A28C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A2904.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A2B9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A2C80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A2CE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A2D5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A2D68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A2E98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A3058.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A30E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A3128.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A3150.s") + +void func_800A3228(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A3230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A336C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A3408.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A34C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A36C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A377C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A41B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A428C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4414.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A447C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A44BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A455C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A465C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4958.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4DB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A4F48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A509C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5268.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A52F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5404.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5468.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A54FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A55E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5660.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A56F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5744.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A57A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A57C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A58E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5AD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5B14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5B3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5BDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5C60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5D24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5D88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A5F94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A6208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A62D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A6534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A6820.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A699C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A6A18.s") + +void func_800A6B18(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A6B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4AB10/func_800A6B64.s") diff --git a/src.old/4EE10.c b/src.old/4EE10.c new file mode 100644 index 000000000..c767db393 --- /dev/null +++ b/src.old/4EE10.c @@ -0,0 +1,73 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A6BC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A6E64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A6F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A6F68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A70C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7160.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A71A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A71E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A72AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7394.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A73B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A74B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A74D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A75B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7704.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A77E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A78D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7A70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7BF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7E48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7E7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7EB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A7F74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A802C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A8100.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/4EE10/func_800A8234.s") diff --git a/src.old/50510.c b/src.old/50510.c new file mode 100644 index 000000000..cfdc074cb --- /dev/null +++ b/src.old/50510.c @@ -0,0 +1,169 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A82C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8310.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8358.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A840C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A84F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8518.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A855C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8564.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A86C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8724.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8934.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A89E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8B0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8BAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8CE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8D64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8E54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A8EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9250.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A94F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9760.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9864.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A99E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9A2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9AA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9B48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9C78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9D64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9DE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9EA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9EC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800A9F98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA018.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA038.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA0C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA154.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA174.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA2C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA2F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA3F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA49C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA5C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA608.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA78C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA7D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA864.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA8E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA934.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AA96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AAB3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AABD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AACC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AAF04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AAF34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AAFC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB040.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB0A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB0CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB0F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB110.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB120.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB174.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB1F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB244.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB2C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB314.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB390.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB398.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB3A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB3F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB470.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB478.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/50510/func_800AB480.s") diff --git a/src.old/536E0.c b/src.old/536E0.c new file mode 100644 index 000000000..25d9618de --- /dev/null +++ b/src.old/536E0.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/536E0/func_800AB490.s") diff --git a/src.old/538D0.c b/src.old/538D0.c new file mode 100644 index 000000000..acc2b0359 --- /dev/null +++ b/src.old/538D0.c @@ -0,0 +1,49 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AB680.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AB6D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AB790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AB804.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ABB4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC5B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC5E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC610.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC700.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC820.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC8E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AC954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ACB7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ACBDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ACC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ACC68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ACE1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ACE88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AD1A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800ADD14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/538D0/func_800AE048.s") diff --git a/src.old/56340.c b/src.old/56340.c new file mode 100644 index 000000000..46a37764b --- /dev/null +++ b/src.old/56340.c @@ -0,0 +1,17 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AE0F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AE138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AE7A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AEA64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AEADC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AEC08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AEC3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56340/func_800AEC70.s") diff --git a/src.old/56F10.c b/src.old/56F10.c new file mode 100644 index 000000000..6305c6db1 --- /dev/null +++ b/src.old/56F10.c @@ -0,0 +1,181 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AECC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AED20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AED80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AEDD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AEE20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AEEB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AEF0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AEFA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AEFFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF09C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF0F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF27C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF314.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF3A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF408.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF4BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF7A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF7EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF890.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF8C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF8F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF920.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AF9B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFA14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFA54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFA88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFBB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFBEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFC20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFC54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFC88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFDA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFEB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800AFFD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B0100.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B01DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B030C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B04D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B07B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B0974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B0AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B0BC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B0D24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B0D90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B0F28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B113C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1378.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B143C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B158C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B175C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B17B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1814.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B18B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1900.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B19B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B19F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1A4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1B28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1BF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1E08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1EC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1F68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B1FD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B20E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B21FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B2288.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B2340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B26D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B2928.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B2AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B2F54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B2F90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B3008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B3070.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B3094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B30BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B3158.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B31B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B3234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B33F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/56F10/func_800B3520.s") diff --git a/src.old/5B840.c b/src.old/5B840.c new file mode 100644 index 000000000..277866781 --- /dev/null +++ b/src.old/5B840.c @@ -0,0 +1,133 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B35F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B369C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B3838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B3A6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B3CEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4024.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B46F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4864.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B491C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B49F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4AB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4B9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4D40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4D70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4EBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B4F48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B5064.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B5094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B50C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B531C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B5A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B5C28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B5E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B5FBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6064.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B62AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B63C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6474.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B658C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6684.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B67A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B68AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6A2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6B8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6CF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B6FD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B72AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B742C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B74B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B74D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7514.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B78AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B799C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B79F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7D88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B7ED4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B8020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B8130.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B8208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B8300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B83C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B8550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5B840/func_800B8630.s") diff --git a/src.old/5F50.c b/src.old/5F50.c new file mode 100644 index 000000000..424b6f51b --- /dev/null +++ b/src.old/5F50.c @@ -0,0 +1,91 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005350.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005378.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800053A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800053B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800053D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005430.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_8000548C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005530.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_8000561C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800056DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005734.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800057AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005910.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_8000597C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800059F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005A98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005C64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005CC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005DE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80005F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_8000630C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006628.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800067B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800067C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800067E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006854.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800068E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006E94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80006F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_8000708C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80007328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80007380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800075DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800075F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80007620.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80007648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80007674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_80007694.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/5F50/func_800076D0.s") diff --git a/src.old/60950.c b/src.old/60950.c new file mode 100644 index 000000000..3419297ba --- /dev/null +++ b/src.old/60950.c @@ -0,0 +1,75 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8700.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B87E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B891C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8B2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8B58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8B84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8BB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8BDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8C08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8C34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8F34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B8FC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9068.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B90E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9104.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B91B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B922C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B92B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B92D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B94FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B96A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9C50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9DC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9E4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9F50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9F64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9F90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800B9FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800BA284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800BA40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/60950/func_800BA5C4.s") diff --git a/src.old/629F0.c b/src.old/629F0.c new file mode 100644 index 000000000..d73ed998d --- /dev/null +++ b/src.old/629F0.c @@ -0,0 +1,55 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BA7A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BA90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAA04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAA64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAAE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAB68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAC0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAD0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAEB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BAF50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB08C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB12C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB198.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB24C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB364.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB394.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB3C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB3F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB418.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB440.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB468.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB4BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/629F0/func_800BB53C.s") diff --git a/src.old/637D0.c b/src.old/637D0.c new file mode 100644 index 000000000..2be16c439 --- /dev/null +++ b/src.old/637D0.c @@ -0,0 +1,9 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/637D0/func_800BB580.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/637D0/func_800BB588.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/637D0/func_800BB6B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/637D0/func_800BB98C.s") diff --git a/src.old/63DF0.c b/src.old/63DF0.c new file mode 100644 index 000000000..a0d3c39ed --- /dev/null +++ b/src.old/63DF0.c @@ -0,0 +1,9 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/63DF0/func_800BBBA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/63DF0/func_800BBC6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/63DF0/func_800BBDC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/63DF0/func_800BBF60.s") diff --git a/src.old/64230.c b/src.old/64230.c new file mode 100644 index 000000000..4f412b556 --- /dev/null +++ b/src.old/64230.c @@ -0,0 +1,79 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BBFE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC0F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC1FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC258.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC298.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC4C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC664.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC800.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BC9A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BCA5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BCEEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BCFD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD0E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD2F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD374.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD660.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD6E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD7FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BD92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDAA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDB18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDD68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDD88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDD98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDE0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDF2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BDFB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BE028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BE098.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BE320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BE374.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/64230/func_800BE3E0.s") diff --git a/src.old/7EC10.c b/src.old/7EC10.c new file mode 100644 index 000000000..e761bb251 --- /dev/null +++ b/src.old/7EC10.c @@ -0,0 +1,1609 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F61A0.s") + +void func_800F629C(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F62A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F64B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6AB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6C68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6C78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6C98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6E04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6E0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F6E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F716C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F7258.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F72B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F7404.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F7484.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F753C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F7578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F7844.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F78E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8078.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F81A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8378.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8464.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8728.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8824.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F88A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F88C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F89C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8A24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8B1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8C70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F8E6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F90C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F93EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F951C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F98EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9C54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9C94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800F9FDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA1D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA2D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA414.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA5C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA608.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA7EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FA92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FAC74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FB164.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FB814.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FB914.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FB9B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FBA78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FBA98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FBBB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FBDE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FBE1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FBF18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC03C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC164.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC500.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC53C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC62C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC804.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FC9C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCA84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCD14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCDC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCE50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCED8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCF04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCF0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCF58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCFA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FCFF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD03C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD194.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD330.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD418.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD754.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD874.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FD9D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDA40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDAB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDBB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDCB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDE64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDE6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDF88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FDFF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FE0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FE154.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FEE6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FEF44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF0A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF0C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF0E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF12C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF1CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF200.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF2C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF5E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF64C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF71C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_800FF9B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80100790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80100AC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80100DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80100E50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80100E7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80100EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010133C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010137C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101920.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101BA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101D50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101DA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101E5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80101F4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010203C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010217C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801021BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801021FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010221C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80102324.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80102364.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801023FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801024E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80102570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103004.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801033A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103528.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103930.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801039E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103B58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103CC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103D80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103DE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80103F58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104010.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801040CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010423C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801042F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801043B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104468.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104520.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801045DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801046A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010474C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801047F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801048A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104958.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104A08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104AB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104B70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104C24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104D2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80104FB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801050E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80105180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801051AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801051DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80105218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80105238.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80105284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80105530.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801056C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801057C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801058B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801060C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801063F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010669C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80106834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80106930.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80106C5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80107074.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801072E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801073C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801077D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801078A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80107F94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80108078.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80108858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80108E08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010924C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109318.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801096F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109970.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109B5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109BF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109DD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80109FAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010A138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010A2C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010AA80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010AC1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010AEE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010AEF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B0B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B0D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B238.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B67C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010B860.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010BA44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010BB08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010BBD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010BD0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010BD84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010BE7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010BFAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010C184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010C274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010C608.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010C734.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010CABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010CE44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010D138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010D42C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010D668.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010D8A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DA28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DB64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DC00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DC24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DC8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DCAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DCDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DD8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DDA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010DF9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E260.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E288.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E2B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E324.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E5B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E6F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010E8F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010EA20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010EA68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010EE24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010EEE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010EFA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010F140.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010F964.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010F9AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8010FC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110014.s") + +void func_80110130(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110150.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801103C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801105E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110B00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110E94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80110FD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011145C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801114E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111574.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801117BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111A04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111C4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111ECC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80111F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801121E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801123AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011253C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112600.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801126A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112768.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801127D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801128A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801129AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801129C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801129DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801129F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112A0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112B4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112CD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112ED4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80112F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80113028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80113300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801133C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80113F08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80114974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801149C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80114A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80114CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80114CF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80114D54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80114DBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80114E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115070.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011511C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801151BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115330.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801153B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011544C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801154F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011572C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011591C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115AAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115ACC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115C4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115D38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115EAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115EDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115EFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80115F04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801161D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011623C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116260.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801162F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011646C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801164A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801164D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116508.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116B68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116B90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116CC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116CE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116D20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116D40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116D80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116DE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116E40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80116FF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117078.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117098.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801170B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801170D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801170F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117158.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801171F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117210.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801173F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011764C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801176B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801176D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801176F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117718.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117738.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801177B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801177DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117808.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117904.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117AB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117D70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117DD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117E10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117E38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117E88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117EB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117ED8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80117F28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801180B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118130.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801181AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011829C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801182C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801182F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801183A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801183C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801183E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118420.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801184B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801185B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801185D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801185F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118760.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801187A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011884C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011890C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118A60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118BC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118CA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118CC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118D84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118F9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118FC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80118FE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119068.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119090.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801190B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801190DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119108.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119128.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119148.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119168.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119188.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119290.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801192B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801192B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801192C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801192E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801193CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801193EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011940C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011942C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011944C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011946C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011948C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801194AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801194CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801194EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011950C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011952C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011954C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011956C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011958C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801195AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801195CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801195EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011960C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011962C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011964C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011966C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011968C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801196AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801196CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801196EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011970C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011972C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011974C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011976C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011978C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011982C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011984C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011986C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011988C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801198AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801198CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801198EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011990C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011992C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801199E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119A00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119A20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119A60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119A80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119AC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119AE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119B00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119B80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119BA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119BC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119BE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119C20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119C6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119C98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119CC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119CF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119D1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119D48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119D74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119DE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119E40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119FA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119FC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80119FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A040.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A198.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A214.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A254.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A294.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A2F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A3B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A3F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A418.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A458.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A478.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A4C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A4E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A538.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A588.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A770.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A7A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A86C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A88C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A8AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A8CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A8EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A94C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A98C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A9AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011A9EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AA7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AB7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AB9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ABBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ABDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ABFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AC1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AC3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AC7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AC9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ACBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ACDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ACFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AD1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AD3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AD5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AD7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AD9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ADBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ADDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ADFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AE6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AEF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AF50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AFB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AFD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011AFF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B010.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B050.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B0A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B188.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B22C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B3B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B3F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B464.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B528.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B580.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B5AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B5D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B5F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B6B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B6D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B7CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B944.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B964.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B984.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B9A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B9C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011B9E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011BA10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011BABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011BB98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011BD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011BD30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011BED0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011BF4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C2D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C344.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C4E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C720.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C87C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C8D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011C8F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011CCB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011CF58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011CFE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011CFF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011D0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011D40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011D4A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011D614.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011D67C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011D858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011D9E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DA34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DAF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DC04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DCD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DD18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011DD5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E0E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E190.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E1E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E244.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E31C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E374.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E524.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E548.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011E978.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011EBD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011ED68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011F690.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8011FEF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80120A28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80120AF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80120BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80120CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80120E74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801210B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801210FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121194.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8012122C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801212A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801215DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801217B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801219C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121A04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121C90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121D3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121F14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80121F50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8012209C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122558.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801226FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801229D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122A10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122A80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122C30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122CE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122F08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122F6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122F94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80122FB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80123004.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8012307C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801230E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8012310C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80123144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80123170.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801231D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80123240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_801232A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80123354.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_80123E90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7EC10/func_8012475C.s") diff --git a/src.old/7F6B0.c b/src.old/7F6B0.c new file mode 100644 index 000000000..94beae19f --- /dev/null +++ b/src.old/7F6B0.c @@ -0,0 +1,53 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6C68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6C78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6C98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6E04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6E0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F6E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F716C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F7258.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F72B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F7404.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F7484.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F753C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F7578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F7844.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F78E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8078.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F81A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8378.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8464.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8728.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/7F6B0/func_800F8824.s") diff --git a/src.old/81310.c b/src.old/81310.c new file mode 100644 index 000000000..fcad1bf15 --- /dev/null +++ b/src.old/81310.c @@ -0,0 +1,123 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F88A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F88C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F89C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F8A24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F8B1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F8C70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F8E6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F90C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F93EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F951C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F98EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9C54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9C94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800F9FDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA1D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA2D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA414.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA5C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA608.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA7EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FA92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FAC74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FB164.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FB814.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FB914.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FB9B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FBA78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FBA98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FBBB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FBDE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FBE1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FBF18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC03C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC164.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC500.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC53C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC62C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC804.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FC9C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCA84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCD14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCDC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCE50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCED8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCF04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCF0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCF58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCFA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FCFF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FD03C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FD088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/81310/func_800FD194.s") diff --git a/src.old/8430.c b/src.old/8430.c new file mode 100644 index 000000000..cacd869fe --- /dev/null +++ b/src.old/8430.c @@ -0,0 +1,27 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_8000783C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_800078A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_800078F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007944.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_800079E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_800079FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007A74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007ADC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007B38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8430/func_80007BA4.s") diff --git a/src.old/85DA0.c b/src.old/85DA0.c new file mode 100644 index 000000000..eee18030a --- /dev/null +++ b/src.old/85DA0.c @@ -0,0 +1,15 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/85DA0/func_800FD330.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/85DA0/func_800FD418.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/85DA0/func_800FD570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/85DA0/func_800FD754.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/85DA0/func_800FD874.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/85DA0/func_800FD968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/85DA0/func_800FD9D4.s") diff --git a/src.old/864B0.c b/src.old/864B0.c new file mode 100644 index 000000000..3964cc01a --- /dev/null +++ b/src.old/864B0.c @@ -0,0 +1,43 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDA40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDAB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDBB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDCB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDE64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDE6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDF88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FDFF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FE0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FE154.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FEE6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FEF44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF0A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF0C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF0E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF12C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF1CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF200.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/864B0/func_800FF2C8.s") diff --git a/src.old/8800.c b/src.old/8800.c new file mode 100644 index 000000000..e78c055f2 --- /dev/null +++ b/src.old/8800.c @@ -0,0 +1,9 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/8800/func_80007C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8800/func_80007C9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8800/func_80007CE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8800/func_80007CF4.s") diff --git a/src.old/88050.c b/src.old/88050.c new file mode 100644 index 000000000..04bbd09c8 --- /dev/null +++ b/src.old/88050.c @@ -0,0 +1,25 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_800FF5E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_800FF64C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_800FF71C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_800FF9B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_80100790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_80100AC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_80100DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_80100E50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_80100E7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_80100EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_8010133C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/88050/func_8010137C.s") diff --git a/src.old/89E70.c b/src.old/89E70.c new file mode 100644 index 000000000..7c40f2e67 --- /dev/null +++ b/src.old/89E70.c @@ -0,0 +1,279 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101920.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101BA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101D50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101DA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101E5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80101F4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010203C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010217C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801021BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801021FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010221C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80102324.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80102364.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801023FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801024E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80102570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103004.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801033A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103528.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103930.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801039E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103B58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103CC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103D80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103DE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80103F58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104010.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801040CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010423C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801042F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801043B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104468.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104520.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801045DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801046A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010474C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801047F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801048A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104958.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104A08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104AB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104B70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104C24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104D2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80104FB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801050E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80105180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801051AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801051DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80105218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80105238.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80105284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80105530.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801056C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801057C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801058B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801060C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801063F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010669C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80106834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80106930.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80106C5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80107074.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801072E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801073C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801077D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801078A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80107F94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80108078.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80108858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80108E08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010924C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109318.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_801096F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109970.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109B5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109BF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109DD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_80109FAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010A138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010A2C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010AA80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010AC1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010AEE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010AEF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B0B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B0D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B238.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B67C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010B860.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010BA44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010BB08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010BBD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010BD0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010BD84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010BE7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010BFAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010C184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010C274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010C608.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010C734.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010CABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010CE44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010D138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010D42C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010D668.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010D8A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DA28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DB64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DC00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DC24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DC8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DCAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DCDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DD8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DDA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010DF9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010E048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010E260.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010E274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010E288.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010E2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010E2B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/89E70/func_8010E324.s") diff --git a/src.old/8B60.c b/src.old/8B60.c new file mode 100644 index 000000000..ff63bc543 --- /dev/null +++ b/src.old/8B60.c @@ -0,0 +1,249 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80007F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80007FB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80007FE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000803C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008068.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800080C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008198.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800081C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008210.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008280.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000828C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800082D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000831C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000835C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800083A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800083CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800084A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008528.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008590.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800085F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008664.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800086EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008754.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800087AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800087D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008840.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008850.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008860.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000888C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800088E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008910.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008994.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800089EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008A18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008B94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008DA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80008EC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009628.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800097E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000984C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800098AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009918.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009978.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_800099E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009B5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009C38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009CE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009D5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009DF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_80009F7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A02C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A0C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A1C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A200.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A24C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A29C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A350.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A4D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A508.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A544.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A580.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A5FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A684.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A6D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A730.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A764.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A7A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A7DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A904.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000A9C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AA04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AA38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AA6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AAA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AAE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000ABAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AC3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AD88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000AE84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B3E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B448.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B4D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B57C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B63C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B65C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B6B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B6BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B78C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B7C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B7D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B7F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B8C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B950.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000B9FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BA2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BA5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BA8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BAEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BBE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BC34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BCA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BD3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/8B60/func_8000BDF0.s") diff --git a/src.old/97020.c b/src.old/97020.c new file mode 100644 index 000000000..68a6dddea --- /dev/null +++ b/src.old/97020.c @@ -0,0 +1,34 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010E5B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010E6F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010E740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010E8F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010EA20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010EA68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010EE24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010EEE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010EFA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010F140.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010F964.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010F9AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_8010FC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_80110014.s") + +void func_80110130(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/97020/func_80110138.s") diff --git a/src.old/98BC0.c b/src.old/98BC0.c new file mode 100644 index 000000000..fdb02c309 --- /dev/null +++ b/src.old/98BC0.c @@ -0,0 +1,39 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80110150.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_801103C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80110438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_801105E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80110B00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80110CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80110E94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80110FD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_8011145C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_801114E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111574.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_801117BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111A04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111C4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/98BC0/func_80111ECC.s") diff --git a/src.old/9A980.c b/src.old/9A980.c new file mode 100644 index 000000000..823d68ddc --- /dev/null +++ b/src.old/9A980.c @@ -0,0 +1,781 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80111F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801121E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801123AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011253C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112600.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801126A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112768.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801127D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801128A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801129AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801129C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801129DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801129F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112A0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112B4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112CD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112ED4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80112F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80113028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80113300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801133C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80113F08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80114974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801149C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80114A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80114CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80114CF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80114D54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80114DBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80114E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115070.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011511C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801151BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115330.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801153B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011544C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801154F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011572C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011591C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115AAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115ACC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115C4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115D38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115EAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115EDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115EFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80115F04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801161D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011623C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116260.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801162F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011646C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801164A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801164D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116508.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116B68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116B90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116CC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116CE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116D20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116D40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116D80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116DE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116E40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80116FF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117078.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117098.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801170B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801170D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801170F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117158.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801171F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117210.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801173F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011764C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801176B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801176D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801176F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117718.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117738.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801177B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801177DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117808.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117904.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117AB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117D70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117DD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117E10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117E38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117E88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117EB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117ED8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80117F28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801180B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118130.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801181AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011829C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801182C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801182F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801183A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801183C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801183E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118420.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801184B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801185B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801185D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801185F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118760.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801187A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011884C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011890C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118A60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118BC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118CA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118CC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118D84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118F9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118FC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80118FE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119068.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119090.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801190B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801190DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119108.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119128.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119148.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119168.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119188.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119290.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801192B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801192B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801192C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801192E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801193CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801193EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011940C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011942C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011944C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011946C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011948C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801194AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801194CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801194EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011950C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011952C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011954C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011956C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011958C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801195AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801195CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801195EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011960C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011962C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011964C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011966C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011968C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801196AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801196CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801196EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011970C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011972C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011974C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011976C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011978C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011982C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011984C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011986C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011988C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801198AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801198CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801198EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011990C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011992C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_801199E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119A00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119A20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119A60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119A80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119AC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119AE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119B00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119B80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119BA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119BC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119BE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119C20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119C6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119C98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119CC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119CF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119D1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119D48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119D74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119DE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119E40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119FA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119FC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_80119FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A040.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A198.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A214.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A254.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A294.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A2F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A3B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A3F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A418.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A458.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A478.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A4C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A4E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A538.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A588.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A770.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A7A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A86C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A88C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A8AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A8CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A8EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A94C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A98C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A9AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011A9EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AA7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AB7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AB9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ABBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ABDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ABFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AC1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AC3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AC7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AC9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ACBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ACDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ACFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AD1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AD3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AD5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AD7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AD9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ADBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ADDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011ADFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AE6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AEF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AF50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AFB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AFD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011AFF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B010.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B050.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B0A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B188.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B22C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B3B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B3F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B464.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B528.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B580.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B5AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B5D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B5F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B6B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B6D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B7CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B944.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B964.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B984.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B9A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B9C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/9A980/func_8011B9E4.s") diff --git a/src.old/A4480.c b/src.old/A4480.c new file mode 100644 index 000000000..9fcde1e85 --- /dev/null +++ b/src.old/A4480.c @@ -0,0 +1,207 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011BA10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011BABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011BB98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011BD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011BD30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011BED0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011BF4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C2D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C344.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C4E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C720.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C87C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C8D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011C8F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011CCB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011CF58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011CFE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011CFF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011D0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011D40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011D4A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011D614.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011D67C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011D858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011D9E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DA34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DAF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DC04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DCD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DD18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011DD5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E0E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E190.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E1E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E244.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E31C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E374.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E524.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E548.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011E978.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011EBD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011ED68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011F690.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8011FEF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80120A28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80120AF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80120BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80120CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80120E74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801210B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801210FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121194.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8012122C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801212A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801215DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801217B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801219C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121A04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121C90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121D3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121F14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80121F50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8012209C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122558.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801226FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801229D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122A10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122A80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122C30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122CE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122F08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122F6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122F94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80122FB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80123004.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8012307C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801230E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_8012310C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80123144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80123170.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801231D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80123240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_801232A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/A4480/func_80123354.s") diff --git a/src.old/AC900.c b/src.old/AC900.c new file mode 100644 index 000000000..4548f0d8c --- /dev/null +++ b/src.old/AC900.c @@ -0,0 +1,5 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/AC900/func_80123E90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/AC900/func_8012475C.s") diff --git a/src.old/CA90.c b/src.old/CA90.c new file mode 100644 index 000000000..93add5100 --- /dev/null +++ b/src.old/CA90.c @@ -0,0 +1,95 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000BE90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000BEF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000BF3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000BFA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C044.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C10C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C17C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C2C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000C3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000CE18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000CECC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000CF84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000D030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000D0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000D35C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000DE30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000E324.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000E3F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000E434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000E474.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000E4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000E554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000E818.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000EC98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F054.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F448.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F4B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F4E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F6EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F754.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000F980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000FB10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000FCE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000FD78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000FE2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8000FE64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_8001074C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_80010988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_800109B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/CA90/func_80010B0C.s") diff --git a/src/buffers.h b/src.old/buffers.h similarity index 100% rename from src/buffers.h rename to src.old/buffers.h diff --git a/src/ovl0/lbvector.c b/src.old/ovl0/lbvector.c similarity index 100% rename from src/ovl0/lbvector.c rename to src.old/ovl0/lbvector.c diff --git a/src.old/ovl0/lbvector.h b/src.old/ovl0/lbvector.h new file mode 100644 index 000000000..b128aeaa2 --- /dev/null +++ b/src.old/ovl0/lbvector.h @@ -0,0 +1,26 @@ +#ifndef LBVECTOR_H +#define LBVECTOR_H + +#define AXIS_X 1 +#define AXIS_Y 2 +#define AXIS_Z 4 + +Vector *lbvector_Add(Vector *arg0, Vector *arg1); +Vector *lbvector_Sub(Vector *arg0, Vector *arg1); +Vector *lbvector_Diff(Vector *arg0, Vector *arg1, Vector *arg2); +void vec3_sub_normalize(Vector *arg0, Vector *arg1, Vector *arg2); +Vector *lbvector_Scale(Vector *arg0, f32 arg1); +Vector *lbvector_Shrink(Vector *arg0, f32 arg1); +Vector *func_80018EEC(Vector *arg0, Vector *arg1, f32 arg2); +void func_80018F34(Vector *arg0, f32 arg1, Vector *arg2, f32 arg3); +f32 lbvector_Angle(Vector *arg0, Vector *arg1); +Vector *lbvector_Rotate(Vector *arg0, s32 axis, f32 angle); +Vector *lbvector_Negate(Vector *arg0, s32 flag); +Vector *func_800193C8(Vector *arg0, u32 flags); +Vector *func_800195D8(Vector *arg0, Vector *arg1); +Vector *func_80019648(Vector *arg0, Vector *arg1); +s32 vec3_compare_directions(Vector *arg0, Vector *arg1); +s32 vec3_subtract_compare_directions(Vector *arg0, Vector *arg1, Vector *arg2); +f32 func_800198C0(Vector *arg0, Vector *arg1, Vector *arg2, Vector *arg3); + +#endif // LBVECTOR_H diff --git a/src/ovl0/main.c b/src.old/ovl0/main.c similarity index 100% rename from src/ovl0/main.c rename to src.old/ovl0/main.c diff --git a/src/ovl0/main.h b/src.old/ovl0/main.h similarity index 100% rename from src/ovl0/main.h rename to src.old/ovl0/main.h diff --git a/src/ovl0/memory_layer.c b/src.old/ovl0/memory_layer.c similarity index 100% rename from src/ovl0/memory_layer.c rename to src.old/ovl0/memory_layer.c diff --git a/src/ovl0/object_manager.c b/src.old/ovl0/object_manager.c similarity index 98% rename from src/ovl0/object_manager.c rename to src.old/ovl0/object_manager.c index e6ba9ce93..92a015e1a 100644 --- a/src/ovl0/object_manager.c +++ b/src.old/ovl0/object_manager.c @@ -86,8 +86,8 @@ struct GObjProcess *gGObjProcessHead; // 0x8004A55C struct GObjProcess *D_8004A560[4]; // probably length 4 u32 gGObjProcessCount; // 0x8004A574? -struct GObj *D_8004A578[32]; // probably length 32 based on loop asm -void* D_8004A5F8[32]; // also length 32? lines up with next symbol +struct GObj *omGObjListHead[32]; // probably length 32 based on loop asm +void* omGObjListTail[32]; // also length 32? lines up with next symbol struct GObj *gGObjHead; // 0x8004A67C? file boundary? struct GObj* gHighestPrioDLLinkProcs[33]; // length 33? @@ -279,20 +279,20 @@ void func_800083CC(struct GObj *arg0, struct GObj *arg1) { arg0->unk4 = arg1->unk4; arg1->unk4 = arg0; } else { - arg0->unk4 = D_8004A578[arg0->link]; - D_8004A578[arg0->link] = arg0; + arg0->unk4 = omGObjListHead[arg0->link]; + omGObjListHead[arg0->link] = arg0; } if (arg0->unk4 != 0) { arg0->unk4->unk8 = arg0; } else { - D_8004A5F8[arg0->link] = arg0; + omGObjListTail[arg0->link] = arg0; } } void func_80008434(struct GObj *arg0) { struct GObj *phi_a1; - phi_a1 = D_8004A5F8[arg0->link]; + phi_a1 = omGObjListTail[arg0->link]; while (phi_a1 != 0 && phi_a1->unk10 < arg0->unk10) { phi_a1 = phi_a1->unk8; } @@ -303,14 +303,14 @@ void func_800084A0(struct GObj *arg0) { struct GObj *phi_v0; struct GObj *phi_a1; - phi_v0 = D_8004A578[arg0->link]; + phi_v0 = omGObjListHead[arg0->link]; while (phi_v0 != 0 && arg0->unk10 < phi_v0->unk10) { phi_v0 = phi_v0->unk4; } if (phi_v0 != 0) { phi_a1 = phi_v0->unk8; } else { - phi_a1 = D_8004A5F8[arg0->link]; + phi_a1 = omGObjListTail[arg0->link]; } func_800083CC(arg0, phi_a1); } @@ -319,13 +319,13 @@ void func_80008528(struct GObj *arg0) { if (arg0->unk8 != 0) { arg0->unk8->unk4 = arg0->unk4; } else { - D_8004A578[arg0->link] = arg0->unk4; + omGObjListHead[arg0->link] = arg0->unk4; } if (arg0->unk4 != 0) { arg0->unk4->unk8 = arg0->unk8; return; } - D_8004A5F8[arg0->link] = arg0->unk8; + omGObjListTail[arg0->link] = arg0->unk8; } void omGInsertDLLink(struct GObj *o, struct GObj *highprio_o) { @@ -1267,7 +1267,7 @@ void func_8000AD88(void) { D_8004A7C4 = NULL; D_8004A7D0 = NULL; for (i = 0; i < 32; i++) { - struct GObj *tmp = D_8004A578[i]; + struct GObj *tmp = omGObjListHead[i]; while (tmp != NULL) { if (((tmp->unk44 & 0x40) == 0) && (tmp->unk14 != NULL)) { @@ -1474,7 +1474,7 @@ void func_8000BC34(void) { int i; for (i = 0; i < 32; i++) { - phi_s0 = D_8004A578[i]; + phi_s0 = omGObjListHead[i]; while (phi_s0 != NULL) { func_8000A29C(phi_s0); phi_s0 = phi_s0->unk4; diff --git a/src.old/ovl0/object_manager.h b/src.old/ovl0/object_manager.h new file mode 100644 index 000000000..ec122c30a --- /dev/null +++ b/src.old/ovl0/object_manager.h @@ -0,0 +1,7 @@ +#ifndef OBJMAN_H +#define OBJMAN_H + +#include "ovl0_2_5.h" +extern void omSleep(s32); + +#endif // OBJMAN_H diff --git a/src/ovl0/ovl0.c b/src.old/ovl0/ovl0.c similarity index 100% rename from src/ovl0/ovl0.c rename to src.old/ovl0/ovl0.c diff --git a/src/ovl0/ovl0_1.c b/src.old/ovl0/ovl0_1.c similarity index 100% rename from src/ovl0/ovl0_1.c rename to src.old/ovl0/ovl0_1.c diff --git a/src/ovl0/ovl0_2.c b/src.old/ovl0/ovl0_2.c similarity index 97% rename from src/ovl0/ovl0_2.c rename to src.old/ovl0/ovl0_2.c index 56baf1836..d25feaa45 100644 --- a/src/ovl0/ovl0_2.c +++ b/src.old/ovl0/ovl0_2.c @@ -317,30 +317,30 @@ s32 *func_80004250(void) { GLOBAL_ASM("asm/non_matchings/ovl0/ovl0_2/func_80004250.s") #endif -GLOBAL_ASM("asm/non_matchings/ovl0/ovl0_2/func_800045C0.s") +GLOBAL_ASM("asm/non_matchings/ovl0/ovl0_2/contSendEvent.s") void func_80004624(void) { - struct Ovl0_2_MessageType1 msg; + ContEvent msg; - msg.unk0 = 1; - func_800045C0(&msg); + msg.type = 1; + contSendEvent(&msg); } void func_8000464C(void) { - struct Ovl0_2_MessageType2 msg; + ContEvent evt; - msg.unk0 = 2; - func_800045C0(&msg); + evt.type = 2; + contSendEvent(&evt); } void func_80004674(s32 arg0, s32 arg1) { - struct Ovl0_2_MessageType3 msg; + ContEvent evt; - msg.unk0 = 3; - msg.unkC = arg0; - msg.unk10 = arg1; + evt.type = 3; + evt.unkC = arg0; + evt.unk10 = arg1; - func_800045C0(&msg); + contSendEvent(&evt); } void func_800046A4(s32 arg0) { @@ -349,7 +349,7 @@ void func_800046A4(s32 arg0) { msg.unk0 = 4; msg.unkC = arg0; - func_800045C0(&msg); + contSendEvent(&msg); } void func_800046D0(s32 arg0) { @@ -358,7 +358,7 @@ void func_800046D0(s32 arg0) { msg.unk0 = 6; msg.unkC = arg0; - func_800045C0(&msg); + contSendEvent(&msg); } GLOBAL_ASM("asm/non_matchings/ovl0/ovl0_2/func_800046FC.s") diff --git a/src/ovl0/ovl0_2.h b/src.old/ovl0/ovl0_2.h similarity index 100% rename from src/ovl0/ovl0_2.h rename to src.old/ovl0/ovl0_2.h diff --git a/src/ovl0/ovl0_2_5.c b/src.old/ovl0/ovl0_2_5.c similarity index 100% rename from src/ovl0/ovl0_2_5.c rename to src.old/ovl0/ovl0_2_5.c diff --git a/src/ovl0/ovl0_2_5.h b/src.old/ovl0/ovl0_2_5.h similarity index 99% rename from src/ovl0/ovl0_2_5.h rename to src.old/ovl0/ovl0_2_5.h index a2a5af100..228e38589 100644 --- a/src/ovl0/ovl0_2_5.h +++ b/src.old/ovl0/ovl0_2_5.h @@ -53,6 +53,7 @@ struct GObjThread struct ObjStack *objStack; s32 objStackSize; }; +typedef struct GObjThread GObjThread; struct GObjThreadStack { struct GObjThreadStack *unk0; @@ -434,5 +435,6 @@ struct UnkStructFunc80007380 { u32 unk88; }; +void omSleep(s32); #endif diff --git a/src/ovl0/ovl0_2_5_1.c b/src.old/ovl0/ovl0_2_5_1.c similarity index 100% rename from src/ovl0/ovl0_2_5_1.c rename to src.old/ovl0/ovl0_2_5_1.c diff --git a/src/ovl0/ovl0_3.c b/src.old/ovl0/ovl0_3.c similarity index 100% rename from src/ovl0/ovl0_3.c rename to src.old/ovl0/ovl0_3.c diff --git a/src/ovl0/ovl0_3.h b/src.old/ovl0/ovl0_3.h similarity index 84% rename from src/ovl0/ovl0_3.h rename to src.old/ovl0/ovl0_3.h index 1c26111f3..bfc7fc322 100644 --- a/src/ovl0/ovl0_3.h +++ b/src.old/ovl0/ovl0_3.h @@ -1,3 +1,6 @@ +#ifndef OVL0_3_H +#define OVL0_3_H + struct AnimationUnk6C { struct AnimationUnk6C *next; // it's a list but is it really the next one? u8 unk4; @@ -10,21 +13,7 @@ struct AnimationUnk6C { f32 unk14; }; -// AObj -struct AObj { // TODO: Same as Unk6C? - struct AObj *next; // it's a list but is it really the next one? - u8 unk4; // index - u8 unk5; - u8 unk6; - u8 unk7; - f32 unk8; - f32 unkC; - f32 unk10; - f32 unk14; - f32 unk18; - f32 unk1C; - s32 unk20; -}; + struct Animation { u32 unk0; @@ -87,3 +76,5 @@ struct unk8000BE90Func { u32 unk7C; struct unk8000BF3CFunc* unk80; }; + +#endif diff --git a/src/ovl0/ovl0_4.c b/src.old/ovl0/ovl0_4.c similarity index 100% rename from src/ovl0/ovl0_4.c rename to src.old/ovl0/ovl0_4.c diff --git a/src/ovl0/ovl0_4.h b/src.old/ovl0/ovl0_4.h similarity index 94% rename from src/ovl0/ovl0_4.h rename to src.old/ovl0/ovl0_4.h index afdb324d8..8cc2c22bb 100644 --- a/src/ovl0/ovl0_4.h +++ b/src.old/ovl0/ovl0_4.h @@ -1,3 +1,6 @@ +#ifndef _MAIN_4_H_ +#define _MAIN_4_H_ + struct UnkStruct8004A7F8 { u8 unk0; u8 filler[3]; @@ -61,5 +64,4 @@ struct UnkStruct80014264 { // 00000000 // 00000000 -f32 asinf(f32); -f32 atan2f(f32, f32); +#endif // _MAIN_4_H_ diff --git a/src.old/ovl0/ovl0_5.h b/src.old/ovl0/ovl0_5.h new file mode 100644 index 000000000..719ec5889 --- /dev/null +++ b/src.old/ovl0/ovl0_5.h @@ -0,0 +1,4 @@ +#ifndef VEC_UTILS_H +#define VEC_UTILS_H + +#endif \ No newline at end of file diff --git a/src/ovl0/ovl0_6.c b/src.old/ovl0/ovl0_6.c similarity index 100% rename from src/ovl0/ovl0_6.c rename to src.old/ovl0/ovl0_6.c diff --git a/src/ovl0/ovl0_6.h b/src.old/ovl0/ovl0_6.h similarity index 100% rename from src/ovl0/ovl0_6.h rename to src.old/ovl0/ovl0_6.h diff --git a/src/ovl0/ovl0_7.c b/src.old/ovl0/ovl0_7.c similarity index 100% rename from src/ovl0/ovl0_7.c rename to src.old/ovl0/ovl0_7.c diff --git a/src/ovl0/ovl0_8.c b/src.old/ovl0/ovl0_8.c similarity index 100% rename from src/ovl0/ovl0_8.c rename to src.old/ovl0/ovl0_8.c diff --git a/src/ovl0/ovl0_8.h b/src.old/ovl0/ovl0_8.h similarity index 100% rename from src/ovl0/ovl0_8.h rename to src.old/ovl0/ovl0_8.h diff --git a/src/ovl0/ovl0_9.c b/src.old/ovl0/ovl0_9.c similarity index 100% rename from src/ovl0/ovl0_9.c rename to src.old/ovl0/ovl0_9.c diff --git a/src/ovl0/rdp_reset.c b/src.old/ovl0/rdp_reset.c similarity index 100% rename from src/ovl0/rdp_reset.c rename to src.old/ovl0/rdp_reset.c diff --git a/src/ovl0/s16_sintable.h b/src.old/ovl0/s16_sintable.h similarity index 100% rename from src/ovl0/s16_sintable.h rename to src.old/ovl0/s16_sintable.h diff --git a/src/ovl1/object_process_buffers.c b/src.old/ovl1/object_process_buffers.c similarity index 100% rename from src/ovl1/object_process_buffers.c rename to src.old/ovl1/object_process_buffers.c diff --git a/src.old/ovl1/ovl1.c b/src.old/ovl1/ovl1.c new file mode 100644 index 000000000..f8d6b9870 --- /dev/null +++ b/src.old/ovl1/ovl1.c @@ -0,0 +1,119 @@ +#include +#include + +#include "unk_structs/D_800D6A08.h" + +extern s32 D_800D6AE4; +extern s16 D_800D6AEA; +extern s32 D_800D6AEC; +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B550_ovl1.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B5E8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B69C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B6F0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B72C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B768.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B99C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BA68.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BA74.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BC4C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BD3C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BE04.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BE54.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BF7C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BFA8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BFD4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C0E4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C154.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C18C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C1C8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C350.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C44C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C4E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009E834.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009E8F4.s") + +extern Gfx* gDisplayListHeads[4]; + +void func_800A043C(u32 arg0, u32 arg1) { + func_8009E8F4(arg0, arg1, &gDisplayListHeads[0]); +} + +void func_800A0460(u32 arg0) { + func_800A043C(arg0, 3); +} + +extern u32 D_800D6A14[]; + +void func_800A0480(s32 arg0, u32 arg1) { + if (arg0 > 0) { + if (arg0 < 9) { + D_800D6A14[arg0] = arg1; + } + } +} + +extern s8 D_800BE3E0, D_800BE3E4; + +void func_800A04A4(u32 arg0, u32 arg1) { + D_800BE3E0 = arg0 & 0xFF; + D_800BE3E4 = arg1 & 0xFF; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A04B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A0558.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A09AC.s") + +extern u16 D_800D6AE2; +extern u16 D_800BE3E8, D_800D6AE8; +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A194C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A19EC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A1F30.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2024.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A206C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2080.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A22A8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A22D4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2300.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A238C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2440.s") + + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A24C4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2550.s") diff --git a/src.old/ovl1/ovl1_1.c b/src.old/ovl1/ovl1_1.c new file mode 100644 index 000000000..9d45e7ded --- /dev/null +++ b/src.old/ovl1/ovl1_1.c @@ -0,0 +1,1012 @@ +#include +#include +#include +#include "omCurrentProc.h" +#include "types.h" +#include "ovl0/ovl0_4.h" +#include "ovl0/ovl0_2.h" +#include "ovl0/ovl0_2_5.h" +#include "ovl0/ovl0_6.h" +#include "save_file.h" +u8 ovl1_TamperCheck(void); + +void func_800A6B18(void) ; + + +void load_overlay(u32); + +extern s32 D_800D7288; +extern s32 gGameState; +extern u32 gCurrentLevel; +extern u32 gCurrentWorld; +extern s32 D_800D6B74; +extern s32 D_800D6B60; +extern u32 D_800D6B68; +extern u32 D_800D6B78; +extern u32 D_800BE500; +extern u32 D_800D6B98; +extern s32 D_800BE504, D_800D6B9C; +extern u8 D_800D6B84; +extern u32 D_800BE530; +extern s32 D_800D6F38, D_800D6F3C; +extern u32 D_800BE51C; +extern u32 D_800BE4FC, D_800BE518; +extern u32 D_800BE534; +extern u32 D_800BE520; +extern u32 D_800BE508, D_800BE50C; +extern u32 D_800BE538; +extern u32 D_800BE53C, D_800BE524; +extern u32 D_800BE510; +extern s32 D_800D6BA8; +extern u32 D_800D71E8; + +extern s32 D_800D6B88; +extern s32 gKirbyLives; +extern f32 gKirbyHp; +extern s32 D_800D6E54; +extern f32 D_800D6E58; +extern f32 D_800D6E5C; +extern s32 gKirbyStars; +extern s32 D_800D6B7C; +extern s32 D_800D6B80; +extern s32 D_800D6B44; +extern s32 D_800D6F50; +extern s32 D_800EC9FC; +void func_80154D60_ovl1(u32, u32); + +void load_overlay(u32 ovl); + +void crash_screen_print_gobj_info(struct GObj *gobj) { + crash_screen_printf("gobj id:%d\n", gobj->objId); + crash_screen_printf("df:%x\n", gobj->unk2C); +} + +extern u32 D_8003DE54; +extern struct GObjProcess *D_8004A7D0; +extern u32 D_80048D88, D_80048D8C, D_80048D90; + +OSThread *crash_screen_print_page_3(void) { + OSThread *sp1C; + u8 temp_v1; + + sp1C = NULL; + switch (D_8003DE54) { + case 0: + crash_screen_printf("SYS\n"); + break; + case 1: + // B* function + crash_screen_printf("BF\n"); + if (omCurrentProc != NULL) { + crash_screen_printf("addr:%x\n", omCurrentProc->unk14); + crash_screen_print_gobj_info(omCurrentProc); + } + break; + case 2: + crash_screen_printf("GP\n"); + if (omCurrentProc != NULL) { + crash_screen_printf("gobj:%x\n", (u32) omCurrentProc); + if (D_8004A7D0 != NULL) { + crash_screen_printf("gp:%x\n", (u32) D_8004A7D0); + switch (D_8004A7D0->kind) { + case 0: + crash_screen_printf("gobjthread:%x\n", D_8004A7D0->payload.thread); + crash_screen_printf("stack:%x\n", D_8004A7D0->payload.thread->objStack); + crash_screen_printf("thread pc:%x\n", D_8004A7D0->payload.thread->thread.context.pc); + crash_screen_printf("id:%d\n", D_8004A7D0->payload.thread->thread.id); + crash_screen_printf("ptr:%x\n", D_8004A7D0->entryPoint); + sp1C = &D_8004A7D0->payload.thread->thread; + break; + case 1: + crash_screen_printf("func:%x\n", D_8004A7D0->payload.callback); + break; + } + } + crash_screen_print_gobj_info(omCurrentProc); + } + break; + case 3: + crash_screen_printf("DFC\n"); + if (D_8004A7C8 != 0) { + crash_screen_printf("addr:%x\n", D_8004A7C8->unk2C); + crash_screen_print_gobj_info(D_8004A7C8); + } + break; + case 4: + crash_screen_printf("DFO\n"); + if (D_8004A7C8 != 0) { + crash_screen_printf("cam addr:%x\n", D_8004A7C8->unk2C); + } + if (D_8004A7CC != NULL) { + crash_screen_printf("disp addr:%x\n", D_8004A7CC->unk2C); + crash_screen_print_gobj_info(D_8004A7CC); + } + break; + } + crash_screen_printf("s: %x\n", D_80048D88); + // add these in when this and the giant switch case function are matching + crash_screen_printf("t: %x\n", D_80048D8C); + crash_screen_printf("l: %x\n", D_80048D90); + return sp1C; +} + + +extern u32 D_800BE4F8; +extern u32 D_800D6B48; +extern u32 D_800D6F54; + +extern void *D_800A2904; // struct + +extern u32 D_800D6B18; +extern u8 D_800D6B00[], D_800BE3F0[]; +void func_800A2B9C(void) { + int i; + + D_800D6B18 = 1; + for (i = 0; i < 16; i++) { + if (D_800D6B00[i] != D_800BE3F0[i]) { + D_800D6B18 = 0; + } + D_800D6B00[i] = D_800BE3F0[i]; + } + set_hard_rng_seed(0x3039); + func_80002B88_ovl1(); + gGameState = 1; + D_800BE4F8 = 0; + D_800D6F3C = 0; + D_800D6B48 = D_800D6B44 = -1; + D_800D6F54 = -1; + func_800BB24C(); + func_800208A0_ovl1(2); + func_800A74B0(); + func_80022A38_ovl1(&D_800A2904); + func_800046D0(0x3C); + func_800B8700(); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2C80.s") + +void func_800A2CE4(void) { + D_800D6B88 = D_800EC9FC; + gKirbyLives = 3; + gKirbyHp = 6.0f; + D_800D6E54 = 0; + D_800D6E58 = 0.0f; + D_800D6E5C = 0.0f; + gKirbyStars = 0; + D_800D6B7C = 0; + D_800D6B80 = 0; + D_800D6B44 = -1; + D_800D6F50 = 0; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2D5C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2D68.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2E98.s") + +void func_800A3058(void) { + u32 i; + + switch (osTvType) { + default: + load_overlay(2); + func_80151CEC_ovl4(5); + case 2: + case 1: + func_80004624(); + } + + func_80004624(); + + for (i = 0; i < 4; i++) { + if (D_80048E9C[i] != -1) { + return; + } + } + load_overlay(2); + func_80151CEC_ovl4(4); +} + +void func_800A30E8(void) { + load_overlay(19); + tamper_check_ovl20(); + load_overlay(5); + load_overlay(6); + load_overlay(17); +} + +void load_menu_overlays(void) { + load_overlay(2); + load_overlay(3); +} + +extern u32 D_800BE4F8; +extern u32 D_800D6B8C; +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3150.s") + +void func_800A3228(void) { + +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3230.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A336C.s") + + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3408.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A34C8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s") + +u16 func_800F8560(void); +s32 func_80151CEC_ovl4(s32 arg0); + +// https://decomp.me/scratch/iuJKf +#ifdef NON_MATCHING +void game_tick(s32 arg0) { + s32 tmpState; + + func_800BE320(&D_800D7288); + func_800A2B9C(); + func_800A6B18(); + load_overlay(1); + func_800A2C80(); + func_800A3058(); + while (1) { + func_800A2C80(); + switch (gGameState) { /* switch 1 */ + default: continue; /* switch 1 */ + case 1: /* switch 1 */ + load_overlay(2); + func_80151CEC_ovl4(0); + gGameState = 2; + continue; + case 2: /* switch 1 */ + if (D_800D6B74 == 1) { + load_overlay(4); + func_80154D60_ovl1(0, 1); + } + gGameState = 3; + D_800D6B60 = 3; + continue; + case 3: /* switch 1 */ + load_overlay(2); + if (func_80151CEC_ovl4(1) == 2) { + gGameState = 4; + } else { + func_800A3228(); + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + } + continue; + case 4: /* switch 1 */ + func_800A3150(5); + gGameState = 5; + D_800D6B60 = 5; + continue; + case 5: /* switch 1 */ + load_overlay(2); + if (func_80151CEC_ovl4(1) == 2) { + gGameState = 6; + } else { + func_800A3228(); + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + } + continue; + case 6: /* switch 1 */ + func_800A3150(6); + gGameState = 7; + D_800D6B60 = 7; + continue; + case 7: /* switch 1 */ + load_overlay(2); + if (func_80151CEC_ovl4(1) == 2) { + gGameState = 8; + } else { + func_800A3228(); + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + } + continue; + case 8: /* switch 1 */ + func_800A3150(3); + gGameState = 9; + D_800D6B60 = 9; + continue; + case 9: /* switch 1 */ + load_overlay(2); + if (func_80151CEC_ovl4(1) == 2) { + D_800D6B74 = 1; + gGameState = 2; + } else { + func_800A3228(); + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + } + continue; + case 10: /* switch 1 */ + load_menu_overlays(); + func_800A2CE4(); + func_800B87E0(); + func_80158048_ovl1(); + func_800B8AD4(D_800D6B88); + if (gGameState == 0xB) { + func_800A3408(); + } + continue; + case 11: /* switch 1 */ + if (check_cutscene_watched(1) == 0) { + load_overlay(4); + set_cutscene_watched(1, D_800D6B88); + func_800B9C50(D_800D6B88); + func_80154D60_ovl1(1, 2); + } + load_menu_overlays(); + func_800A2D5C(); + func_80159A54_ovl1(); + if (D_800D6B78 != 0) { + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + } else { + D_800BE500 = D_800D6B98; + if (D_800BE500 == 6) { + D_800BE504 = D_800D6B9C; + func_800A2D68(); + gGameState = 0xF; + } else { + gGameState = 0xC; + D_800D6B84 = 1; + } + } + continue; + case 12: /* switch 1 */ + load_menu_overlays(); + func_800A2D68(); + func_8015531C_ovl1(); + if (D_800D6B78 == 0) { + D_800BE530 = D_800D6B9C; + D_800BE504 = D_800D6B9C; + gGameState = 0xF; + } else { + gGameState = 0xB; + } + D_800D6F38 = 0; + continue; + case 14: /* switch 1 */ + gGameState = 0xF; + continue; + case 15: /* switch 1 */ + func_800A30E8(); + D_800D6F3C = 0; + func_800A2E98(); + func_800F6AD4(0); + switch (D_800BE4F8) { /* switch 2 */ + case 6: /* switch 2 */ + gGameState = 0x11; + if (--gKirbyLives > 0) { + switch (func_800F8560()) { /* switch 4; irregular */ + case 2: /* switch 4 */ + gKirbyHp = 6.0f; + D_800D6E54 = 0; + func_800A74D8(); + gGameState = 0xC; + D_800D6B84 = 0; + break; + default: /* switch 4 */ + case 9: /* switch 4 */ + gKirbyHp = 6.0f; + D_800D6E54 = 0; + D_800BE4FC = D_800BE518; + + D_800BE534 = D_800BE51C; + D_800BE508 = D_800BE51C; + + D_800BE538 = D_800BE520; + D_800BE50C = D_800BE520; + + D_800BE53C = D_800BE524; + D_800BE510 = D_800BE53C; + gGameState = 0xF; + break; + } + } + func_800A74D8(); + break; + case 2: /* switch 2 */ + func_80020C88_ovl1(); + func_800A3230(); + break; + case 3: /* switch 2 */ + if ((gCurrentLevel == D_800D6B9C + 1)) { + D_800D6B9C++; + if ((gCurrentWorld == (D_800D6B98 + 1))) { + gCurrentLevel++; + func_800B9C50(D_800D6B88); + D_800D6B80 = 1; + } + } + func_800A74D8(); + if (func_800F8560() != 9) { + gGameState = 0xC; + D_800D6B84 = 0; + } else { + gGameState = 0xB; + D_800D6B84 = 0; + } + break; + case 4: /* switch 2 */ + switch (D_800BE500) { /* switch 3 */ + case 0: /* switch 3 */ + case 1: /* switch 3 */ + case 2: /* switch 3 */ + case 3: /* switch 3 */ + case 4: /* switch 3 */ + if ((gCurrentWorld == (D_800D6B98 + 1)) && (gCurrentWorld < 7)) { + gCurrentWorld++; + gCurrentLevel = 1; + D_800D6B7C = 1; + func_800B9C50(D_800D6B88); + } + func_800A74D8(); + func_800A336C(); + if (D_800D6B7C != 0) { + gGameState = 0xB; + } else { + gGameState = 0xC; + } + break; + case 5: /* switch 3 */ + func_800A74D8(); + if (ovl1_TamperCheck() == 0) { + gGameState = 0xB; + } else { + if ((gCurrentWorld == (D_800D6B98 + 1)) && (gCurrentWorld < 7)) { + gCurrentWorld++; + gCurrentLevel = 1; + func_800B9D60(D_800D6B88, 5); + } + func_800B9C50(D_800D6B88); + gGameState = 0x12; + if (D_800D6BA8 == 0x64) { + gGameState = 0xC; + if (check_cutscene_watched(0xD) == 0) { + D_800BE500 = 6; + D_800D6B98 = 6; + // dereference? + D_800BE504 = 0; + D_800BE508 = 0; + D_800D6B9C = 0; + load_overlay(4); + set_cutscene_watched(0xD, D_800D6B88); + func_800B9C50(D_800D6B88); + func_80154D60_ovl1(0xD, 2); + func_800A2D68(); + func_800A2E98(); + gGameState = 0xF; + } + } + } + break; + } + break; + case 7: /* switch 2 */ + if ((gCurrentWorld == (D_800D6B98 + 1)) && (gCurrentWorld < 8)) { + gCurrentWorld = 8; gCurrentLevel = 1; + func_800B9D60(D_800D6B88, 6); + } + func_800A74D8(); + gGameState = 0x13; + break; + case 0: /* switch 2 */ + func_800A74D8(); + if (D_800BE500 != 6) { + gGameState = 0xC; + } else { + gGameState = 0xB; + } + D_800D6B84 = 0; + break; + default: /* switch 2 */ + gGameState = 1; + break; + } // switch 2 + func_800B9C50(D_800D6B88); + continue; + case 16: /* switch 1 */ + case 17: /* switch 1 */ + load_menu_overlays(); + func_80159EFC_ovl1(); + gGameState = 1; + continue; + case 21: /* switch 1 */ + load_overlay(4); + func_80154D60_ovl1(D_800D71E8, 0x15); + tmpState = gGameState; + gGameState = 0x17; + D_800D6B68 = tmpState; + continue; + case 34: /* switch 1 */ + func_800A36C0(); + continue; + case 18: /* switch 1 */ + load_overlay(4); + set_cutscene_watched(0x11, D_800D6B88); + set_cutscene_watched(0x13, D_800D6B88); + func_800B9C50(D_800D6B88); + func_80154D60_ovl1(0xE, 2); + gGameState = 1; + continue; + case 19: /* switch 1 */ + load_overlay(4); + set_cutscene_watched(0xD, D_800D6B88); + set_cutscene_watched(0x11, D_800D6B88); + set_cutscene_watched(0x12, D_800D6B88); + set_cutscene_watched(0x13, D_800D6B88); + set_cutscene_watched(0x10, D_800D6B88); + func_800B9C50(D_800D6B88); + func_80154D60_ovl1(0xF, 0xA); + gGameState = 1; + continue; + case 33: /* switch 1 */ + func_800A34C8(); + continue; + case 27: /* switch 1 */ + load_menu_overlays(); + func_8017F594_ovl1(); + continue; + case 28: /* switch 1 */ + load_menu_overlays(); + func_8017CC3C_ovl1(); + continue; + case 25: /* switch 1 */ + load_menu_overlays(); + func_801822AC_ovl1(); + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + continue; + case 23: /* switch 1 */ + load_menu_overlays(); + func_801802A8_ovl1(); + continue; + case 22: /* switch 1 */ + load_menu_overlays(); + func_8017ECA4_ovl1(); + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + continue; + case 26: /* switch 1 */ + load_menu_overlays(); + func_80182FE8_ovl1(); + continue; + case 24: /* switch 1 */ + load_menu_overlays(); + func_80185EEC_ovl1(); + tmpState = gGameState; + gGameState = 0xA; + D_800D6B68 = tmpState; + continue; + case 29: /* switch 1 */ + load_menu_overlays(); + func_80177A30_ovl1(); + continue; + case 30: /* switch 1 */ + load_menu_overlays(); + func_8016FAB0_ovl1(); + continue; + case 31: /* switch 1 */ + load_menu_overlays(); + func_80165370_ovl1(); + continue; + // fake case + case 32: + load_menu_overlays(); + func_80179D48_ovl1(); + continue; + } + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A377C.s") +#endif + + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A41B0.s") + +void print_error_stub(char* arg0, ...) { + +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A428C.s") + +extern u32 *D_800BE5CC, *D_800BE5C4; +extern u32 *D_800BE5C8; + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4414.s") + + +// executes the virtual function at index arg0 +void call_virtual_function(u32 arg0, u32 arg1, VTABLE callback) { + // __thiscall? But rarely any of these functions use omCurrentProc... + if (arg0 < arg1) callback[arg0](omCurrentProc); +} + +extern f32 D_800D5C30; +f32 vec3_dot_product(Vector *arg0, Vector *arg1) { + f32 dotProduct; + f32 dotProductMag; + + dotProduct = (arg0->x * arg1->x) + (arg0->y * arg1->y) + (arg0->z * arg1->z); + dotProductMag = ABSF(dotProduct); + if (D_800D5C30 < dotProductMag) { // denorm check; D_800D5C30 = 0.00001f + return dotProduct; + } + return 0.0f; +} + +f32 vec3_mag_square(Vector *arg0) { + f32 x = arg0->x; + f32 y = arg0->y; + f32 z = arg0->z; + return (x * x) + (y * y) + (z * z); +} + +f32 vec3_dist_square(Vector *v1, Vector *v2) { + f32 x2 = v2->x - v1->x; + f32 y2 = v2->y - v1->y; + f32 z2 = v2->z - v1->z; + return (x2 * x2) + (y2 * y2) + (z2 * z2); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4598.s") + +// copy of HS64_MkRotationMtxF??? +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A465C.s") + +void func_800A4794(Vector *arg0, struct UnkStruct8004A7C4_3C *arg1) { + Mat4 finalMtx; + Mat4 intermediateMtx; + + if (arg1 == 0) { + arg1 = omCurrentProc->unk3C; + } + guMtxIdentF(&finalMtx); + do { + if ((arg1->scaleVec.x != 1.0f) || (arg1->scaleVec.y != 1.0f) || (arg1->scaleVec.z != 1.0f)) { + HS64_MkScaleMtxF(&intermediateMtx, arg1->scaleVec.x, arg1->scaleVec.y, arg1->scaleVec.z); + guMtxCatF(&finalMtx, &intermediateMtx, &finalMtx); + } + if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { + HS64_MkRotationMtxF(&intermediateMtx, arg1->angleVec.x, arg1->angleVec.y, arg1->angleVec.z); + guMtxCatF(&finalMtx, &intermediateMtx, &finalMtx); + } + if ((arg1->posVec.x != 0.0f) || (arg1->posVec.y != 0.0f) || (arg1->posVec.z != 0.0f)) { + HS64_MkTranslateMtxF(&intermediateMtx, arg1->posVec.x, arg1->posVec.y, arg1->posVec.z); + guMtxCatF(&finalMtx, &intermediateMtx, &finalMtx); + } + arg1 = arg1->unk14; + } while ((u32)arg1 != 1); // why? + arg0->x = finalMtx[3][0]; + arg0->y = finalMtx[3][1]; + arg0->z = finalMtx[3][2]; +} + +void func_800A4958(Vector *dst, struct UnkStruct8004A7C4_3C *arg1, Vector *src) { + Mat4 sp90; + Mat4 sp50; + + if (arg1 == 0) { + arg1 = omCurrentProc->unk3C; + } + guMtxIdentF(&sp90); + do { + if ((arg1->scaleVec.x != 1.0f) || (arg1->scaleVec.y != 1.0f) || (arg1->scaleVec.z != 1.0f)) { + HS64_MkScaleMtxF(&sp50, arg1->scaleVec.x, arg1->scaleVec.y, arg1->scaleVec.z); + guMtxCatF(&sp90, &sp50, &sp90); + } + if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { + HS64_MkRotationMtxF(&sp50, arg1->angleVec.x, arg1->angleVec.y, arg1->angleVec.z); + guMtxCatF(&sp90, &sp50, &sp90); + } + if ((arg1->posVec.x != 0.0f) || (arg1->posVec.y != 0.0f) || (arg1->posVec.z != 0.0f)) { + HS64_MkTranslateMtxF(&sp50, arg1->posVec.x, arg1->posVec.y, arg1->posVec.z); + guMtxCatF(&sp90, &sp50, &sp90); + } + arg1 = arg1->unk14; + } while ((u32)arg1 != 1); // why + guMtxXFMF(sp90, + src->x, + src->y, + src->z, + + &dst->x, + &dst->y, + &dst->z + ); +} + +void func_800A4B34(Vector *dst, struct UnkStruct8004A7C4_3C *arg1) { + Vector tmp; + Mat4 sp7C; + Mat4 sp3C; + + if (arg1 == 0) { + arg1 = omCurrentProc->unk3C; + } + guMtxIdentF(&sp7C); + do { + if ((arg1->scaleVec.x != 1.0f) || (arg1->scaleVec.y != 1.0f) || (arg1->scaleVec.z != 1.0f)) { + HS64_MkScaleMtxF(&sp3C, 1.0f / arg1->scaleVec.x, 1.0f / arg1->scaleVec.y, 1.0f / arg1->scaleVec.z); + guMtxCatF(&sp3C, &sp7C, &sp7C); + } + if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { + func_800A465C(&sp3C, -arg1->angleVec.x, -arg1->angleVec.y, -arg1->angleVec.z); + guMtxCatF(&sp3C, &sp7C, &sp7C); + } + if ((arg1->posVec.x != 0.0f) || (arg1->posVec.y != 0.0f) || (arg1->posVec.z != 0.0f)) { + HS64_MkTranslateMtxF(&sp3C, -arg1->posVec.x, -arg1->posVec.y, -arg1->posVec.z); + guMtxCatF(&sp3C, &sp7C, &sp7C); + } + arg1 = arg1->unk14; + } while ((u32) arg1 != 1); + + tmp.x = dst->x; + tmp.y = dst->y; + tmp.z = dst->z; + + dst->x = ((sp7C[0][0] * tmp.x) + (sp7C[1][0] * tmp.y) + (sp7C[2][0] * tmp.z)) + + sp7C[3][0]; + dst->y = ((sp7C[0][1] * tmp.x) + (sp7C[1][1] * tmp.y) + (sp7C[2][1] * tmp.z)) + + sp7C[3][1]; + dst->z = ((sp7C[0][2] * tmp.x) + (sp7C[1][2] * tmp.y) + (sp7C[2][2] * tmp.z)) + + sp7C[3][2]; +} + +// rodata floats +#ifdef NON_MATCHING +extern f32 asinf(f32); +extern f32 atan2f(f32, f32); +extern const f32 D_800D5C3C, D_800D5C40; +void func_800A4DB8(Vector *arg0, struct UnkStruct8004A7C4_3C *arg1) { + Mat4 sp80; + Mat4 sp40; + + if (arg1 == 0) { + arg1 = omCurrentProc->unk3C; + } + guMtxIdentF(&sp80); + do { + if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { + HS64_MkRotationMtxF(&sp40, arg1->angleVec.x, arg1->angleVec.y, arg1->angleVec.z); + guMtxCatF(&sp80, &sp40, &sp80); + } + arg1 = arg1->unk14; + } while ((u32)arg1 != 1); + + arg0->y = asinf(-sp80[0][2]); + + if ((arg0->y == (M_PIF/2)) || (arg0->y == D_800D5C40)) { + arg0->x = (arg0->y == (M_PIF/2)) ? atan2f(sp80[1][0], sp80[1][1]) : atan2f(-sp80[1][0], sp80[1][1]); + arg0->z = 0.0f; + } else { + arg0->x = atan2f(sp80[1][2], sp80[2][2]); + arg0->z = atan2f(sp80[0][1], sp80[0][0]); + } + func_800A4598(arg0); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4DB8.s") +#endif + +s32 func_800A4F48(s32 arg0, Vector *arg1, f32 arg2, f32 arg3); +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4F48.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A509C.s") + +void copy_controller_inputs_to_kirby_controller(void) { + if (!kirby_in_inactionable_state()) { + gKirbyController.buttonHeld = gPlayerControllers->buttonHeld; + gKirbyController.buttonPressed = gPlayerControllers->buttonPressed; + gKirbyController.buttonHeldLong = gPlayerControllers->buttonHeldLong; + gKirbyController.buttonReleased = gPlayerControllers->buttonReleased; + gKirbyController.stickX = gPlayerControllers->stickX; + gKirbyController.stickY = gPlayerControllers->stickY; + } else { + gKirbyController.buttonHeld = 0; + gKirbyController.buttonPressed = 0; + gKirbyController.buttonHeldLong = 0; + gKirbyController.buttonReleased = 0; + gKirbyController.stickX = 0; + gKirbyController.stickY = 0; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A52F0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5404.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5468.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A54FC.s") + + + +s32 func_800A5560(u32 cont) { + s32 v1; + + if (cont >= 4) { + cont = 3; + } + + v1 = gPlayerControllers[cont].stickX; + + if (v1 > 0) { + if (v1 < 8) { + v1 = 8; + } + if (v1 >= 0x49) { + v1 = 0x48; + } + v1 -= 8; + } + else if (v1 < 0) { + if (v1 >= -7) { + v1 = -8; + } + if (v1 < -0x48) { + v1 = -0x48; + } + v1 += 8; + } + return v1; +} + +s32 func_800A55E0(u32 cont) { + s32 v1; + + if (cont >= 4) { + cont = 3; + } + v1 = gPlayerControllers[cont].stickY; + if (v1 > 0) { + if (v1 < 8) { + v1 = 8; + } + if (v1 >= 0x49) { + v1 = 0x48; + } + v1 -= 8; + } + else if (v1 < 0) { + if (v1 >= -7) { + v1 = -8; + } + if (v1 < -0x48) { + v1 = -0x48; + } + v1 = v1 + 8; + } + return v1; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5660.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A56F4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5744.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A57A0.s") + +extern s32 D_800D6B24; +extern s16 D_800D6B30; +extern s16 D_800D6B2C, D_800D6B2E; +extern u8 D_800D6B2B; +void func_800A57C8(s32 arg0) { + ohSleep(1); + while (1) { + D_800D6B2E += D_800D6B2C; + if (D_800D6B2E <= 0) { + D_800D6B2E = 0; + break; + } else if (D_800D6B2E >= 0xFF) { + D_800D6B2E = 0xFF; + break; + } else { + ohSleep(1); + } + } + D_800D6B30 += 1; + switch (D_800D6B2B) { + case 0: + D_800D6B24 = 0; + ohSleep(1); + func_8000A29C_ovl1(omCurrentProc); + ohSleep(1); + break; + case 1: + ohSleep(1); + break; + case 2: + ohSleep(1); + func_800067B8_ovl1(); + ohSleep(1); + D_800D6B24 = 0; + break; + default: + break; + } +} + + +extern s32 D_800D6B3C, D_800D6B40, D_800D6B34, D_800D6B38; +extern u8 D_800D6B28, D_800D6B29, D_800D6B2A, D_800D6B2B; +extern Gfx *gDisplayListHeads[]; +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A58E4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5A14.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5AD8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5B14.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5B3C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5B64.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5BDC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5C60.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5D24.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5D88.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5F94.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6208.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A62D8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6534.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6820.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A699C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6A18.s") + +void func_800A6B18(void) { + +} + +extern void *D_800BE8A0[]; +void load_overlay(u32 arg0) { + while (arg0 >= 0x14) { + // ...were they going to do anything to remedy this issue? + } + dma_overlay_load(D_800BE8A0[arg0]); +} + +// some sort of integrity check +u8 ovl1_TamperCheck(void) { + s32 buf[4]; + + dma_read(0x00000F10, &buf, 0x10); + if (buf[0] != 0x04080040) { + return 0; + } else if (buf[1] != 0x02081040) { + return 0; + } + else return 1; +} + diff --git a/src/ovl1/ovl1_1.h b/src.old/ovl1/ovl1_1.h similarity index 71% rename from src/ovl1/ovl1_1.h rename to src.old/ovl1/ovl1_1.h index 22151caf3..939095c48 100644 --- a/src/ovl1/ovl1_1.h +++ b/src.old/ovl1/ovl1_1.h @@ -2,5 +2,6 @@ #define OVL1_1_H f32 vec3_dist_square(Vector *v1, Vector *v2); +void func_800A41B0(f32); -#endif; +#endif diff --git a/src.old/ovl1/ovl1_10.c b/src.old/ovl1/ovl1_10.c new file mode 100644 index 000000000..f7006a591 --- /dev/null +++ b/src.old/ovl1/ovl1_10.c @@ -0,0 +1,803 @@ +#include +#include +#include "ovl1/ovl1_6.h" +#include "D_8004A7C4.h" +#include "ovl0/ovl0_2.h" // D_80048E9C + +extern OSMesgQueue D_800ED4C8; +extern u64 D_800ECF50[0x3D0]; +extern OSThread D_800ECD70; +void func_800BAD0C(void *); + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BA7A0(u8 *arg0, void *arg1, ? arg2) { + u16 *temp_t0; + u16 *temp_v0; + u16 temp_t3; + u16 temp_v1; + u16 var_a3; + u32 temp_t6; + + var_a3 = arg1->unk2; + if (var_a3 == 0) { + do { + temp_v0 = arg1->unk10; + temp_v1 = *temp_v0; + temp_t6 = temp_v1 >> 0xD; + switch (temp_t6) { + case 0: + var_a3 = arg1->unk2; + arg1->unk10 = *(&D_800D5238 + (arg1->unk0 * 4)); + break; + case 1: + arg1->unk2 = temp_v1 & 0x1FFF; + arg1->unk10 = temp_v0 + 2; + if (*arg0 == 0) { + func_800047F0(arg2); + func_800047B0(arg2); + arg1->unk1 = 1; + *arg0 = 1; + } + var_a3 = arg1->unk2; + break; + case 2: + arg1->unk2 = temp_v1 & 0x1FFF; + arg1->unk10 = temp_v0 + 2; + if (*arg0 != 0) { + func_800047D0(arg2); + arg1->unk1 = 0; + *arg0 = 0; + } + var_a3 = arg1->unk2; + break; + case 3: + temp_t0 = temp_v0 + 2; + arg1->unk4 = temp_v1 & 0x1FFF; + arg1->unk10 = temp_t0; + arg1->unkC = temp_t0; + var_a3 = arg1->unk2; + break; + case 4: + temp_t3 = arg1->unk4 - 1; + arg1->unk4 = temp_t3; + if (temp_t3 & 0xFFFF) { + var_a3 = arg1->unk2; + arg1->unk10 = arg1->unkC; + } else { + var_a3 = arg1->unk2; + arg1->unk10 = arg1->unk10 + 2; + } + break; + } + } while (var_a3 == 0); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/0.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BA90C(s32 arg0, void *arg1) { + u16 *temp_t6_2; + u16 *temp_v1; + u16 temp_a0; + u16 temp_t1; + u16 temp_t3; + u16 temp_t9; + u16 var_v0; + u32 temp_t6; + + var_v0 = arg1->unk2; + if (var_v0 == 0) { + do { + temp_v1 = arg1->unk10; + temp_a0 = *temp_v1; + temp_t6 = temp_a0 >> 0xD; + switch (temp_t6) { + case 0: + var_v0 = arg1->unk2; + arg1->unk10 = *(&D_800D5238 + (arg1->unk0 * 4)); + break; + case 1: + temp_t1 = temp_a0 & 0x1FFF; + arg1->unk2 = temp_t1; + arg1->unk10 = temp_v1 + 2; + arg1->unk1 = 1; + var_v0 = temp_t1 & 0xFFFF; + break; + case 2: + temp_t3 = temp_a0 & 0x1FFF; + arg1->unk2 = temp_t3; + arg1->unk10 = temp_v1 + 2; + arg1->unk1 = 0; + var_v0 = temp_t3 & 0xFFFF; + break; + case 3: + temp_t6_2 = temp_v1 + 2; + arg1->unk4 = temp_a0 & 0x1FFF; + arg1->unk10 = temp_t6_2; + arg1->unkC = temp_t6_2; + var_v0 = arg1->unk2; + break; + case 4: + temp_t9 = arg1->unk4 - 1; + arg1->unk4 = temp_t9; + if (temp_t9 & 0xFFFF) { + var_v0 = arg1->unk2; + arg1->unk10 = arg1->unkC; + } else { + var_v0 = arg1->unk2; + arg1->unk10 = arg1->unk10 + 2; + } + break; + } + } while (var_v0 == 0); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/1.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +void func_800BAA04(void *arg0, void *arg1) { + void *temp_a2; + void *temp_v0; + void *temp_v1; + + temp_v1 = arg1->unk4; + temp_v0 = arg0->unk4->unk8; + arg1->unk0->unk10 = 0; + if (temp_v1 != NULL) { + temp_a2 = arg1->unk8; + if (temp_a2->unk4 == NULL) { + arg0->unk4 = arg1->unk4; + } else { + temp_a2->unk4 = temp_v1; + temp_v1->unk8 = arg1->unk8; + } + arg1->unk4 = temp_v0->unk4; + temp_v0->unk4 = arg1; + arg1->unk8 = temp_v0; + arg0->unk4->unk8 = arg1; + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/2.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +s32 func_800BAA64(void *arg0) { + u16 *var_v0; + u16 var_v1; + u32 temp_t7; + + var_v1 = arg0->unk2; + var_v0 = arg0->unk10; + if (var_v1 == 0) { +loop_1: + temp_t7 = *var_v0 >> 0xD; + switch (temp_t7) { + case 0: + return 1; + case 1: + case 2: + var_v1 = 1; + default: +block_9: + if (var_v1 != 0) { + /* Duplicate return node #10. Try simplifying control flow for better match */ + return 0; + } + goto loop_1; + case 3: + var_v0 += 2; + goto block_9; + case 4: + if (arg0->unk4 == 1) { + var_v0 += 2; + } else { + var_v0 = arg0->unkC; + } + goto block_9; + } + } else { + return 0; + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/3.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BAAE4(void *arg0) { + s32 temp_v0; + void *temp_a0; + void *var_s0; + + var_s0 = arg0->unk4; + if (var_s0 != NULL) { +loop_1: + temp_a0 = var_s0->unk0; + if (temp_a0->unk10 != 0) { + temp_v0 = temp_a0->unk8; + if ((temp_v0 == 0) || ((temp_v0 < 0) && (func_800BAA64(temp_a0) != 0))) { + func_800BAA04(arg0, var_s0); + var_s0 = arg0->unk4; + } else { + var_s0 = var_s0->unk4; + } + if (var_s0 != NULL) { + goto loop_1; + } + } + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/4.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +s32 func_800BAB68(u8 *arg0, void *arg1, s32 arg2) { + u8 temp_v0; + + if (arg1->unk10 == 0) { + func_800047F0(arg2, arg0); + func_800047D0(arg2); + if (*arg0 != 0) { + *arg0 = 0; + } + return 1; + } + temp_v0 = *arg0; + if (arg1->unk1 != temp_v0) { + if (temp_v0 != 0) { + func_800047D0(arg2, arg0); + *arg0 = 0; + } else { + func_800047B0(arg2, arg0); + *arg0 = 1; + } + } + return 0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/5.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BAC0C(void *arg0) { + OSMesgQueue *temp_a0; + s32 var_s0; + s32 var_s0_2; + u32 temp_t6; + + temp_t6 = arg0->unk0; + switch (temp_t6) { + case 0: + func_800BB08C(arg0->unkC, arg0->unk10, arg0->unk14); + break; + case 2: + func_800BB198(arg0->unkC, arg0->unk10); + break; + case 1: + func_800BB12C(arg0->unkC); + break; + case 3: + var_s0 = 0; + do { + func_800BB12C(var_s0); + var_s0 += 1; + } while (var_s0 != 4); + break; + case 4: + D_800ED4C0 = 1; + break; + case 5: + D_800ED4C0 = 0; + var_s0_2 = 0; + do { + func_800BB12C(var_s0_2); + var_s0_2 += 1; + } while (var_s0_2 != 4); + break; + } + temp_a0 = arg0->unk8; + if (temp_a0 != NULL) { + osSendMesg(temp_a0, arg0->unk4, 0); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/6.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BAD0C(void *arg0) { + ? sp78; + ? sp58; + void *sp54; + ? *var_s2; + s32 temp_v0; + s32 temp_v0_2; + s32 var_s3; + void *temp_s0; + void *temp_s0_2; + void *temp_s1; + void *var_s1; + + func_800009E8(&sp78, &D_800ED4C8, &sp58, 8); +loop_1: + osRecvMesg(&D_800ED4C8, &sp54, 1); + var_s3 = 0; + var_s2 = &D_800ED4A0; + if (sp54 == 1) { + do { + if (var_s2->unk4->unk0->unk10 != 0) { + func_800BAAE4(var_s2); + temp_s1 = var_s2->unk4; + temp_s0 = temp_s1->unk0; + if (func_800BAB68(var_s2, temp_s0, var_s3) == 0) { + func_800BA7A0(var_s2, temp_s0, var_s3); + temp_v0 = temp_s0->unk8; + temp_s0->unk2 = temp_s0->unk2 - 1; + if (temp_v0 > 0) { + temp_s0->unk8 = temp_v0 - 1; + } + var_s1 = temp_s1->unk4; + if (var_s1 != NULL) { +loop_7: + temp_s0_2 = var_s1->unk0; + if (temp_s0_2->unk10 != 0) { + func_800BA90C(var_s2, temp_s0_2); + temp_v0_2 = temp_s0_2->unk8; + temp_s0_2->unk2 = temp_s0_2->unk2 - 1; + if (temp_v0_2 > 0) { + temp_s0_2->unk8 = temp_v0_2 - 1; + } + var_s1 = var_s1->unk4; + if (var_s1 != NULL) { + goto loop_7; + } + } + } + } + } + var_s3 += 1; + var_s2 += 8; + } while (var_s3 != 4); + goto loop_1; + } + func_800BAC0C(sp54); + goto loop_1; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/7.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +s32 func_800BAEB0(void *arg0, s32 arg1, s32 arg2) { + s32 temp_v1_2; + void *temp_v1; + void *var_v0; + + var_v0 = arg0->unk4; + if (var_v0 != NULL) { +loop_1: + temp_v1 = var_v0->unk0; + if (temp_v1 != NULL) { + if ((temp_v1->unk10 != 0) && (arg1 == temp_v1->unk0)) { + if (arg2 != 0) { + temp_v1_2 = temp_v1->unk8; + if ((temp_v1_2 > 0) && (temp_v1_2 < arg2)) { + temp_v1->unk8 = arg2; + return 1; + } + goto block_10; + } + temp_v1->unk4 = 0; + temp_v1->unk2 = 0; + temp_v1->unk10 = *(&D_800D5238 + (arg1 * 4)); + return 1; + } +block_10: + var_v0 = var_v0->unk4; + if (var_v0 == NULL) { + /* Duplicate return node #11. Try simplifying control flow for better match */ + return 0; + } + goto loop_1; + } + return 0; + } + return 0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/8.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void *func_800BAF50(void *arg0, s32 arg1) { + void *temp_a1; + void *temp_t1; + void *temp_v0; + void *temp_v1; + void *var_a2; + + temp_v0 = arg0->unk4; + temp_v1 = temp_v0->unk8; + var_a2 = temp_v0; + if (temp_v0 != NULL) { +loop_2: + temp_a1 = var_a2->unk0; + if (temp_a1->unk10 != 0) { + if (*(&D_800D5274 + arg1) >= *(&D_800D5274 + temp_a1->unk0)) { + if (var_a2 == temp_v0) { + temp_v1->unk8->unk4 = temp_v1->unk4; + arg0->unk4 = temp_v1; + temp_v1->unk4 = var_a2; + var_a2->unk8 = temp_v1; + return temp_v1->unk0; + } + if (var_a2 != temp_v1) { + temp_v1->unk8->unk4 = temp_v1->unk4; + arg0->unk4->unk8 = temp_v1->unk8; + temp_t1 = var_a2->unk8; + temp_v1->unk8 = temp_t1; + temp_t1->unk4 = temp_v1; + temp_v1->unk4 = var_a2; + var_a2->unk8 = temp_v1; + return temp_v1->unk0; + } + return temp_v1->unk0; + } + var_a2 = var_a2->unk4; + if (var_a2 == NULL) { + /* Duplicate return node #11. Try simplifying control flow for better match */ + return NULL; + } + goto loop_2; + } + return temp_a1; + } + return NULL; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/9.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB028(void *arg0) { + OSMesg sp34; + OSMesgQueue sp1C; + + osCreateMesgQueue(&sp1C, &sp34, 1); + arg0->unk4 = 1; + arg0->unk8 = &sp1C; + osSendMesg(&D_800ED4C8, arg0, 0); + osRecvMesg(&sp1C, NULL, 1); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/10.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB08C(s32 arg0, s32 arg1, s32 arg2) { + void *sp1C; + void *temp_a0; + void *temp_v0; + + if (D_800ED4C0 != 0) { + temp_a0 = (arg0 * 8) + &D_800ED4A0; + sp1C = temp_a0; + if (func_800BAEB0(temp_a0) == 0) { + temp_v0 = func_800BAF50(temp_a0, arg1); + if (temp_v0 != NULL) { + if (arg2 == 0) { + temp_v0->unk8 = -1; + } else { + temp_v0->unk8 = arg2; + } + temp_v0->unk1 = 0; + temp_v0->unk2 = 0; + temp_v0->unk4 = 0; + temp_v0->unkC = 0; + temp_v0->unk0 = arg1; + temp_v0->unk10 = *(&D_800D5238 + (arg1 * 4)); + } + } + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/11.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB12C(s32 arg0) { + void *temp_v1; + void *var_v0; + + func_800047F0(); + func_800047D0(arg0); + temp_v1 = (arg0 * 8) + &D_800ED4A0; + if (temp_v1->unk0 != 0) { + temp_v1->unk0 = 0; + } + var_v0 = temp_v1->unk4; + if (var_v0 != NULL) { + do { + var_v0->unk0->unk10 = 0; + var_v0 = var_v0->unk4; + } while (var_v0 != NULL); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/12.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB198(s32 arg0, s32 arg1) { + void **temp_v1; + void **var_s0; + void *temp_s1; + void *temp_v0; + + temp_s1 = (arg0 * 8) + &D_800ED4A0; + temp_v1 = temp_s1->unk4; + var_s0 = temp_v1; + if ((*temp_v1)->unk10 != 0) { + if (temp_v1 != NULL) { +loop_2: + temp_v0 = var_s0->unk0; + if (temp_v0->unk10 != 0) { + if (arg1 == temp_v0->unk0) { + func_800BAA04(temp_s1, var_s0); + var_s0 = temp_s1->unk4; + } else { + var_s0 = var_s0->unk4; + } + if (var_s0 != NULL) { + goto loop_2; + } + } + } + func_800BAB68(temp_s1, *temp_s1->unk4, arg0); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/13.s") +#endif + +typedef struct { + u32 _000; + u32 _004; + u32 *_008; +} UnkStruct800ED4A0_004; +typedef struct { + u32 _000; + UnkStruct800ED4A0_004 *_004; +} UnkStruct800ED4A0; extern UnkStruct800ED4A0 D_800ED4A0[]; +typedef struct { + u32 _000[3][5]; +} UnkStruct800ED320; extern UnkStruct800ED320 D_800ED320[]; +typedef struct { + u32 _000[3][3]; +} UnkStruct800ED410; extern UnkStruct800ED410 D_800ED410[]; + + +extern u32 D_800ED4C0; +extern u32 *D_800ED4C4; +#ifdef NON_MATCHING +void func_800BB24C(void) { + // ? **temp_t6; + // ? **var_a0; + // ? **var_t0; + // ? **var_v0; + // ? *var_a3; + UnkStruct800ED4A0 *var_t1; + // ? *var_v1; + s32 i, j; + UnkStruct800ED410 *a0; + + // end of stack, start of something else, zeros? + // entry size: 0x3C + // total size; 0x96F0 + // entries: 644 + // D_800ED320 = &D_800ED320; + // start of region of pointers to something + // entry size: 0x24 + // var_t0 = &D_800ED410; + + // region where something is actually written every frame + // entry size: 0x8 + + for (i = 0; i < 644; i++) { + D_800ED4A0[i]._000 = 0; + D_800ED4A0[i]._004 = &D_800ED410[i]; + // var_v0 = D._000_800ED410; + D_800ED410[i]._000[0][2] = &D_800ED320[i]; + // var_v1 = D_800ED320; + D_800ED320[i]._000[0][3] = 0; + D_800ED320[i]._000[0][4] = 0; + a0 = &D_800ED410[i]; + for (j = 1; j < 4; j++) { + a0->_000[0][1] = &D_800ED410[i]; + D_800ED410[i]._000[j][0] = &D_800ED320[i]; + D_800ED410[i]._000[j][2] = &D_800ED320[i]; + // var_v0 += ._0000xC; + + D_800ED320[i]._000[j][3] = 0; + D_800ED320[i]._000[j][4] = 0; + // var_v1 += 0x14; + a0 = a0->_000[1]; + } + D_800ED410[i]._000[0][1] = 0; + D_800ED4A0[i]._004->_008 = &D_800ED410[i]; + // D_800ED320 += 0x3C; + // D_800ED410 += 0x24; + // D_800ED4A0 += 8; + // } while (var_a3 != &D_800ED410); + } + D_800ED4C0 = 1; + D_800ED4C4 = D_80048E9C; + osCreateThread(&D_800ECD70, 100000000, func_800BAD0C, NULL, &D_800ECF50[0x3D0], 0x34); + D_800ECF50[0] = 0xFEDCBA98; // canary is never checked + osStartThread(&D_800ECD70); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/14.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB364(s32 arg0, s32 arg1, s32 arg2) { + s32 sp2C; + s32 sp28; + s32 sp24; + s32 sp18; + + sp24 = arg0; + sp18 = 0; + sp28 = arg1; + sp2C = arg2; + func_800BB028(&sp18); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/15.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB394(s32 arg0) { + s32 sp24; + s32 sp18; + + sp24 = arg0; + sp18 = 1; + func_800BB028(&sp18); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/16.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB3C0(s32 arg0, s32 arg1) { + s32 sp2C; + s32 sp28; + s32 sp1C; + + sp28 = arg0; + sp1C = 2; + sp2C = arg1; + func_800BB028(&sp1C); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/17.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB3F0(void) { + s32 sp1C; + + sp1C = 3; + func_800BB028(&sp1C); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/18.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB418(void) { + s32 sp1C; + + sp1C = 4; + func_800BB028(&sp1C); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/19.s") +#endif + +#ifdef MIPS_TO_C +void func_800BB440(void) { + s32 sp1C; + + sp1C = 5; + func_800BB028(&sp1C); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/20.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB468(s32 arg0, ? arg1) { + func_800BB364(D_800ED4C4, arg0, arg1); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/21.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB498(void) { + func_800BB394(D_800ED4C4); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/22.s") +#endif + +#ifdef MIPS_TO_C +//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c + +void func_800BB4BC(s32 arg0) { + func_800BB3C0(D_800ED4C4, arg0); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/23.s") +#endif + +void func_800BB4E4(s32 arg0, s32 arg1, s32 arg2) { + func_800BB364(D_80048E9C[arg0], arg1, arg2, arg0); +} + +void func_800BB510(s32 arg0) { + func_800BB394(D_80048E9C[arg0], arg0); +} + +void func_800BB53C(s32 arg0, s32 arg1) { + func_800BB3C0(D_80048E9C[arg0], arg1, arg0); +} diff --git a/src.old/ovl1/ovl1_11.c b/src.old/ovl1/ovl1_11.c new file mode 100644 index 000000000..383724194 --- /dev/null +++ b/src.old/ovl1/ovl1_11.c @@ -0,0 +1,81 @@ +#include +#include +#include "D_8004A7C4.h" +#include "ovl1_6.h" +#include "ovl0/ovl0_2_5.h" + +extern Gfx *gDisplayListHeads[4]; + +void func_800BB580(s32 arg0) { + +} + + +extern s32 D_800D6B24; +extern u8 D_800D6B2B; +extern s16 D_800D6B30; + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_11/func_800BB588.s") + + +u32 func_800AB0F4(struct GObj *); + +// regalloc on gDisplayListHeads[1] +#ifdef NON_MATCHING +void func_800BB6B0(struct GObj *arg0) { + s32 tmp_2; + tmp_2 = arg0->objId; + + gDPPipeSync(gDisplayListHeads[0]++); + gSPClearGeometryMode(gDisplayListHeads[0]++, G_ZBUFFER); + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[tmp_2]); + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); + + switch (func_800AB0F4(arg0)) { + case 19: + func_800143A4_ovl1(arg0); + break; + case 27: + case 29: + func_8001585C_ovl1(arg0); + break; + case 20: case 22: case 24: + case 26: + gDPPipeSync(gDisplayListHeads[1]++); + gSPClearGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); + gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[tmp_2]); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); + + // possibly draws something? + func_80014AD4_ovl1(arg0); + + gDPPipeSync(gDisplayListHeads[1]++); + gSPSetGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); + break; + case 28: case 30: + gDPPipeSync(gDisplayListHeads[1]++); + gSPClearGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); + gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[tmp_2]); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); + + func_80015BCC_ovl1(arg0); + + gDPPipeSync(gDisplayListHeads[1]++); + gSPSetGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); + break; + default: break; + } + + gDPPipeSync(gDisplayListHeads[0]++); + gSPSetGeometryMode(gDisplayListHeads[0]++, G_ZBUFFER); + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_11/func_800BB6B0.s") +#endif + +struct GObj func_8000A180(s32,s32,s32,s32); + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_11/func_800BB98C.s") diff --git a/src.old/ovl1/ovl1_12.c b/src.old/ovl1/ovl1_12.c new file mode 100644 index 000000000..5abe529cc --- /dev/null +++ b/src.old/ovl1/ovl1_12.c @@ -0,0 +1,111 @@ +#include +#include + +#include "ovl1_12.h" +extern struct UnkStruct800ED4E0 *D_8022B7C0, *D_8022AED8, *D_8022B428; +extern s32 D_800D6F3C; +extern s32 D_800ED4EC; +void func_800BBC6C(void); + +void func_800BBBA0(void) { + if ((D_800D6F3C < 0) || (D_800D6F3C >= 7)) { + D_800D6F3C = 0; + } + switch (D_800D6F3C) { + case 0: + D_800ED4EC = 0; + break; + case 3: + case 4: + D_800ED4E0[0] = &D_8022B7C0; + func_800BBC6C(); + func_800BB440(); + break; + case 5: + D_800ED4E0[0] = &D_8022AED8; + func_800BBC6C(); + func_800BB440(); + break; + case 6: + D_800ED4E0[0] = &D_8022B428; + func_800BBC6C(); + func_800BB440(); + default: + break; + } +} + +extern s32 gKirbyLives, gKirbyStars; +extern f32 gKirbyHp; + +extern u32 D_800BE4EC; +extern u32 D_800BE52C; +extern u32 D_800BE500; +extern u32 D_800BE530; +extern u32 D_800BE504; +extern u32 D_800BE534; +extern u32 D_800BE508; +extern u32 D_800BE538; +extern u32 D_800BE50C; +extern u32 D_800BE4FC; + +extern u32 D_800ED4F4; + +extern u8 D_800D6E20[]; +extern u32 D_800D6E30; +extern u32 D_800D6F38; + +extern u32 D_800D6E54; +extern u32 D_800D6E64; +extern u32 gHudDisplayMode; + +void func_800BBC6C(void) { + u32 i; + + D_800ED4EC = 0; + D_800ED4F4 = 0; + set_hard_rng_seed(D_800ED4E0[0]->unk0); + D_800BE4EC = D_800ED4E0[0]->unk4; + D_800BE500 = D_800BE52C = D_800ED4E0[0]->unk8; + D_800BE504 = D_800BE530 = D_800ED4E0[0]->unkC; + D_800BE508 = D_800BE534 = D_800ED4E0[0]->unk10; + D_800BE50C = D_800BE538 = D_800ED4E0[0]->unk14; + D_800BE4FC = D_800ED4E0[0]->unk1C; + gKirbyLives = D_800ED4E0[0]->unk20; + gKirbyHp = D_800ED4E0[0]->unk24; + D_800D6E54 = D_800ED4E0[0]->unk28; + gKirbyStars = D_800ED4E0[0]->unk2C; + D_800D6E64 = D_800ED4E0[0]->unk30; + gHudDisplayMode = D_800ED4E0[0]->unk34; + set_soft_rng_seed(D_800ED4E0[0]->unk38); + + for (i = 0; i < 16; i++) { + D_800D6E20[i] = D_800ED4E0[0]->unk40[i]; + } + + D_800D6F38 = D_800ED4E0[0]->unk3C; +} + +#include "ovl0/ovl0_2.h" +extern u32 D_800BE4F8; + + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_12/func_800BBDC4.s") + +void func_800BBF60(void) { + switch (D_800D6F3C) { + case 3: + case 4: + func_800BBDC4(); + return; + case 5: + func_800BBDC4(); + return; + case 6: + func_800BBDC4(); + break; + case 0: + default: + break; + } +} diff --git a/src/ovl1/ovl1_12.h b/src.old/ovl1/ovl1_12.h similarity index 100% rename from src/ovl1/ovl1_12.h rename to src.old/ovl1/ovl1_12.h diff --git a/src.old/ovl1/ovl1_13.c b/src.old/ovl1/ovl1_13.c new file mode 100644 index 000000000..6a6577e41 --- /dev/null +++ b/src.old/ovl1/ovl1_13.c @@ -0,0 +1,404 @@ +#include +#include +#include "D_8004A7C4.h" + +extern s32 D_800D6E8C; +extern f32 gKirbyHp; +extern f32 D_800E7B20[]; +extern void ovl1_TamperCheck(void); + +#ifdef NON_MATCHING +//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 +s32 change_kirby_hp(f32 arg0) { + if ((random_u16() & 3) == 3) { + if (!ovl1_TamperCheck) { + if (arg0 < 0.0f) { + arg0 *= 2; + } else { + arg0 = 0.0f; + } + } + } + if (D_800D6E8C == 0.0f) { + return 0; + } + gKirbyHp += arg0; + if (gKirbyHp <= 0.0f) { + gKirbyHp = 0.0f; + } + if (gKirbyHp > 6.0f) { + gKirbyHp = 6.0f; + } + D_800D6E8C = gKirbyHp; + D_800E7B20[0] = gKirbyHp; + return D_800D6E8C; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/change_kirby_hp.s") +#endif + +extern s32 D_800D6E90; + +void func_800BC0F0(s32 arg0) { + if (arg0 < 0) { + arg0 = 0; + } + if (arg0 >= 3) { + arg0 = 2; + } + D_800D6E90 = arg0 + 0x23; +} + +extern f32 D_800D6E58; +extern f32 D_800D6E5C; +extern s32 D_800D6E94; + +s32 func_800BC11C(f32 arg0) { + f32 temp_f12; + + D_800D6E58 = arg0; + if (D_800D6E58 < 0.0f) { + D_800D6E58 = 0.0f; + } + if (D_800D6E5C < D_800D6E58) { + D_800D6E58 = D_800D6E5C; + } + temp_f12 = (D_800D6E58 / D_800D6E5C) * 30.0f; + if (D_800D6E58 == D_800D6E5C) { + D_800D6E94 = 0x1E; + } else { + if (D_800D6E58 == 0.0f) { + D_800D6E94 = 0; + } else { + if (temp_f12 < 1.0f) { + D_800D6E94 = 1; + } else { + D_800D6E94 = temp_f12; + } + } + } + return D_800D6E94; +} + +extern f32 D_800D6E58; +extern f32 D_800D6E5C; +extern s32 D_800D6EB8; +extern s32 D_800D6EAC; +extern s32 D_800D6E94; + +void func_800BC1FC(s32 arg0) { + D_800D6E58 = arg0; + D_800D6E5C = D_800D6E58; + D_800D6EAC = D_800D6EB8 = 0; + D_800D6E94 = 0x1E; +} + +extern s32 gKirbyStars; + +void change_kirby_stars(s32 arg0) { + gKirbyStars += arg0; +} + +extern s32 gKirbyLives; +extern s32 D_800D6E88; + +void change_kirby_lives(s32 arg0) { + gKirbyLives += arg0; + if (gKirbyLives < 0) { + gKirbyLives = 0; + } + if (gKirbyLives > 100) { + gKirbyLives = 100; + } + D_800D6E88 = gKirbyLives; +} + +extern s32 D_800D6E54; +extern s32 D_8012E850; + +void func_800BC298(s32 arg0) { + if ((random_u16() & 3) == 2) { + if (func_800F88A0(arg0) == 0) { + D_8012E850 = D_800D6E90 = D_800D6E54 = 0; + return; + } + } + if (arg0 < 0) { + arg0 = 0; + } + if (arg0 >= 0x24) { + arg0 = 0x23; + } + D_800D6E90 = arg0; + D_800D6E54 = arg0; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC328.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC4C0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC664.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC800.s") + +extern Gfx *gDisplayListHeads[4]; +extern s32 D_800E9AA0[]; + +void draw_pause_bg(s32 *arg0) { + Gfx* list = gDisplayListHeads[0]; + if (D_800E9AA0[*arg0] != 0) { + gDPPipeSync(list++); + gDPSetCycleType(list++, G_CYC_1CYCLE); + gDPSetRenderMode(list++, G_RM_OPA_SURF, CVG_DST_CLAMP | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_IN, G_BL_1MA)); + gDPSetPrimColor(list++, 0, 0, 0xF4, 0xD8, 0xA2, 0xFF); + gDPSetCombineLERP(list++, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE); + gDPFillRectangle(list++, 0, 0, 320, 182); + gDisplayListHeads[0] = list; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BCA5C.s") + +extern f32 gEntitiesNextPosXArray[]; +extern f32 gEntitiesNextPosYArray[]; +extern s32 D_800E9AA0[]; +extern s32 D_800E98E0[]; +extern s32 D_800E9FE0[]; +extern s32 D_800AD1A0; + +typedef struct { + u8 filler0[4]; +} struct_800ED500; + +typedef struct { + u8 filler0[0x13]; + u8 unk13; +} struct_800AC954; + +extern struct_800ED500 D_800ED500; + +#ifdef NON_MATCHING +//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 +void func_800BCEEC(s32 arg0) { + s32 temp; + struct_800AC954 *temp_v0; + + temp_v0 = func_800AC954(arg0, 0, &D_800ED500); + temp_v0->unk13 |= 4; + func_8000A5FC(arg0, &D_800AD1A0, 0xA, 0x80000000, 0xA); + func_800AF96C(1); + gEntitiesNextPosXArray[D_8004A7C4->objId] = 7.0f; + gEntitiesNextPosYArray[D_8004A7C4->objId] = 182.0f; + D_800E9FE0[D_8004A7C4->objId] = 0; + func_800AFA14(D_800E98E0[D_8004A7C4->objId] = D_800E9AA0[D_8004A7C4->objId] = D_800E9FE0[D_8004A7C4->objId], D_800E9FE0); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BCEEC.s") +#endif + +extern s32 gHudDisplayMode; +extern s32 D_800D5460[]; +extern s32 D_800ED510[]; + +#ifdef NON_MATCHING +void draw_lives_digit(s32 arg0, s32 arg1) { + s32 *phi_a0; + s32 *phi_v1; + s32 i; + + phi_a0 = (u16*)D_800ED510 + arg0 + 0xa00; + phi_v1 = 0x10 + func_800A8BAC(D_800D5460[gHudDisplayMode * 10 + arg1]); + + for (i = 0; i < 30; i ++) { + phi_a0[i * 0xa0 + 0] = phi_v1[i * 0xa + 0]; + phi_a0[i * 0xa0 + 1] = phi_v1[i * 0xa + 1]; + phi_a0[i * 0xa0 + 2] = phi_v1[i * 0xa + 2]; + phi_a0[i * 0xa0 + 3] = phi_v1[i * 0xa + 3]; + phi_a0[i * 0xa0 + 4] = phi_v1[i * 0xa + 4]; + phi_a0[i * 0xa0 + 5] = phi_v1[i * 0xa + 5]; + phi_a0[i * 0xa0 + 6] = phi_v1[i * 0xa + 6]; + phi_a0[i * 0xa0 + 7] = phi_v1[i * 0xa + 7]; + phi_a0[i * 0xa0 + 8] = phi_v1[i * 0xa + 8]; + + + phi_a0[(i + 1) * 0xa0 + 0] = phi_v1[(i + 1) * 0xa + 0]; + phi_a0[(i + 1) * 0xa0 + 1] = phi_v1[(i + 1) * 0xa + 1]; + phi_a0[(i + 1) * 0xa0 + 2] = phi_v1[(i + 1) * 0xa + 2]; + phi_a0[(i + 1) * 0xa0 + 3] = phi_v1[(i + 1) * 0xa + 3]; + phi_a0[(i + 1) * 0xa0 + 4] = phi_v1[(i + 1) * 0xa + 4]; + phi_a0[(i + 1) * 0xa0 + 5] = phi_v1[(i + 1) * 0xa + 5]; + phi_a0[(i + 1) * 0xa0 + 6] = phi_v1[(i + 1) * 0xa + 6]; + phi_a0[(i + 1) * 0xa0 + 7] = phi_v1[(i + 1) * 0xa + 7]; + phi_a0[(i + 1) * 0xa0 + 8] = phi_v1[(i + 1) * 0xa + 8]; + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/draw_lives_digit.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/draw_hp_segment.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD208.s") + +void draw_kirby_stars(s32 arg0) { + s32 i; + + if (arg0 < 0) { + arg0 = 0; + } + + if (arg0 > 30) { + arg0 = 30; + } + + for (i = 0; i != 30; i++) { + if (i < arg0) { + draw_star_segments(i, 1); + } else { + draw_star_segments(i, 0); + } + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/draw_star_segments.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD460.s") + +extern s32 D_800D6EA0; + +void draw_kirby_lives(void) { + s32 temp2; + s32 temp_a2; + + temp_a2 = D_800D6E88 - 1; + if (D_800D6EA0 != D_800D6E88) { + D_800D6EA0 = D_800D6E88; + if (temp_a2 > 99) { + temp_a2 = 99; + } + if (temp_a2 < 0) { + temp_a2 = 0; + } + draw_lives_digit(0x22, temp_a2 / 10); + + temp2 = temp_a2; + temp_a2 = temp2 % 10; + draw_lives_digit(0x34, temp_a2); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD6E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD7FC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD92C.s") + +extern u8 D_800D55F8[]; +extern s32 D_800D6EA8; + +void func_800BDAA8(void) { + if (D_800D6E90 != D_800D6EA8) { + func_800BD460(0xE4, D_800D55F8[D_800D6E90 * 2]); + func_800BD460(0x108, D_800D55F8[D_800D6E90 * 2 + 1]); + } + D_800D6EA8 = D_800D6E90; +} + +extern s32 D_800BE508; +extern s32 D_800BE4FC; +extern s32 D_800D6E98; +extern s32 D_800D6EA4; +extern s32 D_800D6EB0; + +void func_800BDB18(void) { + s32 i; + + if (gKirbyStars >= 30) { + do { + gKirbyStars -= 30; + change_kirby_lives(1); + } while (gKirbyStars >= 30); + } + + if ((D_800BE508 != 0) || (D_800BE4FC != 0)) { + for (i = 0; i < (u32) gKirbyHp; i++) { + draw_hp_segment(i, 1); + } + D_800D6E8C = D_800D6EA4 = (u32) gKirbyHp; + } + draw_kirby_stars(gKirbyStars); + D_800D6E98 = D_800D6EB0 = gKirbyStars; +} + +extern s16 D_800D6B30; + +void func_800BDD08(void) { + draw_kirby_lives(); + if (D_800D6B30 != 0) { + func_800BD6E0(); + if (D_800D6E94 == 0) { + func_800BD7FC(); + } + func_800BD92C(); + } + func_800BDAA8(); +} + +void func_800BDD68(void) { + func_800BDAA8(); +} + +void func_800BDD88(s32 arg0) { + +} + +void func_800BDD90(s32 arg0) { + +} + +extern s32 D_800D6EA8; +extern s32 D_800D6EA0; +extern s32 D_800D6EB0; +extern s32 D_800D6EAC; +extern s32 D_800D6EA4; +extern s32 D_800D6EC0; +extern s32 D_800F4D10; +extern s32 D_800D6EBC; +extern s32 D_800D6EB8; +extern s32 D_800D6EB4; + +void func_800BDD98(void) { + D_800D6EA8 = -1; + D_800D6EA4 = D_800D6EAC = D_800D6EB0 = D_800D6EA0 = 0; + D_800D6EB4 = D_800D6EB8 = D_800D6EBC = D_800F4D10 = D_800D6EC0 = 0; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BDE0C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BDF2C.s") + +void func_800BDFB8(s32 *arg0, s32 arg1, u32 arg2) { + s32 i; + for (i = 0; i < arg2; i++) { + if (arg0[arg1 + i] == 0xffff) { + break; + } + func_800A8BAC(arg0[arg1 + i]); + } +} + +void func_800BE028(s32 *arg0, s32 arg1, u32 arg2) { + s32 i; + for (i = 0; i < arg2; i++) { + if (arg0[arg1 + i] == 0xffff) { + break; + } + func_800A8A7C(arg0[arg1 + i]); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BE098.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BE320.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BE374.s") diff --git a/src.old/ovl1/ovl1_2.c b/src.old/ovl1/ovl1_2.c new file mode 100644 index 000000000..ab72279bc --- /dev/null +++ b/src.old/ovl1/ovl1_2.c @@ -0,0 +1,239 @@ +#include +#include + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A6BC0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A6E64.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A6F40.s") + +#include "unk_structs/D_800D79D8.h" +extern f32 D_800D7A28[]; +extern f32 D_800D7A50[]; +extern f32 D_800D7A78[]; +extern f32 D_800D7AA0[]; +extern f32 D_800D7AC8[]; +extern f32 D_800D7AF0[]; +extern const f32 D_800D5CAC; + +void func_800A6F68(u16 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { + f32 f_65535f; + u16 idx; + f32 tmp; + struct UnkStruct800D79D8 *st; + + idx = (((arg0 - 10) >> 1)); + tmp = arg6; + st = D_800D79D8[idx]; + if (st) { + f_65535f = D_800D5CAC; + if (arg1 != f_65535f) { + st->unk3C = arg1; + D_800D7A28[idx] = arg1; + } + if (arg2 != f_65535f) { + st->unk40 = arg2; + D_800D7A50[idx] = arg2; + } + if (arg3 != f_65535f) { + st->unk44 = arg3; + D_800D7A78[idx] = arg3; + } + if (arg4 != f_65535f) { + st->unk48 = arg4; + D_800D7AA0[idx] = arg4; + } + if (arg5 != f_65535f) { + st->unk4C = arg5; + D_800D7AC8[idx] = arg5; + } + if (tmp != f_65535f) { + st->unk50 = tmp; + D_800D7AF0[idx] = tmp; + } + if (arg7 != f_65535f) { + st->unk54 = arg7; + } + if (arg8 != f_65535f) { + st->unk58 = arg8; + } + if (arg9 != f_65535f) { + st->unk5C = arg9; + } + } +} + +extern const f32 D_800D5CB0; +void func_800A70C4(u16 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + f32 f_65535f; + f32 tmp; + struct UnkStruct800D79D8 *st; + + st = D_800D79D8[(u16)(arg0 - 10 >> 1)]; + tmp = arg4; + if (st) { + f_65535f = D_800D5CB0; + if (arg1 != f_65535f) { + st->unk20 = arg1; + } + if (arg2 != f_65535f) { + st->unk24 = arg2; + } + if (arg3 != f_65535f) { + st->unk28 = arg3; + } + if (tmp != f_65535f) { + st->unk2C = tmp; + } + } +} + +void func_800A7160(u16 arg0, u32 arg1) { + struct UnkStruct800D79D8 *st; + + st = D_800D79D8[(u16)(arg0 - 10 >> 1)]; + if (st) { + st->unk80 |= arg1; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A71A0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A71E0.s") + +extern struct GObj *D_800D79BC; + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A72AC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7348.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7394.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A73B0.s") + +void func_800A74B0(void) { + do {} + while (func_80020EB4_ovl1() != 0); +} + +extern u32 sMusicCount, sSoundCount; +extern u16 D_800C0530[2]; +// regalloc moment +#ifdef NON_MATCHING +void func_800A74D8(void) { + func_80020C88_ovl1(); + play_music(0, 0x99999999); + while (func_80020BB8_ovl1(0) != 0); + func_80020998_ovl1(0, 0x7800); + sMusicCount = D_800C0530[0] - 1; + sSoundCount = D_800C0530[1]; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A74D8.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7554.s") + +extern s32 D_800D6B44; +extern const char *D_800D5CC0; +extern s16 D_800BFFC0[]; +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A75B0.s") + +extern const char D_800D5CE0[]; +extern const char D_800D5CF8[]; +extern const char D_800D5D14[]; +extern s16 D_800C0040[]; +void func_80023CB0_ovl1(u16); + +void play_sound(s32 arg0) { + if (arg0 == 0x99999999) { + print_error_stub(&D_800D5CE0, arg0); // "use AllStopFGM macro.\n" + return; + } + if (arg0 & 0x80000000) { + print_error_stub(&D_800D5CF8, arg0); // "use stopLoopSeml function.\n" + return; + } + if (D_800C0040[arg0] >= 0) { + func_80023CB0((u16)D_800C0040[arg0]); + return; + } + print_error_stub(&D_800D5D14, arg0); // "Error: No Entry FGM Number: %d\n" +} + +s32 sound_str_atoi(u8 *str) { + return ((str[0] * 100) + (str[1] * 10) + (str[2] * 1)) + - (( '0' * 100) + ( '0' * 10) + ( '0' * 1)); +} + +extern u8 sMusicNames[][0x18]; +s32 get_music_id_from_index(s32 idx) { + if (idx < 0 || idx >= sMusicCount) { + return -1; + } + return sound_str_atoi(sMusicNames[idx]); +} + +extern u8 sSoundNames[][0x18]; +s32 get_sound_id_from_index(s32 idx) { + if (idx < 0 || idx >= sSoundCount) { + return -1; + } + return sound_str_atoi(sSoundNames[idx]); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A77E8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7870.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A78D0.s") + +void func_800A7A70(s32 arg0, s32 arg1, s32 arg2); + +void func_800A7A40(void) { + func_800A7A70(1, 0x30007, 0x30008); +} + +void func_800A7A70(s32 arg0, s32 arg1, s32 arg2) { + s32 tmp = func_800A9AA8(arg1, 3); + + func_8009B768(arg0, tmp, func_800A9AA8(arg2, 3)); +} + +extern s32 D_8012D920; +extern Gfx *gDisplayListHeads[4]; +extern void func_8009E8F4(s32 hidden, u32 a, Gfx *b); + +void func_800A7ABC(s32 arg0) { + if (D_8012D920 != 1) { + gDPPipeSync(gDisplayListHeads[1]++); + gDPSetCycleType(gDisplayListHeads[1]++, G_CYC_1CYCLE); + gDPPipelineMode(gDisplayListHeads[1]++, G_PM_1PRIMITIVE); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_NOOP2); + func_8009E8F4(arg0, 3, &gDisplayListHeads[1]); + gDPPipeSync(gDisplayListHeads[1]++); + gDPSetColorDither(gDisplayListHeads[1]++, G_CD_MAGICSQ); + gDPSetAlphaDither(gDisplayListHeads[1]++, G_AD_DISABLE); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_NOOP2); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7BF4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7E48.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7E7C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7EB4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7EE4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7F10.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7F74.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A802C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A8100.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A8234.s") diff --git a/src.old/ovl1/ovl1_3.c b/src.old/ovl1/ovl1_3.c new file mode 100644 index 000000000..8a1df91f9 --- /dev/null +++ b/src.old/ovl1/ovl1_3.c @@ -0,0 +1,397 @@ +#include +#include +#include "D_8004A7C4.h" +#include "ovl0/ovl0_2_5.h" +#include "ovl1/ovl1_6.h" +#include "unk_structs/D_800D79D8.h" + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A82C0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8310.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8358.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A840C.s") + +// regalloc +#ifdef NON_MATCHING +void func_800A84F0(u8 *arg0) { + D_800D7C10 += ((u32)arg0 + 0xF) & 0xFFFFF0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A84F0.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8518.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8540.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A855C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8564.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8578.s") + +s32 func_800A86C8(s32, s32 *, s32 *); // extern +extern s32 D_800D7BF0[]; +extern s32 D_800D7C00[]; + +s32 func_800A8648(void) { + int ret = 0; + int i; + + for (i = 0; i < 4; i++) { + ret += func_800A86C8(i, &D_800D7BF0[i], &D_800D7C00[i]); + } + return ret; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A86C8.s") + +extern u32 D_800D00E4[], D_800D0124[]; +extern u32 D_800D6E78; +extern u32 D_800D6E68; +extern u32 D_800D6E7C; +extern u32 D_800D6E6C; +extern u32 D_800D6E80; +extern u32 D_800D6E70; +extern u32 D_800D6E84; +extern u32 D_800D6E74; + +struct UnkStruct800C4654{ + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; +}; +extern struct UnkStruct800C4654 D_800C4654[5]; +extern u32 D_800D7BC0[]; +extern u32 D_800D7BD0[]; +extern u32 D_800D7BE0[]; + +extern u32 D_800D0144; +extern u32 D_800D7BB8; + +// doozy / 10 +#ifdef ___MIPS_TO_C +s32 func_800A8724(s32 arg0) { + int i; + int j; + int ret; + + func_800A82C0(); + for (i = 0; i < 32; i++) { + for (j = 0; j < D_800D00E4[i]; j++) { + D_800D00C4[i][j] = 0; + } + for (j = 0; j < D_800D0124[i]; j++) { + D_800D0104[i][j] = 0; + } + } + + ret = 0; + + for (i = 0; i < 4; i++) { + if (D_800C4654[arg0].unk0 != 0) { + if (D_800C4654[arg0].unk0 != -1) { + s32 tmp = func_800A840C(D_800D7BB8, i, D_800C4654[arg0]); + + D_800D7BD0[i] = tmp; + if (tmp == 0) { + ret++; + } + } else { + s32 tmp = func_800A840C(D_800C4654[arg0], i, D_800C4654[arg0]); + + D_800D7BD0[i] = tmp; + if (tmp == 0) { + ret++; + } + } + } + D_800D7BE0[i] = D_800D7BB8 - D_800D7BB8; + D_800D7BC0[i] = D_800D7BD0[i]; + } + D_800D6E78 = 0; + D_800D6E68 = 0; + D_800D6E7C = 0; + D_800D6E6C = 0; + D_800D6E80 = 0; + D_800D6E70 = 0; + D_800D6E84 = 0; + D_800D6E74 = 0; + return ret; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8724.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8934.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A89E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8A7C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8B0C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8BAC.s") + + + + +// parses the Header of an S2DEX background file and relocates image/palette offset +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8C40.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8CE0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8D64.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8E54.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8EC0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9088.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9250.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A94F4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9648.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9760.s") + + +// extern struct { +// u32 unk0; +// u32 unk0; +// u32 unk0; +// u32 unk0; +// } + + +void func_800AF9B8(u16, u8); + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9864.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A99E4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9A2C.s") + +extern struct BankHeader *D_800D0184[]; +#ifdef NON_MATCHING +// regalloc moment +s32 func_800A8358(u32); +s32 func_800A9AA8(u32 bankIndex, u32 arg1) { + u32 sp18; + s32 temp_a3; + s32 temp_v0; + u32 *miscTable; + + miscTable = &D_800D0184[bankIndex >> 0x10]->miscBlockTable[bankIndex & 0xFFFF]; + sp18 = D_800D0184[bankIndex >> 0x10]->miscROMOffset; + temp_a3 = ((miscTable[1] - miscTable[0]) + 3) & 0xFFFFFC; + temp_v0 = func_800A8358(temp_a3 | arg1); + dma_read(miscTable[0] + sp18, temp_v0, temp_a3 & 0xFFFFFC); + return temp_v0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9B48.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9C78.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9D64.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9DE4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9EA4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9EC4.s") + + +extern void func_800AEEB4(s32 arg0, f32 arg1); +extern void func_800AEE20(s32 arg0, f32 arg1); + +// these arrays are double pointers? +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9F98.s") + + +extern void func_800A9F98(s32 arg0, f32 arg1); + +void func_800AA018(s32 arg0) { + func_800A9F98(arg0, 0.0f); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA038.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA0C4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA154.s") + +void func_800AA174(void) { + D_8004A7C4->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + D_8004A7C4->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + D_8004A7C4->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + + D_8004A7C4->unk3C->angleVec.x = gEntitiesAngleXArray[D_8004A7C4->objId]; + D_8004A7C4->unk3C->angleVec.y = gEntitiesAngleYArray[D_8004A7C4->objId]; + D_8004A7C4->unk3C->angleVec.z = gEntitiesAngleZArray[D_8004A7C4->objId]; + + D_8004A7C4->unk3C->scaleVec.x = gEntitiesScaleXArray[D_8004A7C4->objId]; + D_8004A7C4->unk3C->scaleVec.y = gEntitiesScaleYArray[D_8004A7C4->objId]; + D_8004A7C4->unk3C->scaleVec.z = gEntitiesScaleZArray[D_8004A7C4->objId]; +} + +void func_800AA2A0(void) { + func_800A9760(); + func_800AA174(); +} + +void func_800AA2C8(s32 arg0, s32 arg1, s32 arg2) { + func_800A9864(arg0, arg1, arg2); + func_800AA174(); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA2F0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA368.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA3F0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA49C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA5C4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA608.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA78C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA7D0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA864.s") + +extern u32 ***D_800D00C4; +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA888.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA8E4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA934.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA96C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAB3C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AABD4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AACC8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAF04.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAF34.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAFC4.s") + +extern f32 D_800D5DF8; +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB040.s") + +void func_800AB0A8(s32 arg0, f32 arg1) { + // D_800D79D8[(arg0 - 10) >> 1]->unk78 = arg1; + struct UnkStruct800D79D8 *new_var; + new_var = D_800D79D8[(arg0 - 10) >> 1]; + new_var->unk78 = arg1; +} +// GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB0A8.s") + +extern f32 D_800D5DFC; +void func_800AB0CC(s32 arg0) { + // why doesnt just the one-line solution work? + // D_800D79D8[(arg0 - 10) >> 1]->unk74 = D_800D5DFC; + int tmp; + struct UnkStruct800D79D8 *tmp2; + tmp = (arg0 - 10) >> 1; + tmp2 = D_800D79D8[tmp]; + tmp2->unk74 = D_800D5DFC; +} +// GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB0CC.s") + +s32 func_800AB0F4(struct GObj *arg0) { + u32* v1 = gSegment4StartArray[arg0->objId]; + return v1[2]; +} + +void func_800AB110(s32 arg0) { + +} + +void func_800AB118(s32 arg0) { + +} + +extern Gfx* gDisplayListHeads[]; + +void func_800AB120(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); + func_800141D4(); +} + +void func_800AB174(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); + gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); + func_80014768(); +} + +void func_800AB1F0(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); + func_80014B4C(arg0); +} + +void func_800AB244(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); + gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); + func_80014FA4(); +} + +void func_800AB2C0(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]) + func_800143A4(); +} + + +void func_800AB314(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); + gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); + func_80014AD4(arg0); +} + +void func_800AB390(s32 arg0) { + +} + +void func_800AB398(s32 arg0) { + +} + +void func_800AB3A0(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); + func_8001585C(); +} + +void func_800AB3F4(struct GObj *arg0) { + gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); + gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); + func_80015BCC(); +} + +void func_800AB470(s32 arg0) { + +} + +void func_800AB478(s32 arg0) { + +} + +void func_800AB480(s32 arg0) { + +} diff --git a/src.old/ovl1/ovl1_3.h b/src.old/ovl1/ovl1_3.h new file mode 100644 index 000000000..b7bbfb0bd --- /dev/null +++ b/src.old/ovl1/ovl1_3.h @@ -0,0 +1,46 @@ +#ifndef OVL1_3_H +#define OVL1_3_H + +struct UnkWhat { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u32 unk10[0x10000 - 0x10]; +}; +extern f32 D_800D5DD8; + +struct CacheLine { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; +}; + +struct BGHeader { + u8 fmt; + u8 siz; + u8 unk2; // color count? + u16 width; + u16 height; + u32 imgOffset; + u32 palOffset; +}; + +extern struct BGHeader ***D_800D0104; + +extern u32 ***D_800D00C4; + + +#define ALIGN100(x) (((u32)x + 0xFF) & ~(0x100)) + + +extern u32 D_800D7BB4; +extern u32 D_800D7BB0; +extern u32 D_800D7BB8; +extern u32 D_800D7C10; +void func_800AA018(s32 arg0); +void func_800AA864(s32, u32); +void func_800AAF34(s32, s32, f32); + +#endif // OVL1_3_H diff --git a/src.old/ovl1/ovl1_5.c b/src.old/ovl1/ovl1_5.c new file mode 100644 index 000000000..1ddc51ee4 --- /dev/null +++ b/src.old/ovl1/ovl1_5.c @@ -0,0 +1,159 @@ +// mglib? +// todo: is this file mglib, or is ovl5? +// handles something called an spobj? + +#include +#include +#include "ovl1_5.h" +#include "D_8004A7C4.h" + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB680.s") + +extern u32 sTextureImageCommand; +extern u32 sSetTileCommand; + +#define gDPSetTextureImageDynamic(pkt, ptr)\ + {\ + Gfx *_g = (pkt);\ + _g->words.w0 = sTextureImageCommand;\ + _g->words.w1 = ptr;\ + } + + +extern s8 D_800DD70A; +void func_800AB6D8(Gfx **dlist, u64 *texptr, s16 arg2, s16 arg3); +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB6D8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB790.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB804.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ABB4C.s") + +extern struct UnkStruct800AC954 *D_800DD6E0; + +struct UnkStruct800AC954 *pop_spobj(void) { + struct UnkStruct800AC954 *tmp; + + tmp = D_800DD6E0; + if (tmp == NULL) { + return NULL; + } + D_800DD6E0 = tmp->unk0; + return tmp; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC5E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC610.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC688.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC700.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC794.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC820.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC8E0.s") + +void func_800AC924(uObjMtx *mtx) { + mtx->m.A = mtx->m.D = 0x10000; + mtx->m.B = mtx->m.C = 0; + mtx->m.X = mtx->m.Y = 0; + mtx->m.BaseScaleX = mtx->m.BaseScaleY = 0x400; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC954.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ACB7C.s") + +void func_800ACBDC(struct GObj *arg0) { + if (arg0 == 0) { + arg0 = D_8004A7C4; + } + while (arg0->unk4C != 0) { + func_800ACB7C(arg0->unk4C); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ACC30.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ACC68.s") + +extern Gfx *gDisplayListHeads[4]; + +s32 func_800ACE1C(u8 arg0, u16 *tlut) { + if (arg0 == 2) { + gDPSetTextureLUT(gDisplayListHeads[0]++, G_TT_RGBA16); + gSPObjLoadTxtr(gDisplayListHeads[0]++, tlut); + return 1; + } + return 0; +} + + +#define G_CC_PRIM_RGBA PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0 + +s32 func_800ACE88(struct UnkStruct800AC954 *arg0, u8 arg1) { + gDPSetCycleType(gDisplayListHeads[0]++, G_CYC_1CYCLE); + if ((arg0->renderFlags & 1) != 0) { + if ((arg0->renderFlags & 2) != 0) { + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_XLU_SPRITE, G_RM_AA_XLU_SPRITE2); + gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_XLU | G_OBJRM_ANTIALIAS | G_OBJRM_BILERP) + } else { + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_SPRITE, G_RM_AA_SPRITE2); + gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_ANTIALIAS | G_OBJRM_BILERP); + } + } else if ((arg0->renderFlags & 2) != 0) { + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_XLU_SPRITE, G_RM_XLU_SPRITE2); + gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_XLU | G_OBJRM_BILERP); + } else { + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_SPRITE, G_RM_SPRITE2); + gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_BILERP); + } + switch (arg1) { + case 4: + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, + arg0->primColorRed, + arg0->primColorGreen, + arg0->primColorBlue, + arg0->primColorAlpha + ); + gDPSetCombineLERP(gDisplayListHeads[0]++, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0); + return; + case 3: + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, + arg0->primColorRed, + arg0->primColorGreen, + arg0->primColorBlue, + arg0->primColorAlpha + ); + gDPSetEnvColor(gDisplayListHeads[0]++, + arg0->envColorRed, + arg0->envColorGreen, + arg0->envColorBlue, + arg0->envColorAlpha + ); + gDPSetCombineLERP(gDisplayListHeads[0]++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); + return; + case 2: + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, + arg0->primColorRed, + arg0->primColorGreen, + arg0->primColorBlue, + arg0->primColorAlpha + ); + gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_PRIM_RGBA, G_CC_PRIM_RGBA); + return; + case 0: + gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_DECALRGBA, G_CC_DECALRGBA); + return; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AD1A0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ADD14.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AE048.s") diff --git a/src/ovl1/ovl1_5.h b/src.old/ovl1/ovl1_5.h similarity index 79% rename from src/ovl1/ovl1_5.h rename to src.old/ovl1/ovl1_5.h index 8a77e285a..2b2a97512 100644 --- a/src/ovl1/ovl1_5.h +++ b/src.old/ovl1/ovl1_5.h @@ -15,7 +15,7 @@ struct UnkStruct800AC954_68 { }; // spobj? according to debug string -struct UnkStruct800AC954 { +typedef struct UnkStruct800AC954 { struct UnkStruct800AC954 *unk0; u32 unk4; u32 unk8; @@ -24,19 +24,20 @@ struct UnkStruct800AC954 { u8 unk11; u8 unk12; u8 renderFlags; - +// 0x14 u8 primColorRed; u8 primColorGreen; u8 primColorBlue; u8 primColorAlpha; - +// 0x18 u8 envColorRed; u8 envColorGreen; u8 envColorBlue; u8 envColorAlpha; - +// 0x1C u16 width; u16 height; +// 0x20 f32 xOffset; f32 yOffset; f32 unk28; @@ -45,26 +46,33 @@ struct UnkStruct800AC954 { f32 unk34; f32 unk38; u32 unk3C; - struct UnkStruct800AC954_40 *unk40; + void *unk40; u32 unk44; u32 unk48; u32 unk4C; u32 unk50; u32 unk54; - struct UnkStruct800AC954_58 *unk58; + u16 unk58; + u16 unk5A; // flag1 u32 unk5C; u32 unk60; u32 unk64; struct UnkStruct800AC954_68 *unk68; u32 unk6C; - struct UnkStruct800AC954_68 *unk70; + void *unk70; u32 unk74; u32 unk78; u32 unk7C; u32 unk80; u32 unk84; uObjMtx *unk88; -}; + u32 unk8C; + u32 unk90[4]; + u32 unkA0[4]; + u32 unkB0[2]; + u16 unkB8; + u16 unkBA; // flag2 +} SPObj; void func_800AD1A0(void *); diff --git a/src.old/ovl1/ovl1_6.c b/src.old/ovl1/ovl1_6.c new file mode 100644 index 000000000..e63ca34f1 --- /dev/null +++ b/src.old/ovl1/ovl1_6.c @@ -0,0 +1,307 @@ +#include +#include +#include "buffers.h" + +#include "ovl1_6.h" +#include "D_8004A7C4.h" +#include "unk_structs/D_800DE350.h" +#include "unk_structs/D_800E1B50.h" + +void func_800AE138(s32); +extern s32 D_800EC9E0; +void func_800AE0F0(void) { + s32 i; + + for (i = 0; i < 0x70; i++) { + func_800AE138(i); + } + D_800EC9E0 = 0; +} + +// https://decomp.me/scratch/0l2Df +#ifdef NON_MATCHING +void func_800AE138(s32 arg0) { + f32 lifeline, l2; + + struct Normal *temp_v1; + + D_800DE350[arg0] = 0; + D_800DD710[arg0] = -1; + + gEntityGObjProcessArray[arg0] = gEntityGObjProcessArray2[arg0] = + gEntityGObjProcessArray3[arg0] = gEntityGObjProcessArray4[arg0] = + gEntityGObjProcessArray5[arg0] = NULL; + + D_800DDE10[arg0] = D_800DDFD0[arg0] = D_800DE190[arg0] = 0; + gEntityVtableIndexArray[arg0] = 0; + D_800DD8D0[arg0] = 0; + D_800E0810[arg0] = 0x10; + + D_800E09D0[arg0] = D_800E0B90[arg0] = D_800D6B10; + + D_800E0D50[arg0] = D_800E0F10[arg0] = -1; + D_800E0490[arg0] = 0; + D_800E0650[arg0] = NULL; + D_800E1B50[arg0] = NULL; + D_800E1ED0[arg0] = -1; + D_800DEDD0[arg0] = 0; + D_800DEF90[arg0] = NULL; + D_800DF150[arg0] = NULL; + + gSegment4StartArray[arg0] = (void *) (D_800DF690[arg0] = D_800DF850[arg0] = -1); + + D_800E02D0[arg0] = D_800DFF50[arg0] = D_800E0110[arg0] = -1 + 1 - 1; + + D_800DFBD0[arg0] = (void *)-1; + + + + l2 = 0.0f; + // monster block + D_800E3050[arg0] = D_800E3210[arg0] = D_800E33D0[arg0] = + D_800E3590[arg0] = D_800E3750[arg0] = D_800E3910[arg0] = + gEntitiesNextPosXArray[arg0] = gEntitiesNextPosYArray[arg0] = gEntitiesNextPosZArray[arg0] = + gEntitiesPosXArray[arg0] = gEntitiesPosYArray[arg0] = gEntitiesPosZArray[arg0] = + D_800E2090[arg0] = D_800E2250[arg0] = D_800E2410[arg0] = + 0.0f; + + D_800E3AD0[arg0] = D_800E3C90[arg0] = D_800E3E50[arg0] = 65535.0f; + + + lifeline = 1.0f; + // D_800E10D0[arg0] = D_800E1290[arg0] = D_800E1450[arg0] = + // gEntitiesAngleXArray[arg0] = gEntitiesAngleYArray[arg0] = gEntitiesAngleZArray[arg0] = 0.0f; + gEntitiesAngleZArray[arg0] = l2; + gEntitiesAngleYArray[arg0] = l2; + gEntitiesAngleXArray[arg0] = l2; + + D_800E10D0[arg0] = D_800E1290[arg0] = D_800E1450[arg0] = 0.0f; + + gEntitiesScaleZArray[arg0] = lifeline; + gEntitiesScaleYArray[arg0] = lifeline; + gEntitiesScaleXArray[arg0] = lifeline; + + // gEntitiesScaleXArray[arg0] = gEntitiesScaleYArray[arg0] = gEntitiesScaleZArray[arg0] = lifeline; + + + D_800E4A90[arg0] = D_800E4C50[arg0] = D_800E4E10[arg0] = + D_800E5A50[arg0] = D_800E5C10[arg0] = D_800E5DD0[arg0] = 0.0f; + + // float array + D_800E5350[arg0] = 1; + if (1) { + D_800E4FD0[arg0] = D_800E5190[arg0] = D_800E5350[arg0]; + } + + D_800E7650[arg0] = 0; + D_800E8AE0[arg0] = 0.0f; + D_800E8220[arg0] = 0.0f; + D_800E83E0[arg0] = 0.0f; + D_800E8760[arg0] = 0.0f; + D_800E8E60[arg0] = 0; + D_800E9020[arg0] = 0.0f; + D_800E76C0[arg0] = 0xFF; + D_800E7730[arg0] = 0xFF; + D_800E77A0[arg0] = 0xFFFF; + D_800E7880[arg0] = 0xFF; + D_800E78F0[arg0] = 0; + D_800E7B20[arg0] = 0.0f; + D_800E7CE0[arg0] = 0; + D_800EA520[arg0] = 0; + D_800EA360[arg0] = 0; + D_800EA1A0[arg0] = 0; + D_800E9FE0[arg0].as_s32 = 0; + D_800E9E20[arg0] = 0; + D_800E9C60[arg0] = 0; + D_800E9AA0[arg0] = NULL; + D_800E98E0[arg0] = 0; + D_800EB320[arg0] = 0.0f; + D_800EB160[arg0] = 0.0f; + D_800EAFA0[arg0] = 0.0f; + D_800EADE0[arg0] = 0.0f; + D_800EAC20[arg0] = 0.0f; + D_800EAA60[arg0] = 0.0f; + D_800EA8A0[arg0] = 0.0f; + D_800EA6E0[arg0] = 0.0f; + D_800EB6A0[arg0] = 0; + D_800EB4E0[arg0] = 0; + D_800EBA20[arg0] = 0.0f; + D_800EB860[arg0] = 0.0f; + D_800EC120[arg0] = -1; + D_800EBF60[arg0] = -1; + D_800EBDA0[arg0] = -1; + D_800EBBE0[arg0] = -1; + D_800EC4A0[arg0] = 0; + D_800EC2E0[arg0].as_s32 = 0; + D_800EC820[arg0] = 0.0f; + D_800EC660[arg0] = 0.0f; + D_800E6150[arg0] = -1; + D_800E5F90[arg0] = -1; + D_800E6D90[arg0] = 0.0f; + D_800E6BD0[arg0] = 0.0f; + D_800E17D0[arg0] = 0.0f; + D_800E1610[arg0] = 0.0f; + D_800E6A10[arg0] = 0.0f; + D_800E6690[arg0] = 0.0f; + D_800E64D0[arg0] = 0.0f; + + temp_v1 = &D_800E6F50[arg0]; + temp_v1->x = temp_v1->y = temp_v1->z = 0.0f; + temp_v1->originOffset = 9999.0f; + + D_800E6850[arg0] = 65535.0f; + D_800E8CA0[arg0] = 0; + D_800E6310[arg0] = 0; + + D_800E5890[arg0] = D_800E5510[arg0] = D_800E56D0[arg0] = 0.0f; + D_800E93A0[arg0] = D_800E9560[arg0] = D_800E9720[arg0] = 0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_6/func_800AE138.s") +#endif + +struct GObjProcess *func_80008A18(s32 arg0, s32 arg1, u8 arg2, u32 arg3); +struct GObj *func_8000A180(s32 arg0, s32 arg1, u8 arg2, u32 arg3); +void func_800B0F28(void); +extern u32 D_800DDA90[]; +s32 func_800B0D90(void *arg0); +void func_800B1878(s32 arg0); +void func_800B1870(s32 arg0); +void func_800B0D24(s32 arg0); +extern const char D_800D66C0[]; +extern const char D_800D66D8[]; + +struct UnkStruct800D4FD0 { + u8 unk0[4]; + void (*unk4)(void); + }; + +extern struct UnkStruct800D4FD0 D_800D4FD0[]; + +// https://decomp.me/scratch/zbl2m +#ifdef NON_MATCHING +s32 request_job(s32 id, s32 minIndex, u32 max_index, s32 *arg3, void (*arg4)()) { + struct GObj *gobj; + s32 v0; + + s32 why_do_i_need_to_make_this_constant_folding_explicit = -1; + // clamp to bounds if not provided + if (minIndex == why_do_i_need_to_make_this_constant_folding_explicit) { + minIndex = 0; + } + if (max_index == why_do_i_need_to_make_this_constant_folding_explicit) { + max_index = 0x70; + } + if (minIndex < max_index) { + do { + if (D_800DD710[minIndex] == -1) break; + } while (++minIndex != max_index); + } + + if (minIndex >= max_index) { + print_error_stub("Can't request job !!!\n"); + return -1; + } + if ((D_8004A7C4 == NULL) || (D_8004A7C4->link == 0x1A) || (D_8004A7C4->link == 0x19)) { + v0 = 0; + } + else if ((D_8004A7C4->link & 0x18) == 0) { + v0 = 8; + } + else { + v0 = (D_8004A7C4->link & 0x18); + if (v0 + 8 >= 32) { + print_error_stub("Job Request Deep OverFlow!!\n"); + return -1; + } + } + + D_800DD710[minIndex] = id; + D_800DE350[minIndex] = + gobj = func_8000A180(minIndex, func_800B0D24, D_800D4FD0[id].unk0[0] + v0, 0); + // D_800DE350[minIndex] = gobj; + gEntityGObjProcessArray[minIndex]= func_80008A18(gobj, D_800D4FD0[id].unk4, 0, 3); + gEntityGObjProcessArray2[minIndex]= func_80008A18(gobj, func_800B0D90, 1, 3); + + if (D_800D4FD0[id].unk0[1] & 1) { + gEntityGObjProcessArray3[minIndex]= func_80008A18(gobj, func_800B1878, 0, 2); + } + if (D_800D4FD0[id].unk0[1] & 2) { + gEntityGObjProcessArray4[minIndex] = func_80008A18(gobj, func_800B1870, 1, 1); + } + gEntityGObjProcessArray5[minIndex] = func_80008A18(gobj, arg4, 1, 0); + D_800DD8D0[minIndex] = 0; + D_800DDA90[minIndex] = gobj->link; + D_800DF150[minIndex] = 0; + if (arg3 != 0) { + D_800DEF90[minIndex] = arg3; + } else { + D_800DEF90[minIndex] = 0; + } + gobj->unk48 = func_800B0F28; + D_800DEDD0[minIndex] = 0; + D_800DF310[minIndex] = 0; + return minIndex; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_6/func_800AE7A8.s") +#endif + +extern void func_800B1434(void); +s32 func_800AEA64(s32 id, s32 minIndex, s32 max_index) { + s32 idx = request_job(id, minIndex, max_index, NULL, &func_800B1434); + + if (idx == -1) { + return -1; + } + D_800E0D50[idx] = (D_8004A7C4 != NULL) ? D_8004A7C4->objId : -1; + return idx; +} + +extern void func_800B4924(void); +extern void func_800B143C(void); +extern void func_800B4AB8(void); +extern void func_800B158C(void); + +// todo: should this really be a define? +#define FAIL -1 + +s32 request_track(u8 arg0, s32 id, s32 minIndex, s32 maxIndex) { + s32 idx; + + switch (arg0) { + case 0: + idx = request_job(id, minIndex, maxIndex, &func_800B4924, &func_800B143C); + if (idx == FAIL) { + return FAIL; + } + break; + case 1: + return FAIL; + case 2: + idx = request_job(id, minIndex, maxIndex, &func_800B4AB8, &func_800B158C); + if (idx == FAIL) { + return FAIL; + } + D_800DE350[idx]->unk4C = 0; + gEntitiesAngleYArray[idx] = 0.0f; + gEntitiesAngleXArray[idx] = 0.0f; + break; + } + D_800E0D50[idx] = (D_8004A7C4 != NULL) ? D_8004A7C4->objId : -1; + return idx; +} + +// alloc object with id and index range? +s32 request_track_general(s32 id, s32 minIndex, s32 maxIndex) { + return request_track(0, id, minIndex, maxIndex); +} + +s32 func_800AEC3C(s32 id, s32 minIndex, s32 maxIndex) { + return request_track(1, id, minIndex, maxIndex); +} + +s32 func_800AEC70(s32 id, s32 minIndex, s32 maxIndex) { + return request_track(2, id, minIndex, maxIndex); +} + diff --git a/src/ovl1/ovl1_6.h b/src.old/ovl1/ovl1_6.h similarity index 100% rename from src/ovl1/ovl1_6.h rename to src.old/ovl1/ovl1_6.h diff --git a/src.old/ovl1/ovl1_7.c b/src.old/ovl1/ovl1_7.c new file mode 100644 index 000000000..c14688716 --- /dev/null +++ b/src.old/ovl1/ovl1_7.c @@ -0,0 +1,1093 @@ +#include +#include +#include "ovl1_6.h" +#include "D_8004A7C4.h" +#include "unk_structs/D_800DE350.h" +#include "ovl0/ovl0_5.h" +#include "ovl1_5.h" +#include "ovl0/ovl0_6.h" +#include "ovl0/ovl0_4.h" + +s32 func_800B3234(f32 inputX, f32 inputY, f32 inputZ); +void func_800AFA88(struct GObj *); + +void func_8000BEF4_ovl1(struct GObj *, f32); + +void func_800AECC0(f32 arg0) { + if (arg0 != D_800E09D0[D_8004A7C4->objId]) { + D_800E09D0[D_8004A7C4->objId] = arg0; + func_8000BEF4_ovl1(D_8004A7C4, D_800E09D0[D_8004A7C4->objId]); + } +} + +extern void func_8000BFA0_ovl1(struct GObj *, f32); + +void func_800AED20(f32 arg0) { + if (arg0 != D_800E0B90[D_8004A7C4->objId]) { + D_800E0B90[D_8004A7C4->objId] = arg0; + func_8000BFA0_ovl1(D_8004A7C4, D_800E0B90[D_8004A7C4->objId]); + } +} + +void func_800AED80(f32 arg0, s32 arg1) { + if (arg0 != D_800E09D0[arg1]) { + struct UnkStruct800DE350 *tmp = D_800DE350[arg1]; + + D_800E09D0[arg1] = arg0; + func_8000BEF4_ovl1(tmp, arg0); + } +} + +void func_800AEDD0(f32 arg0, s32 arg1) { + if (arg0 != D_800E0B90[arg1]) { + struct UnkStruct800DE350 *tmp = D_800DE350[arg1]; + + D_800E0B90[arg1] = arg0; + func_8000BFA0_ovl1(tmp, arg0); + } +} + +void func_8000C17C_ovl1(struct GObj *, s32, f32); + +void func_800AEE20(s32 arg0, f32 arg1) { + D_800DF310[D_8004A7C4->objId] = 0; + D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; + func_8000C17C_ovl1(D_8004A7C4, arg0, arg1); + if (arg1 != 0.0f) { + func_8000E324_ovl1(D_8004A7C4); + } +} + +void func_8000C218(struct GObj *, s32, f32); + +void func_800AEEB4(s32 arg0, f32 arg1) { + func_8000C218(D_8004A7C4, arg0, arg1); + if (arg1 != 0.0f) { + func_8000E324_ovl1(D_8004A7C4); + } +} + +void func_800AEF0C(s32 arg0, f32 arg1, struct GObj *arg2) { + D_800DF310[arg2->objId] = 0; + D_800DD8D0[arg2->objId] &= 0x3FFFFFFF; + func_8000C17C_ovl1(arg2, arg0, arg1); + if (arg1 != 0.0f) { + func_8000E324_ovl1(arg2); + } +} + +void func_800AEFA4(s32 arg0, f32 arg1, struct GObj *arg2) { + func_8000C218(arg2, arg0, arg1); + if (arg1 != 0.0f) { + func_8000E324_ovl1(arg2); + } +} + +// control flow meme +#ifdef NON_MATCHING +void func_800AEFFC(u16 arg0) { + while (1) { + if (D_800DD8D0[D_8004A7C4->objId] & 0xC0000000 || --arg0 != 0) { + D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; + finish_current_thread(1); + } + else break; + } + // return D_800DD8D0[D_8004A7C4->objId]; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AEFFC.s") +#endif + +u32 func_800AF0F4(void); + +void func_800AF09C(u16 arg0) { + while (1) { + if (func_800AF0F4() != 0 || --arg0 != 0) { + finish_current_thread(1); + continue; + } + break; + } +} + +extern f32 D_800D6700, D_800D6704, D_800D6708; + +// some meme in here +#ifdef NON_MATCHING +u32 func_800AF0F4(void) { + struct UnkStruct8004A7C4_3C_80 *sp20; + struct UnkStruct8004A7C4_3C *s0; + + s0 = D_8004A7C4->unk3C; + while (s0 != 0) { + if (s0->unk80 != 0) { + sp20 = s0->unk80; + } else { + s0 = func_8000BE90(s0); + } + } + if (D_800D6700 == sp20->unk98 || D_800D6704 == sp20->unk98) { + return 0; + } + if (D_800D6708 == sp20->unk98) { + D_800DD8D0[D_8004A7C4->objId] |= 0x20000000; + } else { + if (sp20->unkA0 < D_800E0B90[D_8004A7C4->objId]) { + if (D_800DD8D0[D_8004A7C4->objId] * 4 >= 0) { + return 0; + } + D_800DD8D0[D_8004A7C4->objId] &= 0xDFFFFFFF; + } + } + return 1; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF0F4.s") +#endif + +u32 func_800AF230(void) { + if ((((u32)D_800DD8D0[D_8004A7C4->objId]) >> 0x1E) != 0) { + D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; + return 1; + } + return 0; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF27C.s") + +void func_800AF314(void) { + struct UnkStruct8004A7C4_3C *tmp = D_8004A7C4->unk3C; + + while (tmp != 0) { + func_8000984C_ovl1(tmp); + tmp = func_8000BE90(tmp); + } + D_800DF310[D_8004A7C4->objId] = 0; + D_800DD8D0[D_8004A7C4->objId] = D_800DD8D0[D_8004A7C4->objId] & 0x3FFFFFFF; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF3A0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF408.s") + + +// some meme +#ifdef NON_MATCHING +void func_800AF4BC(s32 arg0, s32 arg1, s32 arg2) { + s32 sp30; + f32 temp_f0; + f32 temp_f0_2; + + sp30 = 0; + if (D_8004A7C4->unkF == 1) { + sp30 = 1; + func_8000BBE0_ovl1(0); + } + if (arg1 == 0) { + func_8000F980_ovl1(D_8004A7C4, arg0, arg2, 0x1C, 0, 0); + temp_f0 = D_800E09D0[D_8004A7C4->objId]; + if (D_8004A7C4->unk3C->unk78 != temp_f0) { + func_8000BEF4_ovl1(D_8004A7C4, temp_f0); + } + } else { + func_8000FB10_ovl1(D_8004A7C4, arg0, arg1, arg2, 0x1C, 0, 0); + temp_f0_2 = D_800E09D0[D_8004A7C4->objId]; + if (D_8004A7C4->unk3C->unk78 != temp_f0_2) { + func_8000BEF4_ovl1(D_8004A7C4, temp_f0_2); + func_8000BFA0_ovl1(D_8004A7C4, D_800E0B90[D_8004A7C4->objId]); + } + } + if (sp30 != 0) { + func_800AFA88(D_8004A7C4); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF4BC.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF618.s") + + +extern void (*D_800D4F10[])(struct GObj *); + +void func_800AF7A0(s32 arg0) { + u32 *tmp; + + if (arg0 == 0x0001869F) { + tmp = gSegment4StartArray[D_8004A7C4->objId]; + arg0 = tmp[2]; + } + D_8004A7C4->unk2C = D_800D4F10[arg0]; +} + +#ifdef NON_MATCHING +u32 func_800AF7EC(u32 arg0, u8 arg1, u8 flags, u8 mode) { + struct UnkStruct800AC954 *sprite = func_800AC954(D_8004A7C4, mode, func_800A8C40()); + + if (sprite == NULL) { + return 0; + } + D_800E02D0[D_8004A7C4->objId] = arg0; + sprite->renderFlags |= flags; + func_8000A5FC(D_8004A7C4, func_800AD1A0, arg1, 0x80000000, arg1); + return 1; +} +#else +u32 func_800AF7EC(s32, u8, u8, u8); +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF7EC.s") +#endif + +u32 func_800AF890(s32 arg0, u8 arg1, u8 renderFlags) { + return func_800AF7EC(arg0, arg1, renderFlags, 0); +} + +u32 func_800AF8C0(s32 arg0, u8 arg1, u8 renderFlags) { + return func_800AF7EC(arg0, arg1, renderFlags, 1); +} + +u32 func_800AF8F0(s32 arg0, u8 arg1, u8 renderFlags) { + return func_800AF7EC(arg0, arg1, renderFlags, 4); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF920.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF96C.s") + +struct GObj *func_800AF980(s32 arg0) { + D_800E0810[D_8004A7C4->objId] = arg0; + D_8004A7C4->renderPriority = D_800E0810[D_8004A7C4->objId]; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF9B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFA14.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFA54.s") + +void func_800AFA88(struct GObj *this) { + this->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + this->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + this->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + this->unk3C->angleVec.x = gEntitiesAngleXArray[D_8004A7C4->objId]; + this->unk3C->angleVec.y = gEntitiesAngleYArray[D_8004A7C4->objId]; + this->unk3C->angleVec.z = gEntitiesAngleZArray[D_8004A7C4->objId]; + this->unk3C->scaleVec.x = gEntitiesScaleXArray[D_8004A7C4->objId]; + this->unk3C->scaleVec.y = gEntitiesScaleYArray[D_8004A7C4->objId]; + this->unk3C->scaleVec.z = gEntitiesScaleZArray[D_8004A7C4->objId]; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFBB4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFBEC.s") + +void func_800AFC20(s32 sound, s32 tcount) { + play_sound(sound); + if (tcount != 0) { + finish_current_thread(tcount); + } +} + +void func_800AFC54(s32 arg0, s32 tcount) { + func_800FB914(arg0); + if (tcount != 0) { + finish_current_thread(tcount); + } +} + +void func_800AFC88(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + D_800E2090[D_8004A7C4->objId] = arg0; + gEntitiesNextPosXArray[D_8004A7C4->objId] = D_800E2090[D_8004A7C4->objId]; + } + if (arg1 != 65535.0f) { + D_800E2250[D_8004A7C4->objId] = arg1; + gEntitiesNextPosYArray[D_8004A7C4->objId] = D_800E2250[D_8004A7C4->objId]; + } + if (arg2 != 65535.0f) { + D_800E2410[D_8004A7C4->objId] = arg2; + gEntitiesNextPosZArray[D_8004A7C4->objId] = D_800E2410[D_8004A7C4->objId]; + } + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800AFDA0(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + D_800E4A90[D_8004A7C4->objId] = arg0; + gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId]; + } + if (arg1 != 65535.0f) { + D_800E4C50[D_8004A7C4->objId] = arg1; + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId]; + } + if (arg2 != 65535.0f) { + D_800E4E10[D_8004A7C4->objId] = arg2; + gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId]; + } + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800AFEB8(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + D_800E4FD0[D_8004A7C4->objId] = arg0; + gEntitiesScaleXArray[D_8004A7C4->objId] = D_800E4FD0[D_8004A7C4->objId]; + } + if (arg1 != 65535.0f) { + D_800E5190[D_8004A7C4->objId] = arg1; + gEntitiesScaleYArray[D_8004A7C4->objId] = D_800E5190[D_8004A7C4->objId]; + } + if (arg2 != 65535.0f) { + D_800E5350[D_8004A7C4->objId] = arg2; + gEntitiesScaleZArray[D_8004A7C4->objId] = D_800E5350[D_8004A7C4->objId]; + } + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800AFFD0(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + D_800E2090[D_8004A7C4->objId] += arg0; + gEntitiesNextPosXArray[D_8004A7C4->objId] = D_800E2090[D_8004A7C4->objId]; + } + if (arg1 != 65535.0f) { + D_800E2250[D_8004A7C4->objId] += arg1; + gEntitiesNextPosYArray[D_8004A7C4->objId] = D_800E2250[D_8004A7C4->objId]; + } + if (arg2 != 65535.0f) { + D_800E2410[D_8004A7C4->objId] += arg2; + gEntitiesNextPosZArray[D_8004A7C4->objId] = D_800E2410[D_8004A7C4->objId]; + } + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800B0100(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + gEntitiesAngleXArray[D_8004A7C4->objId] += arg0; + } + if (arg1 != 65535.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += arg1; + } + if (arg2 != 65535.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] += arg2; + } + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800B01DC(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + D_800E4FD0[D_8004A7C4->objId] += arg0; + gEntitiesScaleXArray[D_8004A7C4->objId] = D_800E4FD0[D_8004A7C4->objId]; + } + if (arg1 != 65535.0f) { + D_800E5190[D_8004A7C4->objId] += arg1; + gEntitiesScaleYArray[D_8004A7C4->objId] = D_800E5190[D_8004A7C4->objId]; + } + if (arg2 != 65535.0f) { + D_800E5350[D_8004A7C4->objId] += arg2; + gEntitiesScaleZArray[D_8004A7C4->objId] = D_800E5350[D_8004A7C4->objId]; + } + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800B030C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, s32 arg9) { + if (arg0 != 65535.0f) { + D_800E2090[D_8004A7C4->objId] = arg0; + } + if (arg3 != 65535.0f) { + D_800E2250[D_8004A7C4->objId] = arg3; + } + if (arg6 != 65535.0f) { + D_800E2410[D_8004A7C4->objId] = arg6; + } + if (arg1 != 65535.0f) { + D_800E4A90[D_8004A7C4->objId] = arg1; + } + if (arg4 != 65535.0f) { + D_800E4C50[D_8004A7C4->objId] = arg4; + } + if (arg7 != 65535.0f) { + D_800E4E10[D_8004A7C4->objId] = arg7; + } + if (arg2 != 65535.0f) { + D_800E4FD0[D_8004A7C4->objId] = arg2; + } + if (arg5 != 65535.0f) { + D_800E5190[D_8004A7C4->objId] = arg5; + } + if (arg8 != 65535.0f) { + D_800E5350[D_8004A7C4->objId] = arg8; + } + if (arg9 != 0) { + finish_current_thread(arg9); + } +} + +void func_800B04D4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, s32 arg9) { + if (arg0 != 65535.0f) { + D_800E3050[D_8004A7C4->objId] = arg0; + } + if (arg1 != 65535.0f) { + D_800E3590[D_8004A7C4->objId] = arg1; + } + if (arg2 == 65536.0f) { + D_800E3AD0[D_8004A7C4->objId] = 65535.0f; + } else if (arg2 != 65535.0f) { + D_800E3AD0[D_8004A7C4->objId] = ABSF(arg2); + } + if (arg3 != 65535.0f) { + D_800E3210[D_8004A7C4->objId] = arg3; + } + if (arg4 != 65535.0f) { + D_800E3750[D_8004A7C4->objId] = arg4; + } + if (arg5 == 65536.0f) { + D_800E3C90[D_8004A7C4->objId] = 65535.0f; + } else if (arg5 != 65535.0f) { + D_800E3C90[D_8004A7C4->objId] = ABSF(arg5); + } + if (arg6 != 65535.0f) { + D_800E33D0[D_8004A7C4->objId] = arg6; + } + if (arg7 != 65535.0f) { + D_800E3910[D_8004A7C4->objId] = arg7; + } + if (arg8 == 65536.0f) { + D_800E3E50[D_8004A7C4->objId] = 65535.0f; + } else if (arg8 != 65535.0f) { + D_800E3E50[D_8004A7C4->objId] = ABSF(arg8); + } + if (arg9 != 0) { + finish_current_thread(arg9); + } +} + +// regalloc +#ifdef NON_MATCHING +void func_800B07B4(u8 arg0, u8 arg1, u8 arg2, s32 arg3) { + if (((arg0 & 1) | (2 | 4)) != 0) { + if (arg0 & 1) { + D_800E3050[D_8004A7C4->objId] = 0.0f; + } + if ((arg0 & 2) != 0) { + D_800E3210[D_8004A7C4->objId] = 0.0f; + } + if ((arg0 & 4) != 0) { + D_800E33D0[D_8004A7C4->objId] = 0.0f; + } + } + if (((arg1 & 1) | (2 | 4)) != 0) { + if ((arg1 & 1) != 0) { + D_800E3590[D_8004A7C4->objId] = 0.0f; + } + if ((arg1 & 2) != 0) { + D_800E3750[D_8004A7C4->objId] = 0.0f; + } + if ((arg1 & 4) != 0) { + D_800E3910[D_8004A7C4->objId] = 0.0f; + } + } + if (((arg2 & 1) | (2 | 4)) != 0) { + if ((arg2 & 1) != 0) { + D_800E3AD0[D_8004A7C4->objId] = 65535.0f; + } + if ((arg2 & 2) != 0) { + D_800E3C90[D_8004A7C4->objId] = 65535.0f; + } + if ((arg2 & 4) != 0) { + D_800E3E50[D_8004A7C4->objId] = 65535.0f; + } + } + if (arg3 != 0) { + finish_current_thread(arg3); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B07B4.s") +#endif + +void func_800B0974(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + f32 temp_f0; + u32 temp_v0; + u32 temp_v0_2; + + if (arg0 != 65535.0f) { + if (D_800E10D0[D_8004A7C4->objId] == 1.0f) { + D_800E3050[D_8004A7C4->objId] = arg0; + } else { + D_800E3050[D_8004A7C4->objId] = -arg0; + } + } + if (arg1 != 65535.0f) { + if (D_800E10D0[D_8004A7C4->objId] == 1.0f) { + D_800E3590[D_8004A7C4->objId] = arg1; + } else { + D_800E3590[D_8004A7C4->objId] = -arg1; + } + } + if (arg2 == 65536.0f) { + D_800E3AD0[D_8004A7C4->objId] = 65535.0f; + } else if (arg2 != 65535.0f) { + D_800E3AD0[D_8004A7C4->objId] = arg2; + } + + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800B0AD4(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + D_800E64D0[D_8004A7C4->objId] = arg0; + } + if (arg1 != 65535.0f) { + D_800E6690[D_8004A7C4->objId] = arg1; + } + if (arg2 == 65536.0f) { + D_800E6850[D_8004A7C4->objId] = 65535.0f; + } else if (arg2 != 65535.0f) { + D_800E6850[D_8004A7C4->objId] = arg2; + } + + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800B0BC4(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { + if (arg0 != 65535.0f) { + if (D_800E6A10[D_8004A7C4->objId] == 1.0f) { + D_800E64D0[D_8004A7C4->objId] = arg0; + } else { + D_800E64D0[D_8004A7C4->objId] = -arg0; + } + } + if (arg1 != 65535.0f) { + if (D_800E6A10[D_8004A7C4->objId] == 1.0f) { + D_800E6690[D_8004A7C4->objId] = arg1; + } else { + D_800E6690[D_8004A7C4->objId] = -arg1; + } + } + if (arg2 == 65536.0f) { + D_800E6850[D_8004A7C4->objId] = 65535.0f; + } else if (arg2 != 65535.0f) { + D_800E6850[D_8004A7C4->objId] = arg2; + } + + if (arg3 != 0) { + finish_current_thread(arg3); + } +} + +void func_800B0D24(struct GObj *arg0) { + func_800B1C7C(arg0); + + if (D_800DEDD0[D_8004A7C4->objId] != NULL) { + if ((D_800DD8D0[D_8004A7C4->objId] & 1) == 0) { + if ((D_800DD8D0[D_8004A7C4->objId] & 0x80) == 0) { + D_800DEDD0[D_8004A7C4->objId](arg0); + } + } + } +} + +// this function calls D_800DF150 and D_800DEF90 +s32 func_800B0D90(struct GObj *arg0) { + if (D_800DD710[D_8004A7C4->objId] != -1 && !(D_800DD8D0[D_8004A7C4->objId] & 0x80)) { + if (!(D_800DD8D0[D_8004A7C4->objId] & 2)) { + if (arg0->unk3C != NULL) { + if (D_800DEF90[D_8004A7C4->objId] != NULL) { + D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; + func_8000E324_ovl1(arg0); + } + } + } + if ((D_800DD8D0[D_8004A7C4->objId] & 4) == 0) { + if (D_800DEF90[D_8004A7C4->objId] != 0) { + D_800DEF90[D_8004A7C4->objId](arg0); + } + } + D_800E56D0[D_8004A7C4->objId] = 0.0f; + D_800E5510[D_8004A7C4->objId] = D_800E56D0[D_8004A7C4->objId]; + D_800E5DD0[D_8004A7C4->objId] = 0.0f; + D_800E5A50[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5DD0[D_8004A7C4->objId]; + if (D_800DF150[D_8004A7C4->objId] != NULL) { + if (!(D_800DD8D0[D_8004A7C4->objId] & 8)) { + D_800DF150[D_8004A7C4->objId](arg0); + } + } + } +} + +typedef union { + u32 i; + f32 f; +} _IF; + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B0F28.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B113C.s") + +#ifdef NON_MATCHING +void func_800B1378(s32 arg1, s32 arg2, f32 arg3) { + if (arg2 != -2) { + D_800DD8D0[D_8004A7C4->objId] |= 0x80000000; + } + else if (arg2 == -1) { // move this comparison to right after the first one somehow + D_800DD8D0[D_8004A7C4->objId] |= 0x40000000; + } + else if (D_800DF310[D_8004A7C4->objId] != 0) { + D_800DF310[D_8004A7C4->objId](arg1, arg2, arg3); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1378.s") +#endif + +void func_800B1434(s32 arg0) { + +} + +void func_800B143C(struct GObj *this) { + if ((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) { + if (this->unk3C != NULL) { + this->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + this->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + this->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + this->unk3C->angleVec.x = gEntitiesAngleXArray[D_8004A7C4->objId]; + this->unk3C->angleVec.y = gEntitiesAngleYArray[D_8004A7C4->objId]; + this->unk3C->angleVec.z = gEntitiesAngleZArray[D_8004A7C4->objId]; + this->unk3C->scaleVec.x = gEntitiesScaleXArray[D_8004A7C4->objId]; + this->unk3C->scaleVec.y = gEntitiesScaleYArray[D_8004A7C4->objId]; + this->unk3C->scaleVec.z = gEntitiesScaleZArray[D_8004A7C4->objId]; + } + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B158C.s") + +void func_800B175C(struct GObj *this) { + if (((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) && (this->unk3C != 0)) { + func_8019BBEC_ovl7(); + func_800B143C(this); + } +} + +void func_800B17B8(struct GObj *this) { + if (((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) && (this->unk3C != 0)) { + func_800B143C(this); + func_801D1CAC_ovl8(); + } +} + +void func_800B1814(struct GObj *this) { + if (((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) && (this->unk3C != 0)) { + func_800B143C(this); + func_801D1E98_ovl1(); + } +} + +void func_800B1870(s32 arg0) { + +} + +void func_800B1878(s32 arg0) { + while (1) { + finish_current_thread(0x7FFFFFFF); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B18B4.s") + +extern struct GObjProcess *D_8004A7D0; +void func_800A9D64(u16); +void func_800A99E4(u32); + +// some sort of destructor? +void func_800B1900(u16 arg0) { + struct GObj *temp_t7 = D_800DE350[arg0]; + + func_800A9D64(arg0); + func_800A99E4(arg0); + if (temp_t7 == D_8004A7C4) { + func_800AE138(D_8004A7C4->objId); + if (D_8004A7D0->kind == 0) { + func_8000A29C_ovl1(D_8004A7C4); + finish_current_thread(1); + return; + } + func_8000A29C(D_8004A7C4); + return; + } + func_800AE138(temp_t7->objId); + func_8000A29C_ovl1(temp_t7); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B19B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B19F4.s") + +void func_800B1A4C(s32 arg0, s32 arg1) { + int i; + + for (i = 0; i < 0x70; i++) { + if (D_800DD710[i] != -1) { + if (i != arg1) { + if ((D_800DD8D0[i] & 0x80) == 0) { + D_800DD8D0[i] = (D_800DD8D0[i] & ~0xFF) | (arg0 & 0xFF); + func_800B1C7C(D_800DE350[i]); + } + } + } + } +} + +void func_800B1B28(s32 arg0) { + int i; + + for (i = 0; i < 0x70; i++) { + if (D_800DD710[i] != -1) { + if ((D_800DD8D0[i] & 0x80) == 0) { + D_800DD8D0[i] = (D_800DD8D0[i] & ~0xFF) | (arg0 & 0xFF); + func_800B1C7C(D_800DE350[i]); + } + } + } +} + +void func_800B1BF0(s32 arg0, s32 arg1) { + if (arg0 == 0x80) { + D_800DD8D0[arg1] = (D_800DD8D0[arg1] & ~0xFF) + 0x80; + func_800B1C7C(D_800DE350[arg1]); + } else { + D_800DD8D0[arg1] = D_800DD8D0[arg1] & ~0xFF; + func_800B1C7C(D_800DE350[arg1]); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1C7C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1E08.s") + + +// current entity stack size? +extern u32 gNewEntityStackSize; + +void assign_new_process_entry(struct GObjProcess *ts, void (*func)(struct GObj *)) { + struct GObjThread *gthread; + s32 id; + + gthread = ts->payload.thread; + id = gthread->thread.id; + ts->entryPoint = func; + osDestroyThread(>hread->thread); + osCreateThread(>hread->thread, + id, + func, + ts->gobj, + >hread->objStack->stack[gNewEntityStackSize / 8], + 0x33); + gthread->objStack->stack[7] = STACK_TOP_MAGIC; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1F68.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1F70.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1FD0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B20E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B21FC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2288.s") + +// all of these functions are easy i think if you start incorporating MtxF's +void func_800B2340(Vector *vec, struct UnkStruct8004A7C4_3C *arg1, u32 track) { + f32 temp_f0; + f32 temp_f0_2; + f32 temp_f0_3; + f32 temp_f0_4; + f32 temp_f0_5; + f32 temp_f0_6; + f32 temp_f12; + f32 temp_f12_2; + f32 temp_f12_3; + f32 temp_f2; + f32 temp_f2_2; + f32 temp_f2_3; + struct UnkStruct8004A7C4_3C *var_s0; + u32 var_a2; + + var_a2 = track; + var_s0 = arg1; + if (var_a2 == 0x0000FFFF) { + var_a2 = D_8004A7C4->objId; + } + if (var_s0 == NULL) { + var_s0 = D_8004A7C4->unk3C; + } + track = var_a2; + guMtxIdentF(&spB8[0]); + do { + if (var_s0->unk14 != 1) { + temp_f0 = var_s0->scaleVec.x; + if ((temp_f0 != 1.0f) || (var_s0->scaleVec.y != 1.0f) || (var_s0->scaleVec.z != 1.0f)) { + HS64_MkScaleMtxF(&sp78[0], temp_f0, var_s0->scaleVec.y, var_s0->scaleVec.z); + guMtxCatF(&spB8[0], &sp78[0], &spB8[0]); + } + temp_f0_2 = var_s0->angleVec.x; + if ((temp_f0_2 != 0.0f) || (var_s0->angleVec.y != 0.0f) || (var_s0->angleVec.z != 0.0f)) { + HS64_MkRotationMtxF(&sp78[0], temp_f0_2, var_s0->angleVec.y, var_s0->angleVec.z); + guMtxCatF(&spB8[0], &sp78[0], &spB8[0]); + } + temp_f0_3 = var_s0->posVec.x; + if ((temp_f0_3 != 0.0f) || (var_s0->posVec.y != 0.0f) || (var_s0->posVec.z != 0.0f)) { + HS64_MkTranslateMtxF(&sp78[0], temp_f0_3, var_s0->posVec.y, var_s0->posVec.z); + guMtxCatF(&spB8[0], &sp78[0], &spB8[0]); + } + } else { + temp_f0_4 = gEntitiesScaleXArray[track]; + temp_f2 = gEntitiesScaleYArray[track]; + temp_f12 = gEntitiesScaleZArray[track]; + if ((temp_f0_4 != 1.0f) || (temp_f2 != 1.0f) || (temp_f12 != 1.0f)) { + HS64_MkScaleMtxF(&sp78[0], temp_f0_4, temp_f2, temp_f12); + guMtxCatF(&spB8[0], &sp78[0], &spB8[0]); + } + temp_f0_5 = gEntitiesAngleXArray[track]; + temp_f2_2 = gEntitiesAngleYArray[track]; + temp_f12_2 = gEntitiesAngleZArray[track]; + if ((temp_f0_5 != 0.0f) || (temp_f2_2 != 0.0f) || (temp_f12_2 != 0.0f)) { + HS64_MkRotationMtxF(&sp78[0], temp_f0_5, temp_f2_2, temp_f12_2); + guMtxCatF(&spB8[0], &sp78[0], &spB8[0]); + } + temp_f0_6 = gEntitiesNextPosXArray[track]; + temp_f2_3 = gEntitiesNextPosYArray[track]; + temp_f12_3 = gEntitiesNextPosZArray[track]; + if ((temp_f0_6 != 0.0f) || (temp_f2_3 != 0.0f) || (temp_f12_3 != 0.0f)) { + HS64_MkTranslateMtxF(&sp78[0], temp_f0_6, temp_f2_3, temp_f12_3); + guMtxCatF(&spB8[0], &sp78[0], &spB8[0]); + } + } + var_s0 = var_s0->unk14; + } while (var_s0 != 1); + vec->x = spE8; + vec->y = spEC; + vec->z = spF0; +} +// GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2340.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B26D8.s") + +void func_800B2928(Vector *vec, struct UnkStruct8004A7C4_3C *userData, u32 track) { + Mat4 finalMtx; + Mat4 tmpMtx; + + track = track; + if (track == 0xFFFF) { + track = D_8004A7C4->objId; + } + userData = userData; + if (userData == 0) { + userData = D_8004A7C4->unk3C; + } + guMtxIdentF(finalMtx); + do { + if ((u32) userData->unk14 != 1) { + if ((userData->scaleVec.x != 1.0f) || (userData->scaleVec.y != 1.0f) || (userData->scaleVec.z != 1.0f)) { + HS64_MkScaleMtxF(tmpMtx, userData->scaleVec.x, userData->scaleVec.y, userData->scaleVec.z); + guMtxCatF(finalMtx, tmpMtx, finalMtx); + } + } else { + if ((gEntitiesScaleXArray[track] != 1.0f) || (gEntitiesScaleYArray[track] != 1.0f) || (gEntitiesScaleZArray[track] != 1.0f)) { + HS64_MkScaleMtxF(tmpMtx, gEntitiesScaleXArray[track], gEntitiesScaleYArray[track], gEntitiesScaleZArray[track]); + guMtxCatF(finalMtx, tmpMtx, finalMtx); + } + } + userData = userData->unk14; + } while ((u32) userData != 1); + + vec->x = finalMtx[0][0]; + vec->y = finalMtx[1][1]; + vec->z = finalMtx[2][2]; +} + +void func_800B2AD4(Vector *vec, struct UnkStruct8004A7C4_3C *userData, u32 track) { + Vector tmp; + Mat4 finalMtx; // 0xBC + Mat4 tmpMtx; // 0x7C + + if (track == 0xFFFF) { + track = D_8004A7C4->objId; + } + + if (userData == 0) { + userData = D_8004A7C4->unk3C; + } + guMtxIdentF(finalMtx); + do { + if ((u32) userData->unk14 != 1) { + if ((userData->scaleVec.x != 1.0f) || (userData->scaleVec.y != 1.0f) || (userData->scaleVec.z != 1.0f)) { + HS64_MkScaleMtxF(tmpMtx, 1.0f / userData->scaleVec.x, 1.0f / userData->scaleVec.y, 1.0f / userData->scaleVec.z); + guMtxCatF(tmpMtx, finalMtx, finalMtx); + } + if ((userData->angleVec.x != 0.0f) || (userData->angleVec.y != 0.0f) || (userData->angleVec.z != 0.0f)) { + func_800A465C(tmpMtx, -userData->angleVec.x, -userData->angleVec.y, -userData->angleVec.z); + guMtxCatF(tmpMtx, finalMtx, finalMtx); + } + if ((userData->posVec.x != 0.0f) || (userData->posVec.y != 0.0f) || (userData->posVec.z != 0.0f)) { + HS64_MkTranslateMtxF(tmpMtx, -userData->posVec.x, -userData->posVec.y, -userData->posVec.z); + guMtxCatF(tmpMtx, finalMtx, finalMtx); + } + } else { + if ((gEntitiesScaleXArray[track] != 1.0f) || (gEntitiesScaleYArray[track] != 1.0f) || (gEntitiesScaleZArray[track] != 1.0f)) { + HS64_MkScaleMtxF(tmpMtx, + 1.0f / gEntitiesScaleXArray[track], + 1.0f / gEntitiesScaleYArray[track], + 1.0f / gEntitiesScaleZArray[track] + ); + guMtxCatF(tmpMtx, finalMtx, finalMtx); + } + if ((gEntitiesAngleXArray[track] != 0.0f) || (gEntitiesAngleYArray[track] != 0.0f) || (gEntitiesAngleZArray[track] != 0.0f)) { + func_800A465C(tmpMtx, + -gEntitiesAngleXArray[track], + -gEntitiesAngleYArray[track], + -gEntitiesAngleZArray[track] + ); + guMtxCatF(tmpMtx, finalMtx, finalMtx); + } + if ((gEntitiesNextPosXArray[track] != 0.0f) || (gEntitiesNextPosYArray[track] != 0.0f) || (gEntitiesNextPosZArray[track] != 0.0f)) { + HS64_MkTranslateMtxF(tmpMtx, + -gEntitiesNextPosXArray[track], + -gEntitiesNextPosYArray[track], + -gEntitiesNextPosZArray[track] + ); + guMtxCatF(tmpMtx, finalMtx, finalMtx); + } + } + userData = userData->unk14; + } while ((u32) userData != 1); + + tmp.x = vec->x; + tmp.y = vec->y; + tmp.z = vec->z; + + vec->x = ((finalMtx[0][0] * tmp.x) + (finalMtx[1][0] * tmp.y) + (finalMtx[2][0] * tmp.z)) + + finalMtx[3][0]; + vec->y = ((finalMtx[0][1] * tmp.x) + (finalMtx[1][1] * tmp.y) + (finalMtx[2][1] * tmp.z)) + + finalMtx[3][1]; + vec->z = ((finalMtx[0][2] * tmp.x) + (finalMtx[1][2] * tmp.y) + (finalMtx[2][2] * tmp.z)) + + finalMtx[3][2]; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2F54.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2F90.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3008.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3070.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3094.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B30BC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3158.s") + +void func_800B31B4(void) { + s32 pad; + struct GObj *gobj = D_800DE350[D_8004A7C4->objId]; + + if (func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]) != 0) { + gobj->unk48 = NULL; + func_8019B7D8_ovl1(gobj); + func_8019D8A0_ovl1((u16) D_8004A7C4->objId); + } +} + +// stack diffs +// https://decomp.me/scratch/DsIpj +#ifdef NON_MATCHING +extern const f32 D_800D67E8; +extern struct GObj *D_800D799C; +f32 func_800A4F48(void *, Vector *, f32, f32); + +s32 func_800B3234(f32 inputX, f32 inputY, f32 inputZ) { + s32 sp2C; + Vector inVec; + Vector delVec; + + D_800E6F50[D_8004A7C4->objId].z = 0.0f; + if (gEntitiesNextPosYArray[D_8004A7C4->objId] < D_800D67E8) { + D_800E6F50[D_8004A7C4->objId].z = 1.0f; + return 1; + } + inVec.x = inputX; + inVec.y = inputY; + inVec.z = inputZ; + sp2C = func_800A4F48(D_800D799C->unk3C, &inVec, 1.7f, 2.4f); + D_800E6F50[D_8004A7C4->objId].x = inVec.x; + D_800E6F50[D_8004A7C4->objId].y = inVec.y; + + delVec.x = inputX - gEntitiesNextPosXArray[0]; + delVec.y = inputY - (gEntitiesNextPosYArray[0] + 20.0f); + delVec.z = inputZ - gEntitiesNextPosZArray[0]; + + D_800E6F50[D_8004A7C4->objId].originOffset = sqrtf(VEC_MAG_SQUARE(delVec)); + if (sp2C == 0) { + if (D_800E6F50[D_8004A7C4->objId].originOffset > 500.0f) { + D_800E6F50[D_8004A7C4->objId].z = 1.0f; + return 1; + } + } + return 0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3234.s") +#endif + +extern f32 D_800D67EC; +void func_800B33F4(void) { + D_800E64D0[D_8004A7C4->objId] = 0.0f; + + D_800E3050[D_8004A7C4->objId] = + D_800E3210[D_8004A7C4->objId] = + D_800E33D0[D_8004A7C4->objId] = D_800E64D0[D_8004A7C4->objId]; + + D_800E6690[D_8004A7C4->objId] = 0.0f; + + D_800E3590[D_8004A7C4->objId] = + D_800E3750[D_8004A7C4->objId] = + D_800E3910[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; + + D_800E6850[D_8004A7C4->objId] = D_800D67EC; + + D_800E3AD0[D_8004A7C4->objId] = + D_800E3C90[D_8004A7C4->objId] = + D_800E3E50[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; +} + +extern f32 D_800D67F0; +void func_800B3520(void) { + f32 temp_f0; + + D_800E6690[D_8004A7C4->objId] = 0.0f; + temp_f0 = D_800E6690[D_8004A7C4->objId]; + D_800E3750[D_8004A7C4->objId] = temp_f0; + D_800E64D0[D_8004A7C4->objId] = temp_f0; + D_800E3210[D_8004A7C4->objId] = temp_f0; + D_800E6850[D_8004A7C4->objId] = D_800D67F0; + D_800E3C90[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; +} diff --git a/src.old/ovl1/ovl1_7.h b/src.old/ovl1/ovl1_7.h new file mode 100644 index 000000000..1c8b5f17f --- /dev/null +++ b/src.old/ovl1/ovl1_7.h @@ -0,0 +1,55 @@ +#ifndef _OVL1_7_H_ +#define _OVL1_7_H_ + +#include "GObj.h" +#include "main/object_manager.h" + + +// GObjThreadStack? +struct UnkStruct800B1EC8 { + struct UnkStruct800B1EC8 *unk0; + struct UnkStruct800B1EC8 *unk4; + struct UnkStruct800B1EC8 *unk8; + struct UnkStruct800B1EC8 *unkC; // pointer? + u32 unk10; + u32 unk14; // pointer? + u32 *unk18; + GObjThread *unk1C; + + void (*unk20)(struct GObj *); + +}; + +void func_800B1900(u16 track); +void func_800AFBB4(s32, struct GObj*); +void func_800AED80(f32 arg0, s32 arg1); +void func_800B1434(s32 arg0); +void func_800AECC0(f32); +void func_800AED20(f32); +void func_800B2340(Vector *vec, struct LayoutNode *node, u32 track); +void func_800B26D8(Vector *vec, struct LayoutNode *node, u32 track); +void func_800B2928(Vector *vec, struct LayoutNode *node, u32 track); +void func_800B1F68(struct GObjProcess *proc, void *(ptr)()); +// 80293D50 +// 80293CE4 +// 80293DE0 +// 00000000 + +// 00000002 +// 00000000 +// 802964B8 +// 8022FED0 + +// 800B1878 +// 80293CE4 +// 00000000 +// 80293CE4 + +// 80293CC0 +// 00000003 +// 00000000 +// 802964B8 +// 8022FD10 +// 8011C720 + +#endif \ No newline at end of file diff --git a/src.old/ovl1/ovl1_8.c b/src.old/ovl1/ovl1_8.c new file mode 100644 index 000000000..6672d0f2d --- /dev/null +++ b/src.old/ovl1/ovl1_8.c @@ -0,0 +1,1154 @@ +#include +#include +#include "ovl1_6.h" +#include "ovl2/ovl2_2.h" +#include "D_8004A7C4.h" +#include "unk_structs/D_800E1B50.h" +#include "sounds.h" + +extern struct GObj *D_800DE350[]; +s32 func_800B3234(f32 inputX, f32 inputY, f32 inputZ); +#define M_TAU (2 * M_PIF) + +void func_800B35F0(void) { + gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; + gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; + gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; + D_800E6150[D_8004A7C4->objId] = D_800E5F90[D_8004A7C4->objId]; + D_800E6D90[D_8004A7C4->objId] = D_800E6BD0[D_8004A7C4->objId]; +} + +void func_800B369C(void) { + gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]; + if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; + } + else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; + if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosZArray[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]; + if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; + } + else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; + } +} + +void func_800B3838(void) { + gEntitiesNextPosXArray[D_8004A7C4->objId] = (D_800E2090[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]) + + gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; + } + else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosYArray[D_8004A7C4->objId] = (D_800E2250[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]) + + gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; + if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosZArray[D_8004A7C4->objId] = (D_800E2410[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]) + + gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; + } + else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; + } +} + +void func_800B3A6C(void) { + Vector vec; + struct GeometryBlockHeader *header = gSegment4StartArray[D_800E0D50[D_8004A7C4->objId]]; + + if (header->lenLayout >= D_800E0F10[D_8004A7C4->objId]) { + func_800B2340(&vec, + D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][D_800E0F10[D_8004A7C4->objId]], + D_800E0D50[D_8004A7C4->objId] + ); + + gEntitiesNextPosXArray[D_8004A7C4->objId] = + (D_800E2090[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]) + + (vec.x); + + if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; + } else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosYArray[D_8004A7C4->objId] = + (D_800E2250[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]) + + (vec.y); + + if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosZArray[D_8004A7C4->objId] = + (D_800E2410[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]) + + (vec.z); + + if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; + } else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; + } + } +} + +void func_800B3CEC(void) { + Vector posVec; + Vector angleVec; + + struct GeometryBlockHeader *header = gSegment4StartArray[D_800E0D50[D_8004A7C4->objId]]; + + if (header->lenLayout >= D_800E0F10[D_8004A7C4->objId]) { + func_800B2340(&posVec, + D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][D_800E0F10[D_8004A7C4->objId]], + D_800E0D50[D_8004A7C4->objId] + ); + func_800B26D8(&angleVec, + D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][D_800E0F10[D_8004A7C4->objId]], + D_800E0D50[D_8004A7C4->objId] + ); + + gEntitiesNextPosXArray[D_8004A7C4->objId] = + (D_800E2090[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]) + + (posVec.x); + gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId] + angleVec.x; + + if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; + } else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosYArray[D_8004A7C4->objId] = + (D_800E2250[D_8004A7C4->objId]+= D_800E3210[D_8004A7C4->objId]) + + (posVec.y); + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId] + angleVec.y; + + + if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + gEntitiesNextPosZArray[D_8004A7C4->objId] = + (D_800E2410[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]) + + (posVec.z); + gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId] + angleVec.z; + + if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; + } else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; + } + } +} + +void func_800B4024(void) { + D_800E3050[D_8004A7C4->objId] += D_800E3590[D_8004A7C4->objId]; + D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; + D_800E33D0[D_8004A7C4->objId] += D_800E3910[D_8004A7C4->objId]; + + if (D_800E3AD0[D_8004A7C4->objId] != 65535.0f) { + if (D_800E3050[D_8004A7C4->objId] > 0.0f) { + if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; + } + } else { + if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; + } + } + } + + if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } + } else { + if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } + } + } + + if (D_800E3E50[D_8004A7C4->objId] != 65535.0f) { + if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { + if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; + } + } else { + if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; + } + } + } +} + +void func_800B4218(void) { + D_800E3050[D_8004A7C4->objId] += D_800E3590[D_8004A7C4->objId]; + D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; + D_800E33D0[D_8004A7C4->objId] += D_800E3910[D_8004A7C4->objId]; + + if (D_800E3AD0[D_8004A7C4->objId] != 65535.0f) { + if (D_800E3590[D_8004A7C4->objId] != 0) { + if (D_800E3590[D_8004A7C4->objId] > 0.0f) { + if (D_800E3050[D_8004A7C4->objId] > 0.0f) { + if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; + } + } + } else { + if (D_800E3050[D_8004A7C4->objId] < 0.0f) { + if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; + } + } + } + } else { + if (D_800E3050[D_8004A7C4->objId] > 0.0f) { + if (D_800E3050[D_8004A7C4->objId] > 0.0f) { + if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; + } + } + } else { + if (D_800E3050[D_8004A7C4->objId] < 0.0f) { + if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; + } + } + } + } + } + if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { + if (D_800E3750[D_8004A7C4->objId] != 0) { + if (D_800E3750[D_8004A7C4->objId] > 0.0f) { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } + } + } else { + if (D_800E3210[D_8004A7C4->objId] < 0.0f) { + if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } + } + } + } else { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } + } + } else { + if (D_800E3210[D_8004A7C4->objId] < 0.0f) { + if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } + } + } + } + } + if (D_800E3E50[D_8004A7C4->objId] != 65535.0f) { + if (D_800E3910[D_8004A7C4->objId] != 0) { + if (D_800E3910[D_8004A7C4->objId] > 0.0f) { + if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { + if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; + } + } + } else { + if (D_800E33D0[D_8004A7C4->objId] < 0.0f) { + if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; + } + } + } + } else { + if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { + if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { + if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; + } + } + } else { + if (D_800E33D0[D_8004A7C4->objId] < 0.0f) { + if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; + } + } + } + } + } +} + +void func_800B4640(void) { + D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; + + if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } + } else { + if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } + } + } +} + +void func_800B46F8(void) { + D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; + + if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { + if (D_800E3750[D_8004A7C4->objId] != 0) { + if (D_800E3750[D_8004A7C4->objId] > 0.0f) { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } + } + } else { + if (D_800E3210[D_8004A7C4->objId] < 0.0f) { + if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } + } + } + } else { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } + } + } else { + if (D_800E3210[D_8004A7C4->objId] < 0.0f) { + if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } + } + } + } + } +} + +void func_800B4864(void) { + D_800E64D0[D_8004A7C4->objId] += D_800E6690[D_8004A7C4->objId]; + + if (D_800E6850[D_8004A7C4->objId] != 65535.0f) { + if (D_800E64D0[D_8004A7C4->objId] > 0.0f) { + if (D_800E6850[D_8004A7C4->objId] < D_800E64D0[D_8004A7C4->objId]) { + D_800E64D0[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; + } + } else { + if (D_800E64D0[D_8004A7C4->objId] < -D_800E6850[D_8004A7C4->objId]) { + D_800E64D0[D_8004A7C4->objId] = -D_800E6850[D_8004A7C4->objId]; + } + } + } +} + +void func_800B491C(s32 arg0) { + +} + +void func_800B4924(s32 arg0) { + func_800B35F0(); + func_800B4024(); + func_800B369C(); +} + +void func_800B4954(s32 arg0) { + f32 temp; + + func_800B35F0(); + func_800B4864(); + temp = D_800E64D0[D_8004A7C4->objId]; + + D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + func_800F8E6C(arg0); + D_800E64D0[D_8004A7C4->objId] = temp; + func_800B4640(); + func_800B369C(); +} + +void func_800B49F8(s32 arg0) { + f32 tmp; + + func_800B35F0(); + func_800B4864(); + tmp = D_800E64D0[D_8004A7C4->objId]; + D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + func_800F8E6C(arg0); + D_800E64D0[D_8004A7C4->objId] = tmp; + func_800B4640(); + func_800B369C(); + if (func_800B3158() == 0) { + func_800B1900((u16) D_8004A7C4->objId); + } +} + +void func_800B4AB8(s32 arg0) { + func_800B35F0(); + func_800B4024(); + gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]; + gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; + + if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; + } else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; + } +} + +void func_800B4B9C(s32 arg0) { + func_800B35F0(); + func_800B4024(); + gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId] + gEntitiesAngleXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId] + gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId] + gEntitiesAngleZArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesScaleXArray[D_8004A7C4->objId] = D_800E4FD0[D_8004A7C4->objId] * gEntitiesScaleXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesScaleYArray[D_8004A7C4->objId] = D_800E5190[D_8004A7C4->objId] * gEntitiesScaleYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesScaleZArray[D_8004A7C4->objId] = D_800E5350[D_8004A7C4->objId] * gEntitiesScaleZArray[D_800E0D50[D_8004A7C4->objId]]; + func_800B3838(); +} + +void func_800B4D40(s32 arg0) { + func_800B35F0(); + func_800B4024(); + func_800B3838(); +} + +void func_800B4D70(s32 arg0) { + func_800B35F0(); + func_800B4024(); + + gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId] + gEntitiesAngleXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId] + gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId] + gEntitiesAngleZArray[D_800E0D50[D_8004A7C4->objId]]; + + func_800B3838(); + + gEntitiesNextPosYArray[D_8004A7C4->objId] += 20.0f; + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B4EBC(s32 arg0) { + func_800B35F0(); + func_800B4024(); + func_800B3838(); + + gEntitiesNextPosYArray[D_8004A7C4->objId] += 20.0f; + + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B4F48(s32 arg0) { + func_800B35F0(); + func_800B4024(); + + gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId] + gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId] + gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; + + if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleZArray[D_8004A7C4->objId] = gEntitiesAngleZArray[D_8004A7C4->objId] - M_TAU; + return; + } + if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] = gEntitiesAngleZArray[D_8004A7C4->objId] + M_TAU; + } +} + +void func_800B5064(s32 arg0) { + func_800B35F0(); + func_800B4024(); + func_800B3A6C(); +} + +void func_800B5094(s32 arg0) { + func_800B35F0(); + func_800B4024(); + func_800B3CEC(); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B50C4.s") + +// applies kirby's speed (from kaze's hack) +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B531C.s") + +void func_800B5A7C(s32 arg0) { + gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; + gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; + gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; + D_800E6150[D_8004A7C4->objId] = D_800E5F90[D_8004A7C4->objId]; + D_800E6D90[D_8004A7C4->objId] = D_800E6BD0[D_8004A7C4->objId]; + + D_800E64D0[D_8004A7C4->objId] += D_800E6690[D_8004A7C4->objId]; + + D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; + + if (D_800E6850[D_8004A7C4->objId] < D_800E64D0[D_8004A7C4->objId]) { + D_800E64D0[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; + } else if (D_800E64D0[D_8004A7C4->objId] < -D_800E6850[D_8004A7C4->objId]) { + D_800E64D0[D_8004A7C4->objId] = -D_800E6850[D_8004A7C4->objId]; + } + + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } else if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } +} + +void func_800B5C28(s32 arg0) { + gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; + gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; + gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; + D_800E3050[D_8004A7C4->objId] += D_800E3590[D_8004A7C4->objId]; + D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; + D_800E33D0[D_8004A7C4->objId] += D_800E3910[D_8004A7C4->objId]; + + if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; + } else if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { + D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; + } + + if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; + } else if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { + D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; + } + + if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; + } else if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { + D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; + } +} + +extern f32 D_800D6848; + +#define CLAMP_RADIAN(x, val) \ + {\ + while ((val) <= (x)) (x) -= (val);\ + while ((x) < 0.0f) (x) += (val);\ + } + +void func_800B5E14(s32 arg0) { + while (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + while (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; + } +} + +void func_800B5FBC(s32 arg0) { + gEntitiesAngleXArray[D_8004A7C4->objId] += D_800E4A90[D_8004A7C4->objId]; + gEntitiesAngleYArray[D_8004A7C4->objId] += D_800E4C50[D_8004A7C4->objId]; + gEntitiesAngleZArray[D_8004A7C4->objId] += D_800E4E10[D_8004A7C4->objId]; + func_800B5E14(arg0); +} + +void func_800B6064(s32 arg0) { + gEntitiesAngleXArray[D_8004A7C4->objId] = gEntitiesAngleXArray[D_800E0D50[D_8004A7C4->objId]] + D_800E4A90[D_8004A7C4->objId]; + gEntitiesAngleYArray[D_8004A7C4->objId] = gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]] + D_800E4C50[D_8004A7C4->objId]; + gEntitiesAngleZArray[D_8004A7C4->objId] = gEntitiesAngleZArray[D_800E0D50[D_8004A7C4->objId]] + D_800E4E10[D_8004A7C4->objId]; + func_800B5E14(arg0); +} + +// https://decomp.me/scratch/O1BUJ +#ifdef NON_MATCHING +void func_800B6144(s32 arg0) { + s32 sp3C; + struct Sub800E1B50_Unk84 *temp_a0 = D_800E1B50[D_8004A7C4->objId]->unk84; + Vector delPosVec; + Vector finalPosVec; + + + if (D_800E8920[D_8004A7C4->objId] != 0) { + if (temp_a0) { + if (temp_a0->unk50 != 0x14) { + sp3C = temp_a0->unk50; + delPosVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + delPosVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + delPosVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + + func_80112A40(sp3C, &delPosVec, &finalPosVec); + if ((finalPosVec.x != 0.0f) || (finalPosVec.z != 0.0f)) { + func_800F8728(D_8004A7C4->objId, finalPosVec.x, finalPosVec.z); + } + gEntitiesNextPosXArray[D_8004A7C4->objId] += finalPosVec.x; + gEntitiesNextPosYArray[D_8004A7C4->objId] += finalPosVec.y; + gEntitiesNextPosZArray[D_8004A7C4->objId] += finalPosVec.z; + } + } + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B6144.s") +#endif + +void func_800B62AC(s32 arg0) { + func_800B5A7C(arg0); + D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + func_800F8E6C(D_800DE350[D_8004A7C4->objId]); + D_800E64D0[D_8004A7C4->objId] -= (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + gEntitiesNextPosYArray[D_8004A7C4->objId] += (D_800E3210[D_8004A7C4->objId] + D_800E5C10[D_8004A7C4->objId] + D_800E5890[D_8004A7C4->objId]); + func_800B5FBC(arg0); +} + +void func_800B63C0(s32 arg0) { + func_800B5C28(arg0); + gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]; + gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; + gEntitiesNextPosZArray[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]; + func_800B5FBC(arg0); +} + +void func_800B6474(s32 arg0) { + func_800B62AC(arg0); + func_800B6144(arg0); + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B658C(s32 arg0) { + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B31B4(); +} + +void func_800B6684(s32 arg0) { + func_800B62AC(arg0); + func_800B6144(arg0); + gEntitiesAngleYArray[D_8004A7C4->objId] = + (D_800E17D0[D_8004A7C4->objId]) + + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); + + while (M_TAU <= gEntitiesAngleYArray[D_8004A7C4->objId]) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B67A8(s32 arg0) { + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + D_800E17D0[D_8004A7C4->objId] + + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B31B4(); +} + +void func_800B68AC(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B6A2C(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B31B4(); +} + +void func_800B6B8C(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + D_800E17D0[D_8004A7C4->objId] + + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B31B4(); +} + +void func_800B6CF8(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + D_800E17D0[D_8004A7C4->objId] + + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B6E84(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B31B4(); +} + +void func_800B6FD8(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + D_800E17D0[ D_8004A7C4->objId] + + (D_800E6A10[ D_8004A7C4->objId] * (-M_PIF / 2)); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B31B4(); +} + +void func_800B7138(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B72AC(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + D_800E17D0[D_8004A7C4->objId] + + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B742C(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + func_800B31B4(); +} + +void func_800B74B8(s32 arg0) { + func_800B31B4(); +} + +void func_800B74D8(s32 arg0) { + func_800B63C0(arg0); + if (func_800B3158() == 0) { + func_800B1900((u16) D_8004A7C4->objId); + } +} + +void func_800B7514(s32 arg0) { + func_800B63C0(arg0); + func_800B31B4(); + D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; +} + +void func_800B7560(s32 arg0) { + + func_800B63C0(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + D_800E17D0[D_8004A7C4->objId] + + (D_800E6A10[D_8004A7C4->objId] == 1.0f ? (-M_PIF / 2) : (M_PIF / 2)); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } +} + +void func_800B7674(s32 arg0) { + func_800B63C0(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + D_800E17D0[D_8004A7C4->objId] + + (D_800E6A10[D_8004A7C4->objId] == 1.0f ? (-M_PIF / 2) : (M_PIF / 2)); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B31B4(); +} + +void func_800B7790(s32 arg0) { + func_800B63C0(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] += D_800E9020[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; + + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B78AC(s32 arg0) { + func_800B63C0(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] += D_800E9020[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; + + func_800B31B4(); +} + +void func_800B799C(s32 arg0) { + func_800B5064(arg0); + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B79F4(s32 arg0) { + D_800E5510[D_8004A7C4->objId] = + D_800E56D0[D_8004A7C4->objId] = + D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; + + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = + (D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]) + + D_800E4C50[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + func_800B31B4(); +} + +void func_800B7B64(s32 arg0) { + func_800B62AC(arg0); + func_800B6144(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + if (D_800E9AA0[D_8004A7C4->objId] == 0) { + gEntitiesAngleYArray[D_8004A7C4->objId] += (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); + } + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B31B4(); +} + +void func_800B7CA0(s32 arg0) { + func_800B62AC(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } +} + +void func_800B7D88(s32 arg0) { + func_800B63C0(arg0); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } +} + +// uhh +#ifdef NON_MATCHING +void func_800B7E44(void) { + D_800E2090[D_8004A7C4->objId] = D_800EB320[D_8004A7C4->objId] * (0.0f - gEntitiesNextPosXArray[D_8004A7C4->objId]); + D_800E2410[D_8004A7C4->objId] = D_800EB320[D_8004A7C4->objId] * (0.0f - gEntitiesNextPosXArray[D_8004A7C4->objId]); + D_800E2250[D_8004A7C4->objId] = 0.0f; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B7E44.s") +#endif + +void func_800B7ED4(s32 arg0) { + func_800B5A7C(arg0); + + D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + + func_800F8E6C(D_800DE350[D_8004A7C4->objId]); + + D_800E64D0[D_8004A7C4->objId] -= (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + + func_800B7E44(); + + gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E2090[D_8004A7C4->objId]; + gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; + gEntitiesNextPosZArray[D_8004A7C4->objId] += D_800E2410[D_8004A7C4->objId]; +} + +void func_800B8020(s32 arg0) { + func_800B7ED4(arg0); + + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B8130(s32 arg0) { + func_800B5C28(arg0); + + gEntitiesNextPosXArray[D_8004A7C4->objId] += (D_800E2090[D_8004A7C4->objId] + D_800E3050[D_8004A7C4->objId]); + gEntitiesNextPosYArray[D_8004A7C4->objId] += (D_800E2250[D_8004A7C4->objId] + D_800E3210[D_8004A7C4->objId]); + gEntitiesNextPosZArray[D_8004A7C4->objId] += (D_800E2410[D_8004A7C4->objId] + D_800E33D0[D_8004A7C4->objId]); +} + +void func_800B8208(s32 arg0) { + func_800B8130(arg0); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B8300(s32 arg0) { + gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesAngleYArray[D_8004A7C4->objId] = gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; +} + +// how +#ifdef NON_MATCHING +void func_800B83C8(s32 arg0) { + Vector sp30; + Vector sp24; + + sp24.x = D_800E2090[D_8004A7C4->objId]; + sp24.y = D_800E2250[D_8004A7C4->objId]; + sp24.z = D_800E2410[D_8004A7C4->objId]; + func_800A4958(&sp30, D_800DE350[D_800E0D50[D_8004A7C4->objId]]->unk3C->unk10, &sp24); + gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; + gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; + gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; + gEntitiesNextPosXArray[D_8004A7C4->objId] = sp30.x; + gEntitiesNextPosYArray[D_8004A7C4->objId] = sp30.y; + gEntitiesNextPosZArray[D_8004A7C4->objId] = sp30.z; + D_800E9C60[D_8004A7C4->objId] = 1; + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B83C8.s") +#endif + +void func_800B8550(s32 arg0) { + func_800B62AC(arg0); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} + +void func_800B8630(s32 arg0) { + func_800B62AC(arg0); + func_800B6144(arg0); + + while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { + gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; + } + while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { + gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; + } + + func_800B31B4(); +} diff --git a/src.old/ovl1/ovl1_8.h b/src.old/ovl1/ovl1_8.h new file mode 100644 index 000000000..380905b05 --- /dev/null +++ b/src.old/ovl1/ovl1_8.h @@ -0,0 +1,8 @@ +#ifndef OVL1_8_H +#define OVL1_8_H + +void func_800B5064(s32 arg0); +void func_800B4924(s32 arg0); +void func_800B4954(s32 arg0); + +#endif diff --git a/src.old/ovl1/save_file.c b/src.old/ovl1/save_file.c new file mode 100644 index 000000000..bca5e26fc --- /dev/null +++ b/src.old/ovl1/save_file.c @@ -0,0 +1,279 @@ +#include +#include +#include "save_file.h" + +#define SAVE_CHECKSUM_MAGIC 0x97538642 +#define SAVE_INIT_MAGIC 0x99999999 + + +void calc_header_checksum(void); +u32 calc_save_header_checksum(void); +extern u16 D_800ECB00[]; + +#ifdef NON_MATCHING +void func_800B86FC(void) { + s32 i; + s32 phi_v1; + + func_80004D00_ovl1(0, &gSaveBuffer1, 0x118); + if (calc_save_header_checksum() != gSaveBuffer1.header.checksum) { + func_800B9008(); + } + + for (i = 0; i < 3; i++) { + if (gSaveBuffer1.files[i].checksum == 0x99999999) { + break; + } + } + + gSaveBuffer1.header.head[2] = i; + calc_header_checksum(); + func_800B8BDC(); + + gSaveBuffer2 = gSaveBuffer1; + + // gSaveBuffer2.header.head[0] = gSaveBuffer1.header.head[0]; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B86FC.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B87E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B891C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8AD4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8B2C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8B58.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8B84.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8BB0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8BDC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8C08.s") + +extern void calc_file_checksum(u32 fileNum); +extern u8 D_800D5150[]; // TODO: get correct type for this +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8C34.s") + +// delete save file? +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8E00.s") + +s32 calc_save_file_checksum(u32 fileNum) { + u32 *i = &gSaveBuffer1.files[fileNum]; + u32 *saveEnd = &gSaveBuffer1.files[fileNum].checksum; + u32 resultBuffer = SAVE_CHECKSUM_MAGIC; + while (i != saveEnd) { + resultBuffer += *i; + i++; + } + return resultBuffer; +} + +void calc_file_checksum(u32 arg0) { + gSaveBuffer1.files[arg0].checksum = calc_save_file_checksum(arg0); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9008.s") + +#ifdef NON_MATCHING +u32 calc_save_header_checksum(void) { + s32 *i = gSaveBuffer1.header.head; + s32 *saveEnd = &gSaveBuffer1.header.checksum; + u32 resultBuffer = SAVE_CHECKSUM_MAGIC; + + + do { + resultBuffer += *(i++); + } + while (i != saveEnd); + // i++; + return resultBuffer; + + // int i = 0; + // u32 resultBuffer = SAVE_CHECKSUM_MAGIC; + + // do { + // resultBuffer += gSaveBuffer1.header.head[i++]; + // } while (i < 3); + + // for (i = 0; i < 3; i++) { + // resultBuffer += gSaveBuffer1.header.head[i]; + // } + // return resultBuffer; + + // s32 *i = gSaveBuffer1.header.head; + // s32 *saveEnd = &gSaveBuffer1.header.checksum; + // u32 resultBuffer; + // for (resultBuffer = SAVE_CHECKSUM_MAGIC; i != saveEnd; i++) resultBuffer+=*i; + // return resultBuffer; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9068.s") +#endif + + +void calc_header_checksum(void) { + gSaveBuffer1.header.checksum = calc_save_header_checksum(); +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9104.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B91B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B922C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B92B4.s") + + +extern u8 D_800BE5A8[]; + +// verify save +// calculates percent complete and more +#ifdef MIPS_TO_C_ +void verify_save(s32 fileNum) { + u32 i; + u32 percent; + + if (gSaveBuffer1.files[fileNum].hundredYardHopRecord < 600) { + gSaveBuffer1.files[fileNum].hundredYardHopRecord = 600; + } + if (gSaveBuffer1.files[fileNum].bumperCropBumpRecord > 200) { + gSaveBuffer1.files[fileNum].bumperCropBumpRecord = 200; + } + if (gSaveBuffer1.files[fileNum].checkerBoardChaseRecord < 600) { + gSaveBuffer1.files[fileNum].checkerBoardChaseRecord = 600; + } + gSaveBuffer1.files[fileNum].shards[23] = (u8)0; + gSaveBuffer1.files[fileNum].shards[3] = (u8)0; + gSaveBuffer1.files[fileNum].data38[3] = (u8)0; + percent = 0; + if (gSaveBuffer1.files[fileNum].cutscenesWatched & 2) { + percent = 2; + } + + + for (i = 0; i < 5; i++) { + if (i < gSaveBuffer1.files[fileNum].world - 1) { + gSaveBuffer1.files[fileNum].shards[8 + i] = 1; + } + } + // loop_9: + // phi_a2->unk44 = (u8)0; + // if (phi_a1 < (u32) (temp_v0->unk10 - 1)) { + // (temp_a3 + phi_a1)->unk44 = (u8)1U; + // } + // temp_a1 = phi_a1 + 1; + // phi_a2 = phi_a2 + 1; + // phi_a1 = (u32) temp_a1; + // if (temp_a1 < 5) { + // goto loop_9; + // } + if (gSaveBuffer1.files[fileNum].world >= 8) { + gSaveBuffer1.files[fileNum].data38[2] = 1; + gSaveBuffer1.files[fileNum].data38[1] = 1; + } + if (gSaveBuffer1.files[fileNum].world < 6) { + gSaveBuffer1.files[fileNum].data38[2] = 0; + gSaveBuffer1.files[fileNum].data38[1] = 0; + } + + // problematic loop; might have to regenerate in m2c + for (i = 0; i < 16; i++) { + if (gSaveBuffer1.files[fileNum].shards[8] != 0) { + percent += D_800BE5A8[i]; + } + if (gSaveBuffer1.files[fileNum].shards[i] & 1) + percent++; + if (gSaveBuffer1.files[fileNum].shards[i] & 2) + percent++; + if (gSaveBuffer1.files[fileNum].shards[i] & 4) + percent++; + } + + gSaveBuffer1.files[fileNum].percentComplete = percent; + gSaveBuffer1.files[fileNum].data13 = 0U; + if (gSaveBuffer1.files[fileNum].data38[1] != 0) { + gSaveBuffer1.files[fileNum].data13 = 1U; + } + gSaveBuffer1.files[fileNum].data14 = 0U; + if (gSaveBuffer1.files[fileNum].data38[2] != 0) { + gSaveBuffer1.files[fileNum].data14 = 1U; + } +} + +#else +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B92D8.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B94FC.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B96A0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9C50.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9CB4.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9D60.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9DC8.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9DF8.s") + +extern u8 D_800D6BC8[]; +extern u8 D_800D6BC5; + +s32 func_800B9E4C(void) { + s32 v0; + s32 a0; + + v0 = 0; + + for (a0 = 0; a0 < 24; a0++) { + if (D_800D6BC8[a0] & 1) { + v0++; + } + if (D_800D6BC8[a0] & 2) { + v0++; + } + if (D_800D6BC8[a0] & 4) { + v0++; + } + } + if (v0 < 0x42) { + return 0; + } + if (D_800D6BC5 != 0) { + return 1; + } + return 0; +} + +extern u32 gCutscenesWatched; +s32 check_cutscene_watched(s32 arg0) { + return (gCutscenesWatched >> arg0) & 1; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9F64.s") + + +s32 set_cutscene_watched(s32 arg0, s32 fileNum) { + gCutscenesWatched |= (1 << arg0); + + if (fileNum >= 0 && fileNum < 3) { + gSaveBuffer1.files[fileNum].cutscenesWatched = gCutscenesWatched; + } + return gCutscenesWatched; +} + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9FE0.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800BA284.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800BA40C.s") + +GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800BA5C4.s") diff --git a/src/ovl1/save_file.h b/src.old/ovl1/save_file.h similarity index 100% rename from src/ovl1/save_file.h rename to src.old/ovl1/save_file.h diff --git a/src/ovl10/ovl10_1.c b/src.old/ovl10/ovl10_1.c similarity index 100% rename from src/ovl10/ovl10_1.c rename to src.old/ovl10/ovl10_1.c diff --git a/src/ovl10/ovl10_1.h b/src.old/ovl10/ovl10_1.h similarity index 100% rename from src/ovl10/ovl10_1.h rename to src.old/ovl10/ovl10_1.h diff --git a/src/ovl10/ovl10_2.c b/src.old/ovl10/ovl10_2.c similarity index 100% rename from src/ovl10/ovl10_2.c rename to src.old/ovl10/ovl10_2.c diff --git a/src/ovl10/ovl10_3.c b/src.old/ovl10/ovl10_3.c similarity index 100% rename from src/ovl10/ovl10_3.c rename to src.old/ovl10/ovl10_3.c diff --git a/src/ovl11/boss2.c b/src.old/ovl11/boss2.c similarity index 100% rename from src/ovl11/boss2.c rename to src.old/ovl11/boss2.c diff --git a/src/ovl12/ovl12.c b/src.old/ovl12/ovl12.c similarity index 100% rename from src/ovl12/ovl12.c rename to src.old/ovl12/ovl12.c diff --git a/src/ovl12/ovl12.data b/src.old/ovl12/ovl12.data similarity index 100% rename from src/ovl12/ovl12.data rename to src.old/ovl12/ovl12.data diff --git a/src/ovl12/ovl12.h b/src.old/ovl12/ovl12.h similarity index 100% rename from src/ovl12/ovl12.h rename to src.old/ovl12/ovl12.h diff --git a/src/ovl12/ovl12_2.c b/src.old/ovl12/ovl12_2.c similarity index 100% rename from src/ovl12/ovl12_2.c rename to src.old/ovl12/ovl12_2.c diff --git a/src/ovl12/ovl12_3.c b/src.old/ovl12/ovl12_3.c similarity index 100% rename from src/ovl12/ovl12_3.c rename to src.old/ovl12/ovl12_3.c diff --git a/src/ovl13/ovl13.c b/src.old/ovl13/ovl13.c similarity index 100% rename from src/ovl13/ovl13.c rename to src.old/ovl13/ovl13.c diff --git a/src/ovl13/ovl13.data b/src.old/ovl13/ovl13.data similarity index 100% rename from src/ovl13/ovl13.data rename to src.old/ovl13/ovl13.data diff --git a/src/ovl13/ovl13.h b/src.old/ovl13/ovl13.h similarity index 100% rename from src/ovl13/ovl13.h rename to src.old/ovl13/ovl13.h diff --git a/src/ovl14/ovl14.c b/src.old/ovl14/ovl14.c similarity index 100% rename from src/ovl14/ovl14.c rename to src.old/ovl14/ovl14.c diff --git a/src/ovl14/ovl14.h b/src.old/ovl14/ovl14.h similarity index 100% rename from src/ovl14/ovl14.h rename to src.old/ovl14/ovl14.h diff --git a/src/ovl16/ovl16.c b/src.old/ovl16/ovl16.c similarity index 100% rename from src/ovl16/ovl16.c rename to src.old/ovl16/ovl16.c diff --git a/src/ovl17/ovl17.c b/src.old/ovl17/ovl17.c similarity index 100% rename from src/ovl17/ovl17.c rename to src.old/ovl17/ovl17.c diff --git a/src/ovl17/ovl17_last-0.c b/src.old/ovl17/ovl17_last-0.c similarity index 100% rename from src/ovl17/ovl17_last-0.c rename to src.old/ovl17/ovl17_last-0.c diff --git a/src/ovl18/ovl18.c b/src.old/ovl18/ovl18.c similarity index 100% rename from src/ovl18/ovl18.c rename to src.old/ovl18/ovl18.c diff --git a/src/ovl18/ovl18_1.c b/src.old/ovl18/ovl18_1.c similarity index 100% rename from src/ovl18/ovl18_1.c rename to src.old/ovl18/ovl18_1.c diff --git a/src/ovl18/ovl18_1.h b/src.old/ovl18/ovl18_1.h similarity index 100% rename from src/ovl18/ovl18_1.h rename to src.old/ovl18/ovl18_1.h diff --git a/src/ovl18/ovl18_2.c b/src.old/ovl18/ovl18_2.c similarity index 100% rename from src/ovl18/ovl18_2.c rename to src.old/ovl18/ovl18_2.c diff --git a/src/ovl18/ovl18_3.c b/src.old/ovl18/ovl18_3.c similarity index 100% rename from src/ovl18/ovl18_3.c rename to src.old/ovl18/ovl18_3.c diff --git a/src/ovl18/ovl18_3.h b/src.old/ovl18/ovl18_3.h similarity index 100% rename from src/ovl18/ovl18_3.h rename to src.old/ovl18/ovl18_3.h diff --git a/src/ovl18/ovl18_4.c b/src.old/ovl18/ovl18_4.c similarity index 100% rename from src/ovl18/ovl18_4.c rename to src.old/ovl18/ovl18_4.c diff --git a/src/ovl18/ovl18_5.c b/src.old/ovl18/ovl18_5.c similarity index 100% rename from src/ovl18/ovl18_5.c rename to src.old/ovl18/ovl18_5.c diff --git a/src/ovl18/ovl18_5.h b/src.old/ovl18/ovl18_5.h similarity index 100% rename from src/ovl18/ovl18_5.h rename to src.old/ovl18/ovl18_5.h diff --git a/src/ovl18/ovl18_7.c b/src.old/ovl18/ovl18_7.c similarity index 100% rename from src/ovl18/ovl18_7.c rename to src.old/ovl18/ovl18_7.c diff --git a/src.old/ovl19/helpeff.c b/src.old/ovl19/helpeff.c new file mode 100644 index 000000000..4a2845163 --- /dev/null +++ b/src.old/ovl19/helpeff.c @@ -0,0 +1,88 @@ +#include +#include +#include "ovl1/ovl1_6.h" +#include "D_8004A7C4.h" + +void func_8021EA20_ovl19(void) { + func_800B63C0(); +} + +extern void (*D_8022F070[])(struct GObj *); + +void func_8021EA40_ovl19(struct GObj *arg0) { + D_800E10D0[D_8004A7C4->objId] = D_800E10D0[D_800E0D50[D_8004A7C4->objId]]; + D_800E1290[D_8004A7C4->objId] = D_800E1290[D_800E0D50[D_8004A7C4->objId]]; + D_800E1450[D_8004A7C4->objId] = D_800E1450[D_800E0D50[D_8004A7C4->objId]]; + D_800E6A10[D_8004A7C4->objId] = D_800E6A10[D_800E0D50[D_8004A7C4->objId]]; + D_800E6BD0[D_8004A7C4->objId] = D_800E6BD0[D_800E0D50[D_8004A7C4->objId]]; + call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 2, &D_8022F070[0]); +} + +void func_8021EC64_ovl19(struct GObj *arg0); +void func_800B5094(s32, s32, f32); + +void func_8021EB6C_ovl19(struct GObj *arg0) { + f32 temp_f0; + struct GObj *temp_v0; + struct GObj *temp_v0_2; + + temp_f0 = 0.2f; + D_800DEF90[D_8004A7C4->objId] = func_800B5094; + D_800DF150[D_8004A7C4->objId] = func_8021EC64_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x20062, 0x1869F, 0x10); + func_800AA154(0x20324); + temp_v0_2 = D_8004A7C4; + D_800E9FE0[D_800EBBE0[D_8004A7C4->objId]].as_s32 = 0; + func_800B1900((u16) D_8004A7C4->objId); +} + +void func_8021EC64_ovl19(struct GObj *arg0) { + if (D_800E8060[0] == -1) { + D_800E9FE0[D_800EBBE0[D_8004A7C4->objId]].as_s32 = 0; + func_800B1900((u16) D_8004A7C4->objId); + } +} + + +void func_8021ED80_ovl19(struct GObj *arg0); + +void func_8021ECC4_ovl19(struct GObj *arg0) { + f32 temp_f0; + + temp_f0 = 0.2f; + D_800DF150[D_8004A7C4->objId] = func_8021ED80_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x20063, 0x1869F, 0x10); + func_800AA018(0x20327); + func_800AA018(0x20326); + func_800AFA14(); +} + +void func_8021ED80_ovl19(struct GObj *arg0) { + if (D_800E8920[D_800E0D50[D_8004A7C4->objId]] != 0) { + gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesAngleYArray[D_8004A7C4->objId] = gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; + func_800AFBB4(1, D_8004A7C4); + } else { + func_800AFBB4(0, D_8004A7C4); + } +} + +s32 func_8021EE88_ovl19(s32 arg0) { + s32 temp_v0; + + temp_v0 = request_track_general(0x16, 0x3C, 0x4A); + if (temp_v0 != -1) { + gEntityVtableIndexArray[temp_v0] = arg0; + } else { + print_error_stub("Helper Effect Request Error![helpeff.cc]\n"); + } + return temp_v0; +} diff --git a/src.old/ovl19/helper.c b/src.old/ovl19/helper.c new file mode 100644 index 000000000..c93e1da4e --- /dev/null +++ b/src.old/ovl19/helper.c @@ -0,0 +1,545 @@ +// helper.cc + +#include +#include +#include "ovl1/ovl1_6.h" +#include "ovl1/ovl1_1.h" +#include "ovl2/ovl2_8.h" +#include "D_8004A7C4.h" + +extern u32 D_800D6E64; + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021EF00_ovl19.s") + +extern f32 D_8022F74C; +extern s32 D_8012E7FC; +u32 func_8021F0A4_ovl19(struct GObj *arg0); +void func_8021E5DC_ovl19(void); + +void func_8021EF44_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021DFD0_ovl19(); + temp_f0 = D_8022F74C; + D_800DEF90[D_8004A7C4->objId] = &func_8021E5DC_ovl19; + D_800DF150[D_8004A7C4->objId] = &func_8021F0A4_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x2006A, 0x1869F, 0x10); + D_800E8060[D_8004A7C4->objId] = 0; + D_800EBBE0[D_8004A7C4->objId] = func_8021E2D0_ovl19(0, 1); +loop_1: + if (D_800E8060[D_8004A7C4->objId] != 2) { + finish_current_thread(1); + goto loop_1; + } + func_800AA018(0x203A4); + finish_current_thread(0x16); + D_8012E7FC = 1; + func_800AFA14(); +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F0A4_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F174_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F3B4_ovl19.s") + +// some meme with the temp float +#ifdef NON_MATCHING +extern f32 D_8022F754, D_8022F758; +void func_8021F600_ovl19(struct GObj *arg0); +void func_8021E894_ovl19(s32, s32, f32); + +void func_8021F3F8_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021E184_ovl19(); + D_800E98E0[D_8004A7C4->objId] = 0; + D_800E9AA0[D_8004A7C4->objId] = func_800FCE50(); + temp_f0 = D_8022F754; + D_800DEF90[D_8004A7C4->objId] = func_8021E894_ovl19; + D_800DF150[D_8004A7C4->objId] = func_8021F600_ovl19; + gEntitiesAngleYArray[D_8004A7C4->objId] = D_8022F758; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + D_800EBBE0[D_8004A7C4->objId] = func_8021E2D0_ovl19(1, 3); + D_800EBDA0[D_8004A7C4->objId] = func_8021E2D0_ovl19(1, 4); + func_800A9864(0x2006F, 0x1869F, 0x10); + if (D_800D6E64 == 0) { + func_801230E8(0x203CD, 0x203CE, 0); + while (D_800E98E0[D_8004A7C4->objId] == 0) { + finish_current_thread(1); + } + func_8021FA2C_ovl19(); + func_801230E8(0x203CB, 0x203CC, 1); + } + func_801230E8(0x203CF, 0x203D0, 0); + func_800AFA14(); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F3F8_ovl19.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F600_ovl19.s") + +extern f32 D_8022F75C, D_8022F760; + + +void func_8021F6D8_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021E184_ovl19(); + temp_f0 = D_8022F75C; + D_800DF150[D_8004A7C4->objId] = NULL; + gEntitiesAngleYArray[D_8004A7C4->objId] = D_8022F760; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x20070, 0x1869F, 0x10); + if (D_800D6E64 == 0) { + D_800DFBD0[D_8004A7C4->objId][3]->unk54 = 1; + func_801230E8(0x203DC, 0x203DD, 0); + while (D_800E98E0[D_800E0D50[D_8004A7C4->objId]] == 0) { + finish_current_thread(1); + } + func_801230E8(0x203DA, 0x203DB, 0); + } else { + D_800DFBD0[D_8004A7C4->objId][3]->unk54 = 2; + } + func_800AFA14(); +} + +void func_8021F8A4_ovl19(struct GObj *arg0) { + Vector sp44; + + D_800DEF90[D_8004A7C4->objId] = NULL; + gEntitiesScaleXArray[D_8004A7C4->objId] = 0.25f; + gEntitiesScaleYArray[D_8004A7C4->objId] = 0.25f; + gEntitiesScaleZArray[D_8004A7C4->objId] = 0.25f; + func_800A9864(0x20071, 0x1869F, 0x10); + while (1) { + func_800B2340(&sp44, D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][1], D_800E0D50[D_8004A7C4->objId]); + gEntitiesNextPosXArray[D_8004A7C4->objId] = sp44.x; + gEntitiesNextPosYArray[D_8004A7C4->objId] = sp44.y + 0.5f; + gEntitiesNextPosZArray[D_8004A7C4->objId] = sp44.z; + finish_current_thread(1); + } +} + +extern f32 gKirbyHp; +extern const char D_8022F720[]; +// minor changes that i'm too tired to look at atm lol +#ifdef NON_MATCHING +void func_8021FA2C_ovl19(void) { + Vector sp34; + struct EntityThing800E9AA0 *sp2C = D_800E9AA0[D_8004A7C4->objId]; + s32 temp_v0 = request_track_general(0x1C, 0x1E, 0x3C); + + if (temp_v0 >= 0x3C || temp_v0 == -1) { +// block_2: + if (temp_v0 != -1) { + func_800B1900(temp_v0 & 0xFFFF); + } + print_error_stub(&D_8022F720); + return; + } + // if (temp_v0 == -1) { + // goto block_2; + // } + if (D_800E7880[D_8004A7C4->objId] == 2) { + D_800E77A0[temp_v0] = 5; + D_800E7880[temp_v0] = 1; + } else if (6.0f == gKirbyHp) { + D_800E77A0[temp_v0] = 9; + D_800E7880[temp_v0] = 1; + } else { + (&D_800E77A0[temp_v0])[0x3BD0] = 0; + D_800E7880[temp_v0] = 1; + } + D_800E7730[temp_v0] = 3; + D_800E76C0[temp_v0] = 0xFF; + D_800E8E60[temp_v0] = 1; + func_800B2340(&sp34, D_800DFBD0[D_800EBBE0[D_8004A7C4->objId]][2], D_800EBBE0[D_8004A7C4->objId], temp_v0); + gEntitiesPosXArray[temp_v0] = sp34.x; + gEntitiesNextPosXArray[temp_v0] = sp34.x; + gEntitiesPosYArray[temp_v0] = sp34.y; + gEntitiesNextPosYArray[temp_v0] = sp34.y; + gEntitiesPosZArray[temp_v0] = sp34.z; + gEntitiesNextPosZArray[temp_v0] = sp34.z; + D_800E6150[temp_v0] = sp2C->unk0; + D_800E5F90[temp_v0] = sp2C->unk0; + D_800E6D90[temp_v0] = sp2C->unk24; + D_800E6BD0[temp_v0] = sp2C->unk24; + D_800EC120[D_8004A7C4->objId] = temp_v0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FA2C_ovl19.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FC7C_ovl19.s") + + +// regalloc at the loop +#ifdef NON_MATCHING +void func_8021FE5C_ovl19(struct GObj *arg0); +extern f32 D_8022F764; + +void func_8021FCC0_ovl19(struct GObj *arg0) { + f32 tmp; + + func_8021DFD0_ovl19(); + tmp = D_8022F764; + D_800DEF90[D_8004A7C4->objId] = func_8021E5DC_ovl19; + D_800DF150[D_8004A7C4->objId] = func_8021FE5C_ovl19; + gEntitiesAngleYArray[D_8004A7C4->objId] = 0.0f; + gEntitiesScaleXArray[D_8004A7C4->objId] = tmp; + gEntitiesScaleYArray[D_8004A7C4->objId] = tmp; + gEntitiesScaleZArray[D_8004A7C4->objId] = tmp; + func_800A9864(0x20067, 0x1869F, 0x10); + D_800EBBE0[D_8004A7C4->objId] = func_8021E2D0_ovl19(2, 1); + D_800E98E0[D_8004A7C4->objId] = 0; + func_800AA018(0x2035D); + while (D_800E98E0[D_8004A7C4->objId] == 0) { + finish_current_thread(1); + } + D_800E98E0[D_800EBBE0[D_8004A7C4->objId]] = 1; + func_800AA154(0x2035E); + func_800AFA14(); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FCC0_ovl19.s") +#endif + +#ifdef NON_MATCHING +void func_8021FE5C_ovl19(struct GObj *arg0) { + Vector sp20, sp2C; + if (D_800E98E0[D_8004A7C4->objId] == 0) { + if (gKirbyState.unk16C != 0) { + if ((gEntitiesNextPosYArray[D_8004A7C4->objId] - 20.0f) <= *gEntitiesNextPosYArray) { + sp2C.y = 0.0f; + sp2C.x = gEntitiesNextPosXArray[0]; + sp2C.z = gEntitiesNextPosZArray[0]; + + sp20.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + sp20.y = 0.0f; + sp20.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + if (vec3_dist_square(&sp2C, &sp20) < 6400.0f) { + D_800E98E0[D_8004A7C4->objId]++; + gKirbyState.unk17 = 1; + gKirbyState.abilityState = 0; + gKirbyState.unk68 = 1; + } + } + } + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FE5C_ovl19.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FF90_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220138_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022023C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220280_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022045C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022054C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220814_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802209A0_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802209E4_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220B40_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220D54_ovl19.s") + +void func_80220E14_ovl19(struct GObj *arg0) { + D_800DEF90[D_8004A7C4->objId] = NULL; + gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]] + 0.5f; + gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesScaleXArray[D_8004A7C4->objId] = 0.25f; + gEntitiesScaleYArray[D_8004A7C4->objId] = 0.25f; + gEntitiesScaleZArray[D_8004A7C4->objId] = 0.25f; + func_800A9864(0x20071, 0x1869F, 0x10, D_800E0D50); + func_800AFA14(); +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220F48_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220F8C_ovl19.s") + + +extern u32 D_800D71F8; +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221108_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802211A0_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221480_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022159C_ovl19.s") + +void func_80221654_ovl19(struct GObj *arg0) { + Vector sp1C; + + func_800B2340(&sp1C, D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][1], D_800E0D50[D_8004A7C4->objId]); + gEntitiesNextPosXArray[D_8004A7C4->objId] = sp1C.x; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosZArray[D_8004A7C4->objId] = sp1C.z; +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022170C_ovl19.s") + +#ifdef NON_MATCHING +void func_80221928_ovl19(struct GObj *arg0); +void func_8021EA20_ovl19(s32, s32, f32); +extern f32 D_8022F780; + +void func_80221750_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021E184_ovl19(); + temp_f0 = D_8022F780; + D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x20060, 0x1869F, 0x10); + func_8021E2D0_ovl19(6, 1); + D_800DF150[D_8004A7C4->objId] = func_80221928_ovl19; + while (TRUE) { + D_800E9E20[D_8004A7C4->objId] = 0; + func_800AA018(0x202E2); + + // loads from s1 instead of through an immediate + func_800AA864(0x202E1, 1); + D_800E9E20[D_8004A7C4->objId] = 1; + func_80221BC8_ovl19(); + while (D_800E9E20[D_8004A7C4->objId] == 1) { + finish_current_thread(1); + } + func_800AA018(0x202E4); + func_800AA864(0x202E3, 1); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221750_ovl19.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221928_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221A74_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221BC8_ovl19.s") + +extern f32 D_8022F7A0; +void func_80221CA8_ovl19(struct GObj *arg0) { + f32 temp_f0; + + temp_f0 = D_8022F7A0; + D_800DEF90[D_8004A7C4->objId] = NULL; + gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]] + 0.5f; + gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x20071, 0x1869F, 0x10, D_800E0D50); + func_800AFA14(); +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221DDC_ovl19.s") + +extern f32 D_8022F7A4; +void func_80222038_ovl19(struct GObj *arg0); +void func_80221FC8_ovl19(s32 arg0, s32 arg1, f32 arg2); +extern struct Player gKirbyState; + +void func_80221E20_ovl19(UNUSED struct GObj *arg0) { + f32 temp_f0; + + func_8021DFD0_ovl19(); + temp_f0 = D_8022F7A4; + D_800DF150[D_8004A7C4->objId] = &func_80222038_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x2006C, 0x1869F, 0x10); + D_800E8060[D_8004A7C4->objId] = 0; + func_800AA018(0x203C1); + while (D_800E8060[D_8004A7C4->objId] != 1) { + finish_current_thread(1); + } + func_8021E2D0_ovl19(7, 1); + func_800AA018(0x203C0); + D_800DF310[D_8004A7C4->objId] = &func_80221FC8_ovl19; + func_800AF27C(); + func_800F753C(); + func_800AFBB4(0, D_8004A7C4); + while (gKirbyState.unk30 == 0) { + finish_current_thread(1); + } + func_800B1900((u16) D_8004A7C4->objId); +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221FC8_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222038_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222108_ovl19.s") + +#include "ovl2/ovl2_8.h" +#include "ovl19_2.h" +extern f32 D_8022F7AC, D_8022F7B0, D_8022F7B4; +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802222F0_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802224BC_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222500_ovl19.s") + +void func_802226FC_ovl19(struct GObj *arg0); +void func_8021EA20_ovl19(s32, s32, f32); +extern f32 D_8022F7B8; + +void func_802225A4_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021E184_ovl19(); + temp_f0 = D_8022F7B8; + D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800AF980(0x18); + func_800A9864(0x20068, 0x1869F, 0x10); + D_800E9E20[D_8004A7C4->objId] = 0; + D_800DF150[D_8004A7C4->objId] = func_802226FC_ovl19; + func_800AA018(0x2035F); + while (D_800E9E20[D_8004A7C4->objId] == 0) { + finish_current_thread(1); + } + play_sound(0x258); + func_800AA018(0x20360); + func_800AFA14(); +} + +void func_802226FC_ovl19(struct GObj *arg0) { + f32 dz; + f32 dy; + f32 dx; + + if (D_800E9E20[D_8004A7C4->objId] == 0) { + dz = gEntitiesNextPosZArray[0] - gEntitiesNextPosZArray[D_8004A7C4->objId]; + dy = gEntitiesNextPosXArray[0] - gEntitiesNextPosXArray[D_8004A7C4->objId]; + dx = (gEntitiesNextPosYArray[0] + 20.0f) - gEntitiesNextPosYArray[D_8004A7C4->objId]; + if (((dz * dz) + ((dy * dy) + (dx * dx))) < 102400.0f) { + func_8021E2D0_ovl19(9, 1); + func_8021E2D0_ovl19(9, 2); + D_800E9E20[D_8004A7C4->objId] = 1; + } + } +} + +void func_802228F8_ovl19(struct GObj *arg0); +extern f32 D_8022F7BC; + +void func_802227F0_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021E184_ovl19(); + temp_f0 = D_8022F7BC; + D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800AF980(0x18); + func_800A9864(0x20060, 0x1869F, 0x10); + D_800DF150[D_8004A7C4->objId] = func_802228F8_ovl19; + func_800AA018(0x202DE); + func_800AA864(0x202DD, 1); + func_800AA018(0x202E0); + func_800AA018(0x202DF); + func_800AFA14(); +} + +void func_802228F8_ovl19(struct GObj *arg0) { + func_80222500_ovl19(); +} + +extern f32 D_8022F7C0; +void func_80222918_ovl19(struct GObj *arg0) { + f32 temp_f0; + + temp_f0 = D_8022F7C0; + D_800DEF90[D_8004A7C4->objId] = NULL; + gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]] + 0.5f; + gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800AF980(0x18, D_800E0D50, gEntitiesNextPosXArray, gEntitiesNextPosYArray); + func_800A9864(0x20071, 0x1869F, 0x10); + func_800AFA14(); +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222A54_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222A98_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222CE0_ovl19.s") + +extern f32 D_8022F7CC; + +void func_80222E3C_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021E184_ovl19(); + temp_f0 = D_8022F7CC; + D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x2006D, 0x1869F, 0x10); + gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]] + 160.0f; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]] - 160.0f; + func_800AA018(0x203C2); + while (D_800E8060[D_800E0D50[D_8004A7C4->objId]] != 2) { + finish_current_thread(1); + } + func_800AA018(0x203C3); + func_800AFA14(); +} + +extern f32 D_8022F7D0; + +void func_80223020_ovl19(struct GObj *arg0) { + f32 temp_f0; + + func_8021E184_ovl19(); + temp_f0 = D_8022F7D0; + D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; + gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + func_800A9864(0x2006E, 0x1869F, 0x10); + gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + func_800AA018(0x203C4); + while (D_800E8060[D_800E0D50[D_8004A7C4->objId]] != 2) { + finish_current_thread(1); + } + func_800AA018(0x203C5); + func_800AFA14(); +} diff --git a/src.old/ovl19/helplib.c b/src.old/ovl19/helplib.c new file mode 100644 index 000000000..211fcd031 --- /dev/null +++ b/src.old/ovl19/helplib.c @@ -0,0 +1,216 @@ +#include +#include +#include "ovl1/ovl1_6.h" +#include "D_8004A7C4.h" + +extern void (*D_8022F040[])(struct GObj *); + +void func_800AECC0(f32); +void func_800AED20(f32); + +void func_8021DF20_ovl19(struct GObj *arg0) { + D_800E0650[D_8004A7C4->objId] = 0; + func_800AECC0(D_800D6B10); + func_800AED20(D_800D6B10); + D_800E8760[D_8004A7C4->objId] = 0; + D_800E83E0[D_8004A7C4->objId] = D_800E8760[D_8004A7C4->objId]; + call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 0xA, &D_8022F040[0]); +} + +void func_8021E4B0_ovl19(struct GObj *); +#include "unk_structs/D_800DE350.h" +void func_800F88C8(s32, s32, f32);//, f32); + +void func_8021DFD0_ovl19(void) { + f32 tmpY; // supposedly the function call changes this value + u32 temp_a3; + + func_800AECC0(D_800D6B10); + func_800AED20(D_800D6B10); + D_800DEF90[D_8004A7C4->objId] = func_8021E4B0_ovl19; + D_800E8920[D_8004A7C4->objId] = 1; + D_800E8AE0[D_8004A7C4->objId] = 0; + D_800EC120[D_8004A7C4->objId] = -1; + temp_a3 = D_800EC120[D_8004A7C4->objId]; + D_800EBF60[D_8004A7C4->objId] = temp_a3; + D_800EBDA0[D_8004A7C4->objId] = temp_a3; + D_800EBBE0[D_8004A7C4->objId] = temp_a3; + tmpY = gEntitiesNextPosYArray[D_8004A7C4->objId]; + func_800F88C8(D_800DE350[D_8004A7C4->objId], + D_800E5F90[D_8004A7C4->objId], + D_800E6BD0[D_8004A7C4->objId]); + gEntitiesNextPosYArray[D_8004A7C4->objId] = tmpY; + D_800E6A10[D_8004A7C4->objId] = 1.0f; + func_800F8E6C(D_800DE350[D_8004A7C4->objId]); + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E17D0[D_8004A7C4->objId]; + D_800E6D90[D_8004A7C4->objId] = 666.66f; +} + +void func_8021E7DC_ovl19(struct GObj *); + +void func_8021E184_ovl19(void) { + u32 temp_a0; + + func_800AECC0(D_800D6B10); + func_800AED20(D_800D6B10); + D_800DEF90[D_8004A7C4->objId] = func_8021E7DC_ovl19; + D_800E8920[D_8004A7C4->objId] = 1; + D_800E8AE0[D_8004A7C4->objId] = 0; + D_800EC120[D_8004A7C4->objId] = -1; + temp_a0 = D_800EC120[D_8004A7C4->objId]; + D_800EBF60[D_8004A7C4->objId] = temp_a0; + D_800EBDA0[D_8004A7C4->objId] = temp_a0; + D_800EBBE0[D_8004A7C4->objId] = temp_a0; + D_800E6A10[D_8004A7C4->objId] = 1.0f; + D_800E17D0[D_8004A7C4->objId] = 0.0f; + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E17D0[D_8004A7C4->objId]; + D_800E6D90[D_8004A7C4->objId] = 666.66f; +} + +extern const char *D_8022F6A0; +s32 func_8021E2D0_ovl19(u8 arg0, u8 arg1) { + s32 idx; + f32 temp_f0; + u32 temp_a1; + + idx = request_track_general(0x20, 0x1E, 0x3C); + if ((idx >= 0x3C) || (idx == -1)) { + if (idx != -1) { + func_800B1900(idx & 0xFFFF); + idx = -1; + } + print_error_stub("reqHelpChildTrk Request Error!![helplib.cc]\n"); + } else { + D_800E7730[idx] = 7; + D_800E77A0[idx] = arg0; + D_800E7880[idx] = arg1; + D_800E76C0[idx] = 0xFF; + temp_a1 = D_800E5F90[D_8004A7C4->objId]; + D_800E6150[idx] = temp_a1; + D_800E5F90[idx] = temp_a1; + temp_f0 = D_800E6BD0[D_8004A7C4->objId]; + D_800E6D90[idx] = temp_f0; + D_800E6BD0[idx] = temp_f0; + gEntitiesNextPosXArray[idx] = gEntitiesNextPosXArray[D_8004A7C4->objId]; + gEntitiesPosXArray[idx] = gEntitiesPosXArray[D_8004A7C4->objId]; + gEntitiesNextPosYArray[idx] = gEntitiesNextPosYArray[D_8004A7C4->objId]; + gEntitiesPosYArray[idx] = gEntitiesPosYArray[D_8004A7C4->objId]; + gEntitiesNextPosZArray[idx] = gEntitiesNextPosZArray[D_8004A7C4->objId]; + gEntitiesPosZArray[idx] = gEntitiesPosZArray[D_8004A7C4->objId]; + } + return idx; +} +s32 func_800B3158(void); + +extern u8 D_800D6C90[]; + +// how +#ifdef NON_MATCHING +void func_8021E4B0_ovl19(struct GObj *arg0) { + f32 tmp; + + func_800B4864(); + if (D_800E6BD0[D_8004A7C4->objId] != D_800E6D90[D_8004A7C4->objId]) { + func_800B35F0(); + tmp = D_800E64D0[D_8004A7C4->objId]; + D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + func_800F8E6C(arg0); + D_800E64D0[D_8004A7C4->objId] = tmp; + func_800B4640(); + func_800B369C(); + } + if (func_800B3158() == 0) { + if (D_800E76C0[D_8004A7C4->objId] < 0x40) { + D_800D6C90[D_8004A7C4->objId] &= 0x80; + } + func_800B1900((u16) D_8004A7C4->objId); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19/func_8021E4B0_ovl19.s") +#endif + +// regalloc +#ifdef NON_MATCHING +void func_8021E5DC_ovl19(s32 arg0) { + f32 tmp; + + func_800B4864(); + if (D_800E6BD0[D_8004A7C4->objId] != D_800E6D90[D_8004A7C4->objId]) { + func_800B35F0(); + tmp = D_800E64D0[D_8004A7C4->objId]; + D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + func_800F8E6C(arg0); + D_800E64D0[D_8004A7C4->objId] = tmp; + func_800B4640(); + func_800B369C(); + } + if (func_800B3158() == 0) { + if (D_800EBBE0[D_8004A7C4->objId] != -1) { + func_800B1900((u16) D_800EBBE0[D_8004A7C4->objId]); + } + if (D_800EBDA0[D_8004A7C4->objId] != -1) { + func_800B1900((u16) D_800EBDA0[D_8004A7C4->objId]); + } + if (D_800EBF60[D_8004A7C4->objId] != -1) { + func_800B1900((u16) D_800EBF60[D_8004A7C4->objId]); + } + if (D_800EC120[D_8004A7C4->objId] != -1 && D_800DE350[D_800EC120[D_8004A7C4->objId]] != 0) { + func_8019D958_ovl19((u16) D_800EC120[D_8004A7C4->objId]); + } + if (D_800E76C0[D_8004A7C4->objId] < 0x40) { + D_800D6C90[D_8004A7C4->objId] &= 0x80; + } + func_800B1900((u16) D_8004A7C4->objId); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19/func_8021E5DC_ovl19.s") +#endif + +void func_8021E7DC_ovl19(struct GObj *arg0) { + func_800B4024(); + if (gEntitiesNextPosXArray[D_8004A7C4->objId] != gEntitiesPosXArray[D_8004A7C4->objId]) { + func_800B35F0(); + D_800B4924_ovl19(arg0); + } + if (func_800B3158() == 0) { + if (D_800E76C0[D_8004A7C4->objId] < 0x40) { + D_800D6C90[D_800E76C0[D_8004A7C4->objId]] &= 0x80; + } + func_800B1900(D_8004A7C4->objId & 0xFFFF); + } +} + +// regalloc +#ifdef NON_MATCHING +void func_8021E894_ovl19(struct GObj *arg0) { + func_800B4024(); + if (gEntitiesNextPosXArray[D_8004A7C4->objId] != gEntitiesPosXArray[D_8004A7C4->objId]) { + func_800B35F0(); + D_800B4924_ovl19(arg0); + } + if (func_800B3158() == 0) { + if (D_800EBBE0[D_8004A7C4->objId] != -1) { + func_800B1900(D_800EBBE0[D_8004A7C4->objId] & 0xFFFF); + } + if (D_800EBDA0[D_8004A7C4->objId] != -1) { + func_800B1900(D_800EBDA0[D_8004A7C4->objId] & 0xFFFF); + } + if (D_800EBF60[D_8004A7C4->objId] != -1) { + func_800B1900(D_800EBF60[D_8004A7C4->objId] & 0xFFFF); + } + if (D_800EC120[D_8004A7C4->objId] != -1) { + if (D_800DE350[D_800EC120[D_8004A7C4->objId]] != 0) { + func_8019D958_ovl19(D_800EC120[D_8004A7C4->objId] & 0xFFFF); + } + } + if (D_800E76C0[D_8004A7C4->objId] < 0x40) { + D_800D6C90[D_8004A7C4->objId] &= 0x80; + } + func_800B1900(D_8004A7C4->objId & 0xFFFF); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19/func_8021E894_ovl19.s") +#endif diff --git a/src.old/ovl19/ovl19_2.h b/src.old/ovl19/ovl19_2.h new file mode 100644 index 000000000..b54494e83 --- /dev/null +++ b/src.old/ovl19/ovl19_2.h @@ -0,0 +1,23 @@ +#ifndef _OVL19_2_H_ +#define _OVL19_2_H_ + + +struct UnkStruct8022FAB0 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; + u8 unk20; + u8 unk21; + u8 unk22; + u8 unk23; +}; + +extern struct UnkStruct8022FAB0 *D_8022FAB0; +extern struct UnkStruct8022FAB0 *D_8022FAB0_ovl19; + +#endif \ No newline at end of file diff --git a/src.old/ovl19/ovl19_3.c b/src.old/ovl19/ovl19_3.c new file mode 100644 index 000000000..f435ba2d6 --- /dev/null +++ b/src.old/ovl19/ovl19_3.c @@ -0,0 +1,251 @@ +#include +#include + +#include "D_8004A7C4.h" +#include "types.h" +#include "stages.h" +#include "buffers.h" +#include "ovl1/ovl1_6.h" +extern struct Player gKirbyState; + +extern f32 gKirbyHp; +s32 change_kirby_hp(f32); + +// Joint was the best name here since it involves +// 2 players in an item that "joins" them (i.e. a vehicle) +// and this controls what animations play for every entity involved +struct JointAnim { + u32 jointAnim1; + u32 jointAnim2; + u32 player1Anim1; + u32 player1Anim2; + u32 player2Anim1; + u32 player2Anim2; +}; +extern struct JointAnim D_8022F170[]; +extern struct JointAnim D_8022F560[]; + +void func_80223200_ovl19(struct GObj *); +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80223200_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80223E68_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80224564_ovl19.s") + +void func_802245A0_ovl19(s32 arg0) { + if (D_800E83E0[D_8004A7C4->objId] != 0) { + if (gKirbyState.unk68 == 3) { + gKirbyHp += 1.0f; + } + if (change_kirby_hp(-1.0f) == 0) { + D_800E83E0[D_8004A7C4->objId] = 1; + } else { + D_800E64D0[D_8004A7C4->objId] = 7.5f; + } + switch (D_800E83E0[D_8004A7C4->objId]) { + case 1: + gKirbyState.unk44 = 5; + break; + case 3: default: + gKirbyState.unk44 = 4; + break; + } + + assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], &func_80223200_ovl19); + D_800E98E0[D_8004A7C4->objId] = gKirbyState.unk44; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022470C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80224858_ovl19.s") + +void func_802248C0_ovl19(s32 arg0); +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802248C0_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80225620_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80225DF8_ovl19.s") + +void func_80225E38_ovl19(s32 arg0) { + if ((D_800E83E0[D_8004A7C4->objId] != 0) && (gKirbyState.unk44 != 7)) { + if (gKirbyState.unk68 == 3) { + gKirbyHp++; + } + if (change_kirby_hp(-1.0f) == 0) { + D_800E83E0[D_8004A7C4->objId] = 1; + } else { + D_800E64D0[D_8004A7C4->objId] = 7.5f; + } + switch (D_800E83E0[D_8004A7C4->objId]) { + case 1: + gKirbyState.unk44 = 5; + break; + case 3: default: + gKirbyState.unk44 = 4; + break; + } + assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], func_802248C0_ovl19); + D_800E98E0[D_8004A7C4->objId] = gKirbyState.unk44; + } +} + +extern s32 D_8012E804, D_8012E80C, D_8012E810; +#ifdef NEEDS_RODATA +void func_80225FB4_ovl19(void) { + f32 tmp = 12.0f; + + if (D_800E8920[D_8004A7C4->objId] != 0) { + D_800E6690[D_8004A7C4->objId] = 0.45f; + D_800E6850[D_8004A7C4->objId] = ABSF(tmp); + if (gKirbyState.unk4C == 0) { + gKirbyState.unk48 = 0; + D_8012E80C = func_800A8234(2, 1, 0x61); + D_8012E810 = func_800A8234(2, 1, 0x61); + } + } else { + if (D_8012E80C != 0) { + func_8011E0E8(); + } + if (D_8012E804 != 1) { + D_800E6690[D_8004A7C4->objId] = 0.025f; + D_800E6850[D_8004A7C4->objId] = 0.0f; + } + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80225FB4_ovl19.s") +#endif + +void func_802260FC_ovl19(struct GObj *); +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802260FC_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80226AA8_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80226FFC_ovl19.s") + +void func_8022703C_ovl19(s32 arg0) { + if (D_800E83E0[D_8004A7C4->objId] != 0) { + if (gKirbyState.unk68 == 3) { + gKirbyHp++; + } + if (change_kirby_hp(-1.0f) == 0) { + D_800E83E0[D_8004A7C4->objId] = 1; + } else { + D_800E64D0[D_8004A7C4->objId] = 7.5f; + } + switch (D_800E83E0[D_8004A7C4->objId]) { + case 1: + gKirbyState.unk44 = 5; + break; + case 3: default: + gKirbyState.unk44 = 4; + break; + } + assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], func_802260FC_ovl19); + D_800E98E0[D_8004A7C4->objId] = gKirbyState.unk44; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802271A8_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802273A0_ovl19.s") + +extern s32 D_8022FAD0; // bss +extern s32 D_8022FAF0; // bss +extern s32 D_800D6B54; // ovl1 bss + +void func_8022759C_ovl19(struct GObj *gobj) { + Vector vec; + + D_800E17D0[D_8004A7C4->objId] = D_800E17D0[0]; + if (*D_800E7B20 != 0.0f) { + if (D_800D6B54 == 0) { + if (D_8012E804 != 4) { + vec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + vec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + vec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + func_80155C68_ovl19(&D_8022FAD0, &vec); + } else { + func_80154648_ovl19(0, &D_8022FAF0, &D_8022FAD0); + } + } + } +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227690_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022785C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227938_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227A38_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227AA8_ovl19.s") + +extern s32 D_800D6B54; + +u32 func_80227B20_ovl19(void) { + Vector v0, v1; + + if (D_800D6B54 != 0 || D_800E7B20[D_8004A7C4->objId] == 0.0f) { + return 1; + } + v0.x = gEntitiesPosXArray[D_8004A7C4->objId]; + v0.y = gEntitiesPosYArray[D_8004A7C4->objId]; + v0.z = gEntitiesPosZArray[D_8004A7C4->objId]; + v1.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + v1.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + v1.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + if (func_8010474C(&v0, &v1) != 0) { + func_8011D40C(); + return 1; + } + if ((gKirbyState.unk140 != 0) && (D_800E7B20[D_8004A7C4->objId] != 0.0f) && (gKirbyState.unk44 != 4)) { + return 1; + } + return 0; +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227C88_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227D4C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227F38_ovl19.s") + +#include "ovl19_2.h" +extern s8 D_8012E7D7; +void func_800B4954(void); +void func_802283A8_ovl19(struct GObj *); +void func_800A9864(f32, u32, s32, s32); +void func_800AECC0(f32); +void func_800AED20(f32); + +#define MATHMA(x) (x * 0x18) +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227F90_ovl19.s") + +void func_802283A8_ovl19(struct GObj *this) { + gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E17D0[D_8004A7C4->objId]; + if ((D_800E98E0[D_8004A7C4->objId] == 0) && (gEntitiesNextPosYArray[0] <= 35.0f)) { + gKirbyState.abilityState = 0x4D; + set_kirby_action_2((u8) gKirbyState.abilityState, 0x1C); + D_800E98E0[D_8004A7C4->objId] = 1; + } + func_800FF200(D_8022FAB0); +} + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022846C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802284EC_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022858C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80228874_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022889C_ovl19.s") + +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80228C44_ovl19.s") + +extern void func_800B1434(s32); +extern void func_800B4954(void); +GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80228EF4_ovl19.s") diff --git a/src/ovl19/ovl19_5.c b/src.old/ovl19/ovl19_5.c similarity index 100% rename from src/ovl19/ovl19_5.c rename to src.old/ovl19/ovl19_5.c diff --git a/src/ovl19/ovl19_5.h b/src.old/ovl19/ovl19_5.h similarity index 67% rename from src/ovl19/ovl19_5.h rename to src.old/ovl19/ovl19_5.h index fe41d9a47..e80ce0f00 100644 --- a/src/ovl19/ovl19_5.h +++ b/src.old/ovl19/ovl19_5.h @@ -7,9 +7,8 @@ struct EntityThing800E9AA0 { u8 unk2; u8 unk3; u32 unk4; - u32 unk8; - f32 unkC; - u32 unk10; +// Vec + f32 unk8; f32 unkC; f32 unk10; u32 unk14; u32 unk18; u32 unk1C; @@ -17,6 +16,6 @@ struct EntityThing800E9AA0 { f32 unk24; }; - +extern struct EntityThing800E9AA0 *_D_800E9AA0[]; #endif \ No newline at end of file diff --git a/src.old/ovl2/ovl2.c b/src.old/ovl2/ovl2.c new file mode 100644 index 000000000..68b728d81 --- /dev/null +++ b/src.old/ovl2/ovl2.c @@ -0,0 +1,49 @@ +#include +#include + +GLOBAL_ASM("asm/non_matchings/ovl2/func_800F61A0.s") + +void func_800F629C(void) { + +} + +GLOBAL_ASM("asm/non_matchings/ovl2/func_800F62A4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2/func_800F64B0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2/func_800F6830.s") + + +extern u32 D_80123E90; +void func_800F6AB0(Gfx **pkt) { + gSPDisplayList((*pkt)++, &D_80123E90); +} + +extern s16 gFrameBuffer[0x3F00], D_803D3F00[]; +extern u32 D_800BE500, D_800BE504, D_800BE508, D_800BE534; +extern u32 D_800D6FA8; +extern u32 D_8012D920; +extern u32 D_800D6FAC; +extern u32 D_800D7B80; +extern u32 D_800D7B7C; +extern u32 D_800D7B78; +extern u32 D_800D6B70; +extern u32 D_8012EB00; +extern u32 _ovl19SegNoloadEnd; +extern u8 D_80123F68[]; +struct Unk80123EC0{ + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; +}; +extern struct Unk80123EC0 D_80123EC0; +extern u32 D_803FC100; +extern u32 D_80123EDC; +extern u32 D_8012D200; +extern u32 D_80123EEC; +extern void func_800A41B0(f32 a, u32 *b);//, u32 *c); +extern void func_80007BA4_ovl2(struct Unk80123EC0 *a); + +// TOOD: fix loop +GLOBAL_ASM("asm/non_matchings/ovl2/func_800F6AD4.s") diff --git a/src.old/ovl2/ovl2_2.c b/src.old/ovl2/ovl2_2.c new file mode 100644 index 000000000..f675ce325 --- /dev/null +++ b/src.old/ovl2/ovl2_2.c @@ -0,0 +1,123 @@ +#include +#include + +#include "ovl1/ovl1_6.h" +#include "D_8004A7C4.h" +#include "buffers.h" + +extern Gfx *gDisplayListHeads[4]; + +extern u32 D_800BE4F8; +extern u32 D_800BE4FC; +extern u32 D_800BE534; + +void func_800F6C40(s32 arg0, UNUSED s32 arg1) { + D_800BE4F8 = 2; + D_800BE4FC = 1; + D_800BE534 = arg0; +} + +void func_800F6C68(void) { + D_800BE4F8 = 3; +} + +void func_800F6C78(void) { + D_800BE4F8 = 4; +} + +void func_800F6C88(void) { + D_800BE4F8 = 7; +} + +extern f32 D_800D6B14; +void func_800B1434(void); + +void func_800F6C98(s32 arg0) { + D_800DEF90[D_8004A7C4->objId] = NULL; + func_800B1F68(gEntityGObjProcessArray5[D_8004A7C4->objId], func_800B1434); + finish_current_thread((u32) (120.0f * D_800D6B14)); + if (D_800E98E0[D_8004A7C4->objId] == 3) { + func_800F6C68(); + } + if (D_800E98E0[D_8004A7C4->objId] == 4) { + func_800F6C78(); + } + func_800B1900(D_8004A7C4->objId & 0xFFFF); +} + +void func_800F6E04(UNUSED s32 arg0) { + +} + +void func_8011C2A0(void *arg0); + +void func_800F6E0C(void *arg0, UNUSED void *arg1, UNUSED void *arg2) { + func_8011C2A0(arg0); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F6E30.s") + +extern s32 D_800BE500, D_800BE504; +extern void (*D_800D4F10[])(struct GObj *); + +void func_800F716C(struct GObj *arg0) { + if ((D_800BE500 == 1) && (D_800BE504 == 2)) { + gSPFogPosition(gDisplayListHeads[0]++, 102, 1003); + gSPFogPosition(gDisplayListHeads[1]++, 102, 1003); + } else { + gSPFogPosition(gDisplayListHeads[0]++, 920, 1000); + gSPFogPosition(gDisplayListHeads[1]++, 920, 1000); + } + D_800D4F10[gSegment4StartArray[arg0->objId][2]](arg0); +} + +extern u32 D_800D7010; +extern u32 D_800D7028; +extern u32 D_800D7040; +extern u32 D_80124000; + +void func_800F7258(s32 arg0) { + func_800A5404(&D_800D7010, &D_80124000); + func_800A5404(&D_800D7028, &D_80124000); + func_800A5404(&D_800D7040, &D_80124000); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F72B0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7404.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7484.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F753C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7578.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7844.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F78E4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8078.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F81A4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8274.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8378.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8464.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8560.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8570.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8728.s") + +f32 sinf(f32); +f32 atanf(f32); +#include "types.h" +f32 func_800F8824(Vector *arg0, f32 arg1) { + if (arg0 != NULL) { + return atanf(-((arg0->x * sinf(arg1)) + (cosf(arg1) * arg0->z)) / arg0->y); + } + return 0; +} diff --git a/src/ovl2/ovl2_2.h b/src.old/ovl2/ovl2_2.h similarity index 100% rename from src/ovl2/ovl2_2.h rename to src.old/ovl2/ovl2_2.h diff --git a/src.old/ovl2/ovl2_3.c b/src.old/ovl2/ovl2_3.c new file mode 100644 index 000000000..c512a11de --- /dev/null +++ b/src.old/ovl2/ovl2_3.c @@ -0,0 +1,431 @@ +#include +#include +#include "types.h" +#include "ovl0/ovl0_5.h" + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F88A0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F88C8.s") + + +// gets the angle difference between two vectors, and +// negates the result if the cross product has a negative Y component +f32 vec3_abs_angle_diff(Vector *arg0, Vector *arg1) { + Vector sp1C; + + vec3_normalized_cross_product(arg0, arg1, &sp1C); + if (0.0f < sp1C.y) { + return lbvector_Angle(arg1, arg0); + } + return -lbvector_Angle(arg1, arg0); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8A24.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8B1C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8C70.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8E6C.s") + +#include "ovl2_6.h" +extern s32 D_80129118; + +#include "unk_structs/D_80129114.h" + +extern void func_8001E300(f32 a, s32 b, f32 c, s32 d); + +u32 func_800F9020(struct Normal *arg0, s32 arg1, f32 arg2) { + if (arg1 >= D_80129118 || arg1 < 0 || arg2 < 0.0f || arg2 > 1.0f) { + arg0->z = 0.0f; + arg0->y = 0.0f; + arg0->x = 0.0f; + return 1; + } else { + func_8001E300(arg2, D_80129114->unk4[arg1].unk4, arg2, arg1); + return 0; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F90C0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F93EC.s") + +extern f32 D_801287B8, D_801287BC; + +extern f32 D_8012912C, *D_80129130, D_801287C0; +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F951C.s") + +extern u32 D_800E5F90[]; +extern f32 D_800E6BD0[]; +extern f32 func_800F951C(s32, f32, s32, f32); + +f32 func_800F9828(s32 arg0, s32 arg1) { + return func_800F951C(D_800E5F90[arg0], D_800E6BD0[arg0], D_800E5F90[arg1], D_800E6BD0[arg1]); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9888.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F98EC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9974.s") + + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9C54.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9C94.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9F10.s") + +f32 func_800F9F80(Vector *arg0, Vector *arg1, Vector *arg2) { + Vector sp2C; + Vector sp20; + + lbvector_Diff(&sp2C, arg2, arg1); + lbvector_Diff(&sp20, arg0, arg1); + return (vec3_dot_product(&sp2C, &sp20) / vec3_mag_square(&sp2C)); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9FDC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA1D4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA2D4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA414.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA438.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA5C0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA608.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA7EC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA92C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FAC74.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB164.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB814.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB914.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB9B4.s") + +void func_800FBA78(void) { + func_801DC98C_ovl2(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBA98.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBBB8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBDE8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBE1C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBF18.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC03C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC164.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC3D8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC500.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC53C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC62C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC804.s") + +s32 func_800FCD14(u32 arg0, u8 node, f32 yScale, u8 bankID, u8 entID, + u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, + Vec3f *pos, Vec3f *angle, Vec3f *scale); + +s32 func_800FCDC0(u32 arg0, u8 bankID, u8 entID, + u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, + Vec3f *pos, Vec3f *angle, Vec3f *scale); + +u32 spawn_entity(u32 arg0, struct Entity *arg1) { + if (!(arg1->respawnFlag & 1)) { + return func_800FCD14(arg0, arg1->nodeNum, arg1->scale[1], arg1->bankID, + arg1->entityID, arg1->action, arg1->respawnFlag, + arg1->unk5, arg1->saveToEeprom, + &arg1->pos, &arg1->angle, &arg1->scale); + } + else { + return func_800FCDC0(arg0, arg1->bankID, arg1->entityID, arg1->action, + arg1->respawnFlag, arg1->unk5, arg1->saveToEeprom, + &arg1->pos, &arg1->angle, &arg1->scale); + } +} + +extern s32 D_800D6E10; +extern s8 D_800E7650[]; +extern s8 D_800E76C0[]; +extern u8 D_800E7730[]; +extern u16 D_800E77A0[]; +extern s8 D_800E7880[]; +extern s8 D_800E78F0[]; +extern s32 D_800E8AE0[]; +extern f32 gEntitiesNextPosXArray[]; +extern f32 gEntitiesNextPosYArray[]; +extern f32 gEntitiesNextPosZArray[]; +extern f32 gEntitiesAngleXArray[]; +extern f32 gEntitiesAngleYArray[]; +extern f32 gEntitiesAngleZArray[]; +extern s32 D_800E91E0[]; +extern f32 gEntitiesScaleZArray[]; +extern f32 gEntitiesScaleYArray[]; +extern f32 gEntitiesScaleXArray[]; + +s32 func_800FCA84(s32 arg0, u8 bankID, u8 entID, + u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, + Vec3f *pos, Vec3f *angle, Vec3f *scale) { + s32 temp_v0; + s8 temp_a0; + + u8 bank = bankID; + switch (bank) { + case 0: + if (entID >= 0x6b) { + return -1; + } + temp_a0 = 0x17; + break; + case 1: + if (entID >= 3) { + return -1; + } + temp_a0 = 0x18; + break; + case 2: + if (entID >= 7) { + return -1; + } + temp_a0 = 0x19; + break; + case 3: + if (entID >= 0xe) { + return -1; + } + temp_a0 = 0x1c; + break; + case 5: + return -1; + case 7: + if (entID >= 0xb) { + return -1; + } + temp_a0 = 0x20; + break; + case 8: + temp_a0 = 0x21; + break; + default: + print_error_stub("setUpDispose failed. DisType =%02d\n", bank); + return -1; + } + + temp_v0 = request_track_general(temp_a0, 0x1E, 0x3C); + if (temp_v0 == -1) { + return -1; + } + + if (++D_800D6E10 >= 0x100) { + D_800D6E10 = 1; + } + + D_800E7650[temp_v0] = D_800D6E10; + D_800E76C0[temp_v0] = arg0; + D_800E7730[temp_v0] = bankID; + D_800E77A0[temp_v0] = entID; + D_800E7880[temp_v0] = action; + D_800E78F0[temp_v0] = unk5; + + D_800E8AE0[temp_v0] = (respawnFlag & 2) ? 2 : 0; + + gEntitiesNextPosXArray[temp_v0] = (*pos)[0]; + gEntitiesNextPosYArray[temp_v0] = (*pos)[1]; + gEntitiesNextPosZArray[temp_v0] = (*pos)[2]; + gEntitiesAngleXArray[temp_v0] = (*angle)[0]; + gEntitiesAngleYArray[temp_v0] = (*angle)[1]; + gEntitiesAngleZArray[temp_v0] = (*angle)[2]; + D_800E91E0[temp_v0] = saveToEeprom; + gEntitiesScaleXArray[temp_v0] = gEntitiesScaleYArray[temp_v0] = gEntitiesScaleZArray[temp_v0] = *scale[0]; +} + +extern u32 D_800E8E60[]; + +s32 func_800FCD14(u32 arg0, u8 node, f32 yScale, u8 bankID, u8 entID, + u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, + Vec3f *pos, Vec3f *angle, Vec3f *scale) { + s32 temp_v0; + + temp_v0 = func_800FCA84(arg0, bankID, entID, action, respawnFlag, unk5, saveToEeprom, pos, angle, scale); + if (temp_v0 == -1) { + return -1; + } + + D_800E5F90[temp_v0] = node; + D_800E6BD0[temp_v0] = yScale; + D_800E8E60[temp_v0] = 0; + return temp_v0; +} + +s32 func_800FCDC0(u32 arg0, u8 bankID, u8 entID, + u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, + Vec3f *pos, Vec3f *angle, Vec3f *scale) { + s32 temp_v0; + + temp_v0 = func_800FCA84(arg0, bankID, entID, action, respawnFlag, unk5, saveToEeprom, pos, angle, scale); + if (temp_v0 == -1) { + return -1; + } + D_800E8E60[temp_v0] = 1; + return temp_v0; +} + +#include "D_8004A7C4.h" + +typedef struct { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 filler6[0x26]; +} Struct_801290E0; + +extern Struct_801290E0 *D_801290E0[]; +extern s8 D_800E76C0[]; +extern u32 D_801290E8; + +void *func_800FCE50(void) { + u8 index = D_800E76C0[D_8004A7C4->objId]; + Struct_801290E0 *str; + + if (index != 0xFF) { + str = *D_801290E0; + if ((str[index].unk5 & 0xC) == 4) { + return str + (index + 1); + } + else { + return NULL; + } + } + return D_801290E0 + 2; +} + +void func_800FCED8(UNUSED s32 arg0) { + func_800B1900((u16)D_8004A7C4->objId); +} + +void func_800FCF04(UNUSED s32 arg0) { + +} + +extern u32 D_801242D0; + +void func_800FCF0C(UNUSED s32 arg0) { + func_80199568_ovl2(); + call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0x6B, &D_801242D0); +} + +extern u32 D_8012447C; + +void func_800FCF58(UNUSED s32 arg0) { + func_80199568_ovl2(); + call_virtual_function(D_800E77A0[D_8004A7C4->objId], 3, &D_8012447C); +} + +extern u32 D_80124488; + +void func_800FCFA4(UNUSED s32 arg0) { + func_80199568_ovl2(); + call_virtual_function(D_800E77A0[D_8004A7C4->objId], 7, &D_80124488); +} + +extern u32 D_801244A4; + +void func_800FCFF0(UNUSED s32 arg0) { + func_80199568_ovl2(); + call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0xE, &D_801244A4); +} + +extern u32 D_801244DC; + +void func_800FD03C(UNUSED s32 arg0) { + func_80199568_ovl2(); + call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0x2C, &D_801244DC); +} + +extern u32 D_80129124; +extern u8 D_800D6C90[]; + +void func_800FD088(void) { + s32 temp_s1; + s32 temp_v0; + Struct_801290E0 *phi_s0; + u32 phi_s2; + + phi_s0 = *D_801290E0; + for (phi_s2 = 0; phi_s2 < D_80129124; phi_s2++) { + if (5 == phi_s0->unk1) { + temp_s1 = (phi_s0->unk3 << 8) + phi_s0->unk2; + temp_v0 = func_80114DBC(temp_s1, (u8*)phi_s0 + 8); + D_800D6C90[phi_s2] = 1; + if (temp_v0 != 0) { + D_800E7730[temp_v0] = phi_s0->unk1; + D_800E77A0[temp_v0] = temp_s1; + D_800E7880[temp_v0] = phi_s0->unk3; + } + } + phi_s0++; + } +} + +extern f32 D_800E3910[]; +extern f32 D_800E3750[]; +extern f32 D_800E3590[]; +extern f32 D_800E33D0[]; +extern f32 D_800E3210[]; +extern f32 D_800E3050[]; +extern f32 D_800E3E50[]; +extern f32 D_800E3C90[]; +extern f32 D_800E3AD0[]; +extern f32 D_800E6690[]; +extern f32 D_800E64D0[]; +extern f32 D_800E6850[]; +extern u32 D_800E0490[]; +extern u32 D_801D02AC[][8]; +extern u32 D_8012458C; +extern void func_800E3910(void); + +void func_800FD194(s32 arg0) { + f32 temp1, temp2; + + D_800E3910[D_8004A7C4->objId] = 0.0f; + temp1 = D_800E3910[D_8004A7C4->objId]; + D_800E3750[D_8004A7C4->objId] = temp1; + D_800E3590[D_8004A7C4->objId] = temp1; + D_800E33D0[D_8004A7C4->objId] = temp1; + D_800E3210[D_8004A7C4->objId] = temp1; + D_800E3050[D_8004A7C4->objId] = temp1; + D_800E3E50[D_8004A7C4->objId] = 65535.0f; + temp2 = D_800E3E50[D_8004A7C4->objId]; + D_800E3C90[D_8004A7C4->objId] = temp2; + D_800E3AD0[D_8004A7C4->objId] = temp2; + D_800E6690[D_8004A7C4->objId] = 0.0f; + + D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; + D_800E6850[D_8004A7C4->objId] = 65535.0f; + D_800E0490[D_8004A7C4->objId] = 0; + D_801D02AC[D_8004A7C4->objId][0] = 0; + call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0xB, &D_8012458C, D_800E3910); +} diff --git a/src.old/ovl2/ovl2_3.h b/src.old/ovl2/ovl2_3.h new file mode 100644 index 000000000..78bb2965c --- /dev/null +++ b/src.old/ovl2/ovl2_3.h @@ -0,0 +1,7 @@ +#ifndef OVL2_3_H +#define OVL2_3_H + +extern f32 vec3_abs_angle_diff(Vector *arg0, Vector *arg1); +void func_800FB914(s32); + +#endif // OVL2_3_H diff --git a/src.old/ovl2/ovl2_4.c b/src.old/ovl2/ovl2_4.c new file mode 100644 index 000000000..31d5c6591 --- /dev/null +++ b/src.old/ovl2/ovl2_4.c @@ -0,0 +1,169 @@ +#include +#include + +#include "D_8004A7C4.h" +#include "ovl1/ovl1_6.h" + +extern void *D_801245C0; + +extern u32 D_801245C4[][3]; + +void func_800FD330(s32 arg0) { + if (D_800DD710[D_800E0D50[D_8004A7C4->objId]] != -1) { + D_800E10D0[D_8004A7C4->objId] = D_800E10D0[D_800E0D50[D_8004A7C4->objId]]; + D_800E1290[D_8004A7C4->objId] = D_800E1290[D_800E0D50[D_8004A7C4->objId]]; + D_800E1450[D_8004A7C4->objId] = D_800E1450[D_800E0D50[D_8004A7C4->objId]]; + } + call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 1, &D_801245C0); +} + +extern u32 D_80124624; +extern s32 D_800B4D40; + +// has an easy way to bring the diff down to one instruction, +// but the operands to that instructions are in the wrong order +#ifdef NON_MATCHING +void func_800FD418(struct GObj *arg0) { + s32 temp_v0 = D_800EC2E0[D_8004A7C4->objId].as_s32; + u32 tmp; + + // temp_v0 = D_800EC2E0[D_8004A7C4->objId]; + if (!(temp_v0 < 0xA) || D_801245C4[temp_v0][0] == 0) { + func_800B1900(D_8004A7C4->objId & 0xFFFF); + } + if (D_801245C4[temp_v0] == D_801245C4[8]) { + D_800DEF90[D_8004A7C4->objId] = &D_800B4D40; + } + func_800A9864(tmp = D_801245C4[temp_v0][0], 0x0001869F, 0x10); + func_800AA018(D_801245C4[temp_v0][1]); + func_800AA018(D_801245C4[temp_v0][2]); + arg0->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + arg0->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + arg0->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + func_800AF27C(); + func_800B1900((u16) D_8004A7C4->objId); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_4/func_800FD418.s") +#endif + +void func_800A7F74(s32, s32, s32, f32, f32, f32); +s32 func_800FD9D4(s32); +extern u32 D_80124630; +extern const char D_801288E0[]; + +// no idea tbh +#ifdef NON_MATCHING +u32 func_800FD570(s32 arg0, u32 arg1, f32 arg2, f32 arg3, f32 arg4) { + Vector sp28; + + if (arg0 != 0) { + func_800A4794(&sp28, arg0, arg0); + } else { + sp28.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + sp28.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + sp28.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + } + if (D_801245C4[arg1][0] != 0) { + u32 temp_v0_3 = func_800FD9D4(0); + if (temp_v0_3 == -1) { + print_error_stub(D_801288E0); + return 0; + } + D_800EC2E0[temp_v0_3].as_u32 = arg1; + gEntitiesNextPosXArray[temp_v0_3] = sp28.x + arg2; + gEntitiesNextPosYArray[temp_v0_3] = sp28.y + arg3; + gEntitiesNextPosZArray[temp_v0_3] = sp28.z + arg4; + } else if (D_801245C4[arg1] != D_801245C4[9]) { + func_800A7F74(3, 2, D_801245C4[arg1][1], sp28.x + arg2, sp28.y + arg3, sp28.z + arg4); + } else { + func_800A7F74(0, 2, D_801245C4[arg1][1], sp28.x + arg2, sp28.y + arg3, sp28.z + arg4); + } + return 1; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_4/func_800FD570.s") +#endif + + +extern const char D_8012890C[]; + +// uhh idk but it matches better than the function above it +#ifdef NON_MATCHING +s32 func_800FD754(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { + u32 *temp_v0; + + temp_v0 = D_801245C4[arg0 * 3]; + if (temp_v0[0] != 0) { + s32 temp_v0_2 = func_800FD9D4(0); + if (temp_v0_2 == -1) { + print_error_stub(&D_8012890C); + } + else { + D_800EC2E0[temp_v0_2].as_s32 = arg0; + gEntitiesNextPosXArray[temp_v0_2] = arg1; + gEntitiesNextPosYArray[temp_v0_2] = arg2; + gEntitiesNextPosZArray[temp_v0_2] = arg3; + return 1; + } + return 0; + } + if (temp_v0 != D_801245C4[9]) { + func_800A7F74(3, 2, temp_v0[1], arg1, arg2, arg3); + return; + } + func_800A7F74(0, 2, temp_v0[1], arg1, arg2, arg3); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_4/func_800FD754.s") +#endif + + +extern const char *D_8012893C; +u32 func_800FD874(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { + s32 temp_v0; + u32 temp_a1; + + if (D_801245C4[arg0][0] != 0) { + temp_v0 = func_800FD9D4(0); + if (temp_v0 == -1) { + print_error_stub(&D_8012893C); + } else { + D_800EC2E0[temp_v0].as_s32 = arg0; + gEntitiesNextPosXArray[temp_v0] = arg1; + gEntitiesNextPosYArray[temp_v0] = arg2; + gEntitiesNextPosZArray[temp_v0] = arg3; + gEntitiesAngleXArray[temp_v0] = arg4; + gEntitiesAngleYArray[temp_v0] = arg5; + gEntitiesAngleZArray[temp_v0] = arg6; + return 1; + } + } + return 0; +} + +s32 func_800FD968(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { + s32 temp_v0; + + temp_v0 = func_800FD9D4(arg0); + if (temp_v0 != -1) { + gEntitiesNextPosXArray[temp_v0] = arg1; + gEntitiesNextPosYArray[temp_v0] = arg2; + gEntitiesNextPosZArray[temp_v0] = arg3; + } + return temp_v0; +} + +extern const char D_8012896C[]; +s32 func_800FD9D4(s32 arg0) { + s32 temp_v0; + + temp_v0 = request_track_general(0x22, 0x3C, 0x4A); + if (temp_v0 == -1) { + print_error_stub(&D_8012896C); + } else { + gEntityVtableIndexArray[temp_v0] = arg0; + } + + return temp_v0; +} diff --git a/src.old/ovl2/ovl2_5.c b/src.old/ovl2/ovl2_5.c new file mode 100644 index 000000000..1c426fc47 --- /dev/null +++ b/src.old/ovl2/ovl2_5.c @@ -0,0 +1,257 @@ +#include +#include +#include + +#include "unk_structs/D_800E1B50.h" + +extern Gfx *gDisplayListHeads[4]; + +void func_800FDA40(Vtx *curVtx, f32 arg1, f32 arg2) { + Vtx* vtxList = curVtx; + + (curVtx++)->v.ob[1] = arg2; + (curVtx++)->v.ob[1] = arg2; + (curVtx++)->v.ob[1] = arg1; + (curVtx++)->v.ob[1] = arg1; + gSPVertex(gDisplayListHeads[0]++, vtxList, 4, 0); + gSP2Triangles(gDisplayListHeads[0]++, 2, 3, 1, 0x0, 0, 2, 1, 0x0); + +} + +void func_800FDAB8(Vtx *curVtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + f32 vtx_3_4_tmp_z; + Vtx *vtxList = curVtx += 4; + f32 vtx_1_2_tmp_v; + f32 arg4_tmp; + + vtx_3_4_tmp_z = ((-40.0f) * arg3) + 20.0f; + arg4_tmp = arg4; + + (curVtx )->v.ob[1] = arg2; + (curVtx )->v.ob[2] = ((-40.0f) * arg4_tmp) + 20.0f; + vtx_1_2_tmp_v = 4032.0f * arg4; + (curVtx++)->v.tc[1] = vtx_1_2_tmp_v; + + (curVtx )->v.ob[1] = arg2; + (curVtx )->v.ob[2] = ((-40.0f) * arg4) + 20.0f; + (curVtx++)->v.tc[1] = vtx_1_2_tmp_v; + + (curVtx )->v.ob[1] = arg1; + (curVtx )->v.ob[2] = vtx_3_4_tmp_z; + (curVtx++)->v.tc[1] = 4032.0f * arg3; + + (curVtx )->v.ob[1] = arg1; + (curVtx )->v.ob[2] = vtx_3_4_tmp_z; + (curVtx++)->v.tc[1] = 4032.0f * arg3; + + gSPVertex(gDisplayListHeads[0]++, vtxList, 4, 0); + gSP2Triangles(gDisplayListHeads[0]++, 2, 3, 1, 0x0, 0, 2, 1, 0x0); +} + +#ifdef NON_MATCHING +void *func_800FDBB0 (Vtx *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + Vtx *list = arg0 += 4; + + (list++)->v.ob[1] = arg2; + (list++)->v.ob[1] = arg2; + (list++)->v.ob[1] = arg1; + (list++)->v.ob[1] = arg1; + + (list )->v.ob[1] = arg3; + (list )->v.ob[2] = (-40.0f * arg4) + 20.0f; + (list++)->v.tc[1] = 4032.0f * arg4; + + (list )->v.ob[1] = arg3; + (list )->v.ob[2] = (-40.0f * arg4) + 20.0f; + (list++)->v.tc[1] = 4032.0f * arg4; + + gSPVertex(gDisplayListHeads[0]++, arg0, 6, 0); + gSP2Triangles(gDisplayListHeads[0]++, 2, 3, 5, 0, 4, 2, 5, 0); + gSP2Triangles(gDisplayListHeads[0]++, 4, 5, 1, 0, 0, 4, 1, 0); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDBB0.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDCB0.s") + +void func_800FDE64(UNUSED s32 arg0) { + +} + +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDE6C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDF88.s") + +struct UNK_D_8012B9AC { + u8 filler[0x30]; + u32 unk30; +}; + +extern struct UNK_D_8012B9AC *D_8012B9AC; + +void func_800FDFF4(s32 arg0) { + Gfx *temp_v1; + Gfx *temp_v1_2; + void *temp_v1_3; + void *temp_v1_4; + + if (arg0 != D_8012B9AC->unk30) { + if (arg0 != 0) { + gDPPipeSync(gDisplayListHeads[0]++); + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + } else { + gDPPipeSync(gDisplayListHeads[0]++); + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_ZB_OVL_SURF, G_RM_ZB_OVL_SURF2); + } + D_8012B9AC->unk30 = arg0; + } +} + +void func_800FE0AC(f32 arg0, f32 arg1) { + f32 max_val = 80.0f; + f32 phi_f0 = arg1 - arg0; + + if (max_val <= phi_f0) { + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, 0, 0, 0, 0xFF); + return; + } + if (phi_f0 < 0.0f) { + phi_f0 = 0.0f; + } + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, 0, 0, 0, (s32)((phi_f0 / max_val) * 255)); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FE154.s") + +extern u32 D_80104A08; +extern u32 D_80104958; + +struct UNK_FUNC_800FEE6C { + u8 filler[0x08]; + struct UNK_FUNC_800FEE6C* unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u8 filler2[0x84 - 0x04 - 0x14]; + struct UNK_FUNC_800FEE6C_2 *unk84; +}; + +struct UNK_FUNC_800FEE6C_2 { + u8 filler[0x20]; + u8 unk20; +}; + + +void func_800FEE6C(struct UNK_FUNC_800FEE6C *arg0) { + s32 sp34; + void *phi_a2; + struct UNK_FUNC_800FEE6C *phi_s0; + u8 phi_v0; + + sp34 = 0; + phi_v0 = arg0->unk84->unk20; + if ((phi_v0 & 3) == 0) { + if ((phi_v0 & 8) != 0) { + phi_a2 = &D_80104A08; + } else { + phi_a2 = &D_80104958; + } + func_800FE154(arg0, &sp34, phi_a2); + } + if (sp34 != 0) { + if ((arg0->unk14 == 1) || (arg0->unk8 != 0)) { + gSPPopMatrix(gDisplayListHeads[0]++, G_MTX_MODELVIEW); + } + } + if (arg0->unkC == 0) { + phi_s0 = arg0->unk8; + while (phi_s0 != 0) { + func_800FEE6C(phi_s0); + phi_s0 = phi_s0->unk8; + } + } +} + +extern Gfx D_801246C0[]; +extern Gfx D_80124708[]; +extern u8 *D_8012B99C; + +struct UNK_FUNC_800FEF44 { + u8 filler[0x3C]; + struct UNK_FUNC_800FEE6C *unk3C; +}; + +void func_800FEF44(struct UNK_FUNC_800FEF44 *arg0) { + struct UNK_D_8012B9AC sp3C; + + if (arg0->unk3C != 0) { + D_8012B9AC = &sp3C; + sp3C.unk30 = 0; + gSPDisplayList(gDisplayListHeads[0]++, D_801246C0); + gDPSetTextureImage(gDisplayListHeads[0]++, G_IM_FMT_I, G_IM_SIZ_16b, 1, D_8012B99C); + gDPSetTile(gDisplayListHeads[0]++, G_IM_FMT_I, G_IM_SIZ_16b, 0, 0, 7, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0); + gDPLoadSync(gDisplayListHeads[0]++); + gDPLoadBlock(gDisplayListHeads[0]++, G_TX_LOADTILE, 0x000, 0x000, 0x1FF, 0x200) + gDPPipeSync(gDisplayListHeads[0]++); + gDPSetTile(gDisplayListHeads[0]++, G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0); + gDPSetTileSize(gDisplayListHeads[0]++, 0, 0 << 2, 0 << 2, (32 - 1) << 2, (32 - 1) << 2); + func_800FEE6C(arg0->unk3C); + gSPDisplayList(gDisplayListHeads[0]++, D_80124708); + } +} + +void func_800FF0A8(struct Sub800E1B50 *arg0) { + if (arg0 != 0) { + arg0->unk20 = arg0->unk20 | 2; + } +} + +void func_800FF0C4(struct Sub800E1B50 *arg0) { + if (arg0 != 0) { + arg0->unk20 = arg0->unk20 & ~2; + } +} + +void func_800FF0E0(struct Sub800E1B50 *arg0) { + if (arg0 != 0) { + arg0->unk20 = arg0->unk20 | 8; + } +} + +// Obviously not the correct type +extern void **D_8012B990; + +void **func_800FF0FC(void) { + void **temp_v1; + + temp_v1 = D_8012B990; + if (temp_v1 == 0) { + return NULL; + } + D_8012B990 = *temp_v1; + return temp_v1; +} + +void func_800FF12C(void **arg0) { + *arg0 = D_8012B990; + D_8012B990 = arg0; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FF144.s") + +struct UNK_FUNC_80FF1CC { + u8 filler[0x24]; + void *unk24; +}; + +void func_800FF1CC(struct UNK_FUNC_80FF1CC *arg0) { + if (arg0 != 0) { + func_80009DF4_ovl2(arg0->unk24, arg0); + func_800FF12C(arg0); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FF200.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FF2C8.s") diff --git a/src.old/ovl2/ovl2_6.c b/src.old/ovl2/ovl2_6.c new file mode 100644 index 000000000..9029305ee --- /dev/null +++ b/src.old/ovl2/ovl2_6.c @@ -0,0 +1,208 @@ +#include "types.h" +#include +#include +#include +u32 func_80101920(Vector *a0, struct Normal *a1, Vector *a2, struct Normal *a3); +u32 func_80101BA0(Vector *a0, struct Normal *a1, Vector *a2, struct Normal *a3); + +struct UNK_D_8012BBF8 { + struct UNK_D_8012BBF8_unk0 *unk0; + float unk4; + u16 unk8; + u16 unkA; + u32 unkC; +}; + +struct UNK_D_8012B9B8 { + /*0x00*/ u32 unk0; + /*0x04*/ u32 unk4; + /*0x08*/ u16 unk8; + /*0x0A*/ u16 unkA; + /*0x0C*/ u32 unkC; + /*0x10*/ float unk10; + /*0x14*/ float unk14; + /*0x18*/ u32 unk18; + /*0x1C*/ u32 unk1C; + /*0x20*/ u32 unk20; + /*0x24*/ u32 unk24; + /*0x28*/ u32 unk28; + /*0x2C*/ u32 unk2C; +}; + +struct UNK_D_8012BBF8_unk0 { + /*0x00*/ float unk0; + /*0x04*/ u32 unk4; + /*0x08*/ float unk8; + /*0x0C*/ float unkC; + /*0x10*/ float unk10; + /*0x14*/ u8 unk14; + /*0x15*/ u8 unk15; + /*0x16*/ u8 unk16; + /*0x17*/ u8 unk17; + /*0x18*/ u8 unk18; + /*0x19*/ u8 unk19; + /*0x1A*/ u8 unk1A; + /*0x1B*/ u8 unk1B; + /*0x1C*/ float unk1C; + /*0x20*/ float unk20; + /*0x24*/ float unk24; + /*0x28*/ float unk28; + /*0x2C*/ float unk2C; +}; + +extern struct UNK_D_8012BBF8 D_8012BBF8[10]; +extern struct UNK_D_8012B9B8 D_8012B9B8[]; + +void func_800FF5E0(s32 arg0, f32 arg1, f32 arg2) { + struct UNK_D_8012B9B8 *temp_a1; + struct UNK_D_8012BBF8 *temp_v0; + struct UNK_D_8012BBF8_unk0 *temp_v1; + + temp_v0 = &D_8012BBF8[arg0]; + temp_v1 = temp_v0->unk0; + temp_v0->unk4 = temp_v0->unk4 + arg2; + temp_a1 = &D_8012B9B8[arg0]; + temp_v1->unk20 = temp_v1->unk20 + arg1; + temp_v1->unk24 = temp_v1->unk24 + arg2; + temp_v1->unk28 = temp_a1->unk10; + temp_v1->unk2C = temp_a1->unk14; +} + +extern u32 D_8012B9B0; + +struct UNK_D_800D478C { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u32 unk8; +}; + +extern struct UNK_D_800D478C D_800D478C[]; + +// Almost matching +GLOBAL_ASM("asm/non_matchings/ovl2_6/func_800FF64C.s") + +#include "PR/gbi.h" +#include "ovl1/ovl1_5.h" +extern Gfx *gDisplayListHeads[4]; + + +#define G_CC_UNK1 PRIMITIVE, 0, TEXEL0, 0, 0, 0, 0, TEXEL0 +#define G_CC_UNK2 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0 + +#define TRANSPARENT_SURFACE (1 << 1) + +// S2D code :o +void func_800FF71C(struct UnkStruct800AC954 *arg0, u8 arg1, u8 arg2) { + gDPPipeSync(gDisplayListHeads[0]++); + gDPSetCycleType(gDisplayListHeads[0]++, G_CYC_1CYCLE) + if (arg0->renderFlags & TRANSPARENT_SURFACE) { + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gSPObjRenderMode(gDisplayListHeads[0]++, (G_OBJRM_BILERP | G_OBJRM_XLU)); + } else { + gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_BILERP); + } + if (arg2 & (1 | 2)) { + if (arg2 & 1) { + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, + arg0->primColorRed, + arg0->primColorGreen, + arg0->primColorBlue, + arg0->primColorAlpha); + gDPSetEnvColor(gDisplayListHeads[0]++, + arg0->envColorRed, + arg0->envColorGreen, + arg0->envColorBlue, + arg0->envColorAlpha); + gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_BLENDPEDECALA, G_CC_BLENDPEDECALA); + return; + } else { + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, + arg0->primColorRed, + arg0->primColorGreen, + arg0->primColorBlue, + arg0->primColorAlpha); + gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_UNK1, G_CC_UNK1); + return; + } + } + if (arg1 == 4) { + gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, + arg0->primColorRed, + arg0->primColorGreen, + arg0->primColorBlue, + arg0->primColorAlpha); + gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_UNK2, G_CC_UNK2); + return; + } + gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_DECALRGBA, G_CC_DECALRGBA); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_6/func_800FF9B4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80100790.s") + +void *func_80100AC8(void *arg0); +GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80100AC8.s") + +extern u32 D_80124740[]; + +u32 func_80100DF8(s32 arg0) { + u32 phi_v0; + u32 i; + + phi_v0 = D_80124740[arg0]; + for (i = 0; i < D_8012B9B0; i++) { + if (phi_v0 == D_8012B9B8[i].unk4) { + return 1; + } + } + return 0; +} + +void func_80100E50(u32 arg0) { + func_8000A180(arg0, &func_80100AC8, 0, 0); +} + +extern f32 D_80128A2C, D_80128A30; +u32 func_80100E7C(f32 arg0) { + if (0.0f <= arg0) { + if (arg0 <= D_80128A2C) { + return 0; + } + return 1; + } + if (D_80128A30 <= arg0) { + return 3; + } + return 2; +} + +f32 func_80100EE4(s32 arg0); +GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80100EE4.s") + +void func_8010133C(void) { + u32 i; + + for (i = 0; i < 10; i++) { + D_8012BBF8[i].unk0 = NULL; + } +} + +void func_8010137C(void) { + s32 i; + + func_8010133C(); + for (i = 0; i < 4; i++) { + if (func_80100DF8(i) != 0) { + func_80100E50(i); + } + } + func_80008A18(func_8000A180(0, 0, 0x1A, 0x80000000), &func_80100EE4, 1, 0); +} diff --git a/src/ovl2/ovl2_6.h b/src.old/ovl2/ovl2_6.h similarity index 100% rename from src/ovl2/ovl2_6.h rename to src.old/ovl2/ovl2_6.h diff --git a/src/ovl2/ovl2_6_2.c b/src.old/ovl2/ovl2_6_2.c similarity index 100% rename from src/ovl2/ovl2_6_2.c rename to src.old/ovl2/ovl2_6_2.c diff --git a/src.old/ovl2/ovl2_7.c b/src.old/ovl2/ovl2_7.c new file mode 100644 index 000000000..eafcb779b --- /dev/null +++ b/src.old/ovl2/ovl2_7.c @@ -0,0 +1,1449 @@ +#include +#include +#include "D_8004A7C4.h" +#include "ovl1/ovl1_6.h" +#include "buffers.h" +#include "unk_structs/D_800DE350.h" + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80111F10.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112000.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801121E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801123AC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112498.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011253C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112600.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801126A4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112768.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801127D8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112828.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801128A4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129AC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129C4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129DC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129F4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112A0C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112A40.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112B4C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112CD4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112ED4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112F70.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80113028.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80113300.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801133C8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80113F08.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114974.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801149C0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114A14.s") + +void func_80114CCC(void) { + func_80114974(); + func_800FD088(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114CF4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114D54.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114DBC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114E80.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115070.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011511C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801151BC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115270.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115330.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801153B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011544C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801154F0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115578.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115618.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011572C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115888.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011591C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115A7C.s") + +void func_80115AAC(void) { + func_80115070(); +} + +void func_80115ACC(struct GObj *arg0); +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115ACC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115B64.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115C4C.s") + +void func_80115EAC(struct GObj *this); +extern f32 D_80128CF0; +#ifdef NON_MATCHING +void func_80115D38(struct GObj *this) { + // f32 temp_f0; + s32 idx = request_track_general(0x1E, 0x1E, 0x3C); + + // idx = request_track_general(0x1E, 0x1E, 0x3C); + D_8004A7C4 = D_800DE350[idx]; + func_80008DA8(gEntityGObjProcessArray[idx]); + func_800AF980(0x17); + func_800A9864(0x20060, 0x1869F, 0x10); + // temp_f0 = D_80128CF0; + gEntitiesNextPosXArray[idx] = gEntitiesNextPosXArray[this->objId]; + gEntitiesNextPosYArray[idx] = gEntitiesNextPosYArray[this->objId] + 220.0f; + gEntitiesNextPosZArray[idx] = gEntitiesNextPosZArray[this->objId]; + gEntitiesScaleZArray[idx] = D_80128CF0; + gEntitiesScaleYArray[idx] = D_80128CF0; + gEntitiesScaleXArray[idx] = D_80128CF0; + func_800AA018(0x202E5); + func_800AA018(0x202E6); + D_800DEF90[D_8004A7C4->objId] = &func_80115ACC; + D_800E98E0[this->objId] = idx; + D_8004A7C4 = this; + func_801153B8(this); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115D38.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115EAC.s") + +void func_80115EDC(void) { + func_80115070(); +} + +void func_80115EFC(s32 arg0) { + +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115F04.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116118.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801161D4.s") + +void func_80116218(s32 arg0) { + func_80008DA8(0); +} + +void func_8011623C(s32 arg0) { + func_80008DA8(0); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116260.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801162F4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116438.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011646C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801164A0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801164D4.s") + + +#include "ovl1/ovl1_6.h" + +extern const f32 D_80128D1C, D_80128D20, D_80128D24,D_80128D28; +s32 random_soft_s32_range(s32); +// loop doesnt pad enough bytes +#ifdef NON_MATCHING +void func_80116508(struct GObj *arg0) { + f32 temp_f0_2; + f32 temp_f0_3; + f32 temp_f0_4; + f32 temp_f2; + f32 temp_f2_2; + f32 temp_f2_3; + f32 temp_f30; + + u32 tmp = arg0->objId; + + D_800EA6E0[tmp] = gEntitiesNextPosYArray[tmp]; + D_800E98E0[tmp] = 0; + temp_f30 = D_80128D1C; + for (;;) { + D_800E3210[D_8004A7C4->objId] = (random_soft_s32_range(2) != 0) ? 0.25f : -0.25f; + while (TRUE) { + if (D_800E98E0[tmp] == 0) { + f32 temp_f0 = gEntitiesNextPosYArray[tmp] - D_800EA6E0[tmp]; + if (temp_f0 >= 15.0f) { + D_800E3210[D_8004A7C4->objId] = -0.25f; + } else if (temp_f0 <= -10.0f) { + D_800E3210[D_8004A7C4->objId] = 0.25f; + } + finish_current_thread(1); + } else { + break; + } + } + if (D_800E98E0[tmp] == 1) { + D_800E3590[D_8004A7C4->objId] = 0.0f; + D_800E3050[D_8004A7C4->objId] = D_800E3590[D_8004A7C4->objId]; + D_800E3AD0[D_8004A7C4->objId] = temp_f30; + D_800E3210[D_8004A7C4->objId] = D_80128D20 * 16.0f; + D_800E3750[D_8004A7C4->objId] = D_80128D24; + D_800E33D0[D_8004A7C4->objId] = 0.0f; + D_800E3910[D_8004A7C4->objId] = 0.0f; + D_800E3E50[D_8004A7C4->objId] = temp_f30; + finish_current_thread(0xF); + D_800E3910[D_8004A7C4->objId] = 0.0f; + temp_f0_2 = D_800E3910[D_8004A7C4->objId]; + D_800E3750[D_8004A7C4->objId] = temp_f0_2; + D_800E3590[D_8004A7C4->objId] = temp_f0_2; + D_800E33D0[D_8004A7C4->objId] = temp_f0_2; + D_800E3210[D_8004A7C4->objId] = temp_f0_2; + D_800E3050[D_8004A7C4->objId] = temp_f0_2; + D_800E3E50[D_8004A7C4->objId] = temp_f30; + temp_f2 = D_800E3E50[D_8004A7C4->objId]; + D_800E3C90[D_8004A7C4->objId] = temp_f2; + D_800E3AD0[D_8004A7C4->objId] = temp_f2; + finish_current_thread(1); + D_800E3590[D_8004A7C4->objId] = 0.0f; + D_800E3050[D_8004A7C4->objId] = D_800E3590[D_8004A7C4->objId]; + D_800E3AD0[D_8004A7C4->objId] = temp_f30; + D_800E3210[D_8004A7C4->objId] = 0.0f; + D_800E3750[D_8004A7C4->objId] = D_80128D28; + D_800E33D0[D_8004A7C4->objId] = 0.0f; + D_800E3910[D_8004A7C4->objId] = 0.0f; + D_800E3E50[D_8004A7C4->objId] = temp_f30; + finish_current_thread(0x16); + D_800E3910[D_8004A7C4->objId] = 0.0f; + temp_f0_3 = D_800E3910[D_8004A7C4->objId]; + D_800E3750[D_8004A7C4->objId] = temp_f0_3; + D_800E3590[D_8004A7C4->objId] = temp_f0_3; + D_800E33D0[D_8004A7C4->objId] = temp_f0_3; + D_800E3210[D_8004A7C4->objId] = temp_f0_3; + D_800E3050[D_8004A7C4->objId] = temp_f0_3; + D_800E3E50[D_8004A7C4->objId] = temp_f30; + temp_f2_2 = D_800E3E50[D_8004A7C4->objId]; + D_800E3C90[D_8004A7C4->objId] = temp_f2_2; + D_800E3AD0[D_8004A7C4->objId] = temp_f2_2; + D_800E98E0[tmp] = 0; + } + else if (D_800E98E0[tmp] == 2) { + D_800E3590[D_8004A7C4->objId] = 0.0f; + D_800E3050[D_8004A7C4->objId] = D_800E3590[D_8004A7C4->objId]; + D_800E3AD0[D_8004A7C4->objId] = temp_f30; + D_800E3210[D_8004A7C4->objId] = -8.0f; + D_800E33D0[D_8004A7C4->objId] = 0.0f; + D_800E3910[D_8004A7C4->objId] = 0.0f; + D_800E3E50[D_8004A7C4->objId] = temp_f30; + finish_current_thread(0xA); + D_800E3910[D_8004A7C4->objId] = 0.0f; + temp_f0_4 = D_800E3910[D_8004A7C4->objId]; + D_800E3750[D_8004A7C4->objId] = temp_f0_4; + D_800E3590[D_8004A7C4->objId] = temp_f0_4; + D_800E33D0[D_8004A7C4->objId] = temp_f0_4; + D_800E3210[D_8004A7C4->objId] = temp_f0_4; + D_800E3050[D_8004A7C4->objId] = temp_f0_4; + D_800E3E50[D_8004A7C4->objId] = temp_f30; + temp_f2_3 = D_800E3E50[D_8004A7C4->objId]; + D_800E3C90[D_8004A7C4->objId] = temp_f2_3; + D_800E3AD0[D_8004A7C4->objId] = temp_f2_3; + func_800AFA14(); + } + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116508.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116B68.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116B90.s") + +void func_80116CA0(void) { + func_80116B90(); +} + +void func_80116CC0(void) { + func_80116B90(); +} + +void func_80116CE0(void) { + func_80116B90(); +} + +void func_80116D00(void) { + func_80116B90(); +} + +void func_80116D20(void) { + func_80116B90(); +} + +void func_80116D40(void) { + func_80116B90(); +} + +void func_80116D60(void) { + func_80116B90(); +} + +void func_80116D80(void) { + func_80116B90(); +} + +void func_80116DA0(void) { + func_80115070(); +} + +void func_80116DC0(void) { + func_80115070(); +} + +void func_80116DE0(void) { + func_80115070(); +} + +void func_80116E00(void) { + func_80115070(); +} + +void func_80116E20(void) { + func_801153B8(); +} + +void func_80116E40(void) { + func_801153B8(); +} + +void func_80116E60(void) { + func_801153B8(); +} + +void func_80116E80(void) { + func_801153B8(); +} + +void func_80116EA0(void) { + func_801153B8(); +} + +void func_80116EC0(void) { + func_80115070(); +} + +void func_80116EE0(void) { + func_80115070(); +} + +void func_80116F00(void) { + func_80115070(); +} + +void func_80116F20(void) { + func_80115070(); +} + +void func_80116F40(void) { + func_80115070(); +} + +void func_80116F60(void) { + func_801153B8(); +} + +void func_80116F80(struct GObj *arg0); +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116F80.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116FF8.s") + +void func_80117078(void) { + func_80115070(); +} + +void func_80117098(void) { + func_801153B8(); +} + +void func_801170B8(void) { + func_801153B8(); +} + +void func_801170D8(void) { + func_801153B8(); +} + +void func_801170F8(void) { + func_801153B8(); +} + +void func_80117118(void) { + func_801153B8(); +} + +void func_80117138(void) { + func_801153B8(); +} + +void func_80117158(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117178.s") + +void func_801171F0(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117210.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117328.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801173F4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117570.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011764C.s") + +void func_80117698(void) { + func_8011764C(); +} + +void func_801176B8(void) { + func_8011764C(); +} + +void func_801176D8(void) { + func_8011764C(); +} + +void func_801176F8(void) { + func_8011764C(); +} + +void func_80117718(void) { + func_8011764C(); +} + +void func_80117738(void) { + func_8011764C(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117758.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117784.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801177B0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801177DC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117808.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117834.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117904.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117AB4.s") + +void func_80117D70(s32 arg0) { + func_80117834(); + func_80117904(arg0); + func_80117AB4(arg0); +} + +void func_80117DA0(s32 arg0) { + func_80117834(); + finish_current_thread(0x1E); + func_80117904(arg0); + func_80117AB4(arg0); +} + +void func_80117DD8(s32 arg0) { + func_80117834(); + finish_current_thread(0x3C); + func_80117904(arg0); + func_80117AB4(arg0); +} + +void func_80117E10(s32 arg0) { + func_80117834(); + func_80117AB4(arg0); +} + +void func_80117E38(s32 arg0) { + func_80117834(); + func_80117AB4(arg0); +} + +void func_80117E60(s32 arg0) { + func_80117834(); + func_80117AB4(arg0); +} + +void func_80117E88(s32 arg0) { + func_80117834(); + func_80117AB4(arg0); +} + +void func_80117EB0(s32 arg0) { + func_80117834(); + func_80117AB4(arg0); +} + +void func_80117ED8(s32 arg0) { + func_80117834(); + func_80117AB4(arg0); +} + +void func_80117F00(s32 arg0) { + func_80117834(); + func_80117AB4(arg0); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117F28.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801180B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118130.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801181AC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118270.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011829C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801182C8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801182F4.s") + +void func_80118320(void) { + func_801153B8(); +} + +void func_80118340(void) { + func_801153B8(); +} + +void func_80118360(void) { + func_801153B8(); +} + +void func_80118380(void) { + func_801153B8(); +} + +void func_801183A0(void) { + func_801153B8(); +} + +void func_801183C0(void) { + func_801153B8(); +} + +void func_801183E0(void) { + func_801153B8(); +} + +void func_80118400(void) { + func_801153B8(); +} + +extern void func_80112B4C(void); +extern void func_8011E524(void); +extern void func_801129F4(void); +extern void func_80112B4C(void); + +void func_80118420(u32 *arg0) { + func_80112B4C(); + if ((D_800DD8D0[*arg0] * 2) < 0) { + func_8011E524(); + func_801129F4(); + D_800DEF90[D_8004A7C4->objId] = &func_80112B4C; + } +} + +void func_80118498(void) { + func_80115070(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801184B8.s") + +void func_80118578(void) { + func_801153B8(); +} + +void func_80118598(void) { + func_801153B8(); +} + +void func_801185B8(void) { + func_801153B8(); +} + +void func_801185D8(void) { + func_801153B8(); +} + +void func_801185F8(void) { + func_80115070(); +} + +void func_80118618(void) { + func_80115070(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118638.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118760.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801187A4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011884C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011890C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118A60.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118B60.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118BC8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118C88.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118CA8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118CC8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118D84.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118E44.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118F70.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118F9C.s") + +void func_80118FC8(void) { + func_80118C88(); +} + +void func_80118FE8(void) { + func_80118CA8(); +} + +void func_80119008(void) { + func_80118C88(); +} + +void func_80119028(void) { + func_80118CA8(); +} + +void func_80119048(void) { + func_80118C88(); +} + +void func_80119068(void) { + func_80118CA8(); +} + +void func_80119088(s32 arg0) { + +} + +void func_80119090(void) { + func_80118CC8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801190B0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801190DC.s") + +void func_80119108(void) { + func_80118CC8(); +} + +void func_80119128(void) { + func_80118C88(); +} + +void func_80119148(void) { + func_80118CC8(); +} + +void func_80119168(void) { + func_80118C88(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119188.s") + +void func_80119270(void) { + func_80118C88(); +} + +void func_80119290(void) { + func_80118CA8(); +} + +void func_801192B0(s32 arg0) { + +} + +void func_801192B8(s32 arg0) { + +} + +void func_801192C0(void) { + func_80115070(); +} + +void func_801192E0(void) { + func_80115070(); +} + +void func_80119300(void) { + func_80115070(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119320.s") + +void func_801193CC(void) { + func_801153B8(); +} + +void func_801193EC(void) { + func_801153B8(); +} + +void func_8011940C(void) { + func_801153B8(); +} + +void func_8011942C(void) { + func_801153B8(); +} + +void func_8011944C(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011946C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011948C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801194AC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801194CC.s") + +void func_801194EC(void) { + func_80118C88(); +} + +void func_8011950C(void) { + func_80118CA8(); +} + +void func_8011952C(void) { + func_80118C88(); +} + +void func_8011954C(void) { + func_80118CA8(); +} + +void func_8011956C(void) { + func_80118C88(); +} + +void func_8011958C(void) { + func_80118CA8(); +} + +void func_801195AC(void) { + func_80118C88(); +} + +void func_801195CC(void) { + func_80118CA8(); +} + +void func_801195EC(void) { + func_80118C88(); +} + +void func_8011960C(void) { + func_80118CA8(); +} + +void func_8011962C(void) { + func_80118C88(); +} + +void func_8011964C(void) { + func_80118CA8(); +} + +void func_8011966C(void) { + func_80118C88(); +} + +void func_8011968C(void) { + func_80118CA8(); +} + +void func_801196AC(void) { + func_80118C88(); +} + +void func_801196CC(void) { + func_80118CA8(); +} + +void func_801196EC(void) { + func_80115070(); +} + +void func_8011970C(void) { + func_80115070(); +} + +void func_8011972C(void) { + func_80115070(); +} + +void func_8011974C(void) { + func_80115070(); +} + +void func_8011976C(void) { + func_80115070(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011978C.s") + +void func_8011982C(void) { + func_80115070(); +} + +void func_8011984C(void) { + func_80115070(); +} + +void func_8011986C(void) { + func_80115070(); +} + +void func_8011988C(void) { + func_801153B8(); +} + +void func_801198AC(void) { + func_801153B8(); +} + +void func_801198CC(void) { + func_801153B8(); +} + +void func_801198EC(void) { + func_801153B8(); +} + +void func_8011990C(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011992C.s") + +void func_801199E0(void) { + func_8011992C(); +} + +void func_80119A00(void) { + func_8011992C(); +} + +void func_80119A20(void) { + func_8011992C(); +} + +void func_80119A40(void) { + func_8011992C(); +} + +void func_80119A60(void) { + func_8011992C(); +} + +void func_80119A80(void) { + func_8011992C(); +} + +void func_80119AA0(void) { + func_80115070(); +} + +void func_80119AC0(void) { + func_80115070(); +} + +void func_80119AE0(void) { + func_80115070(); +} + +void func_80119B00(void) { + func_80115070(); +} + +void func_80119B20(void) { + func_801153B8(); +} + +void func_80119B40(void) { + func_801153B8(); +} + +void func_80119B60(void) { + func_801153B8(); +} + +void func_80119B80(void) { + func_80115070(); +} + +void func_80119BA0(void) { + func_80115070(); +} + +void func_80119BC0(void) { + func_80115070(); +} + +void func_80119BE0(void) { + func_80115070(); +} + +void func_80119C00(void) { + func_80115070(); +} + +void func_80119C20(void) { + func_80115070(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119C40.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119C6C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119C98.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119CC4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119CF0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119D1C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119D48.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119D74.s") + +void func_80119DA0(void) { + func_8011544C(); +} + +void func_80119DC0(void) { + func_8011544C(); +} + +void func_80119DE0(void) { + func_8011544C(); +} + +void func_80119E00(void) { + func_8011544C(); +} + +void func_80119E20(void) { + func_8011544C(); +} + +void func_80119E40(void) { + func_8011544C(); +} + +void func_80119E60(void) { + func_8011544C(); +} + +void func_80119E80(void) { + func_8011544C(); +} + +void func_80119EA0(void) { + func_8011544C(); +} + +void func_80119EC0(void) { + func_8011544C(); +} + +void func_80119EE0(void) { + func_8011544C(); +} + +void func_80119F00(void) { + func_8011544C(); +} + +void func_80119F20(void) { + func_8011544C(); +} + +void func_80119F40(void) { + func_8011544C(); +} + +void func_80119F60(void) { + func_8011544C(); +} + +void func_80119F80(void) { + func_8011544C(); +} + +void func_80119FA0(void) { + func_8011544C(); +} + +void func_80119FC0(void) { + func_8011544C(); +} + +void func_80119FE0(void) { + func_8011544C(); +} + +void func_8011A000(void) { + func_8011544C(); +} + +void func_8011A020(void) { + func_8011511C(); +} + +void func_8011A040(void) { + func_8011511C(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A060.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A0FC.s") + +void func_8011A178(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A198.s") + +void func_8011A214(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A234.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A254.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A274.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A294.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A2F4.s") + +void func_8011A3B8(void) { + func_801153B8(); +} + +void func_8011A3D8(void) { + func_801153B8(); +} + +void func_8011A3F8(void) { + func_801153B8(); +} + +void func_8011A418(void) { + func_801153B8(); +} + +void func_8011A438(void) { + func_801153B8(); +} + +void func_8011A458(void) { + func_801153B8(); +} + +void func_8011A478(void) { + func_801153B8(); +} + +void func_8011A498(void) { + func_80115618(); + func_80008DA8(0); +} + +void func_8011A4C0(void) { + func_80115618(); + func_80008DA8(0); +} + +void func_8011A4E8(void) { + func_80115618(); + func_80008DA8(0); +} + +void func_8011A510(void) { + func_80115618(); + func_80008DA8(0); +} + +void func_8011A538(void) { + func_80115618(); + func_80008DA8(0); +} + +void func_8011A560(void) { + func_80115618(); + func_80008DA8(0); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A588.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A638.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A678.s") + +void func_8011A770(s32 arg0) { + func_80115578(); + func_80118760(arg0); + func_801187A4(); + func_80008DA8(0); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A7A8.s") + +void func_8011A86C(void) { + func_801153B8(); +} + +void func_8011A88C(void) { + func_801153B8(); +} + +void func_8011A8AC(void) { + func_801153B8(); +} + +void func_8011A8CC(void) { + func_801153B8(); +} + +void func_8011A8EC(void) { + func_801153B8(); +} + +void func_8011A90C(void) { + func_801153B8(); +} + +void func_8011A92C(void) { + func_801153B8(); +} + +void func_8011A94C(void) { + func_80115070(); +} + +void func_8011A96C(void) { + func_80115070(); +} + +void func_8011A98C(void) { + func_80115070(); +} + +void func_8011A9AC(void) { + func_80115070(); +} + +void func_8011A9CC(void) { + func_80115070(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A9EC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AA7C.s") + +void func_8011AB7C(void) { + func_80115070(); +} + +void func_8011AB9C(void) { + func_80115070(); +} + +void func_8011ABBC(void) { + func_80115070(); +} + +void func_8011ABDC(void) { + func_80115070(); +} + +void func_8011ABFC(void) { + func_80115070(); +} + +void func_8011AC1C(void) { + func_80115070(); +} + +void func_8011AC3C(void) { + func_80118C88(); +} + +void func_8011AC5C(void) { + func_80118CA8(); +} + +void func_8011AC7C(void) { + func_801153B8(); +} + +void func_8011AC9C(void) { + func_801153B8(); +} + +void func_8011ACBC(void) { + func_801153B8(); +} + +void func_8011ACDC(void) { + func_801153B8(); +} + +void func_8011ACFC(void) { + func_801153B8(); +} + +void func_8011AD1C(void) { + func_801153B8(); +} + +void func_8011AD3C(void) { + func_801153B8(); +} + +void func_8011AD5C(void) { + func_801153B8(); +} + +void func_8011AD7C(void) { + func_801153B8(); +} + +void func_8011AD9C(void) { + func_801153B8(); +} + +void func_8011ADBC(void) { + func_801153B8(); +} + +void func_8011ADDC(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011ADFC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AE6C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AEF0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AF50.s") + +void func_8011AFB0(void) { + func_801153B8(); +} + +void func_8011AFD0(void) { + func_801153B8(); +} + +void func_8011AFF0(void) { + func_801153B8(); +} + +void func_8011B010(void) { + func_801153B8(); +} + +void func_8011B030(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B050.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B0A4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B188.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B22C.s") + +void func_8011B328(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B348.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B3B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B3F4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B464.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B528.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B554.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B580.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B5AC.s") + +void func_8011B5D8(void) { + func_801153B8(); +} + +void func_8011B5F8(void) { + func_801153B8(); +} + +void func_8011B618(void) { + func_801153B8(); +} + +void func_8011B638(void) { + func_801153B8(); +} + +void func_8011B658(void) { + func_801153B8(); +} + +void func_8011B678(void) { + func_801153B8(); +} + +void func_8011B698(void) { + func_801153B8(); +} + +void func_8011B6B8(void) { + func_801153B8(); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B6D8.s") + +void func_8011B794(s32 arg0) { + func_80115578(); + func_80118760(arg0); + func_801187A4(); + func_80008DA8(0); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B7CC.s") + +void func_8011B838(void) { + func_801153B8(); +} + +void func_8011B858(void) { + func_80118C88(); +} + +extern f32 D_800D6B14; +extern s32 D_800D6E14; +void func_800AECC0(f32); +void func_800AED20(f32); + +void func_8011B878(s32 arg0) { + func_80115578(); + func_80118760(arg0); + func_800AECC0(0.0f); + func_800AED20(0.0f); + while (D_800D6E14 == 0) { + finish_current_thread(1); + } + func_800AECC0(D_800D6B10); + func_800AED20(D_800D6B10); + finish_current_thread((s32) (30.0f * D_800D6B14)); + func_800AECC0(0.0f); + func_800AED20(0.0f); + func_80008DA8(NULL); +} + +void func_8011B944(struct GObj *arg0) { + func_8011B878(arg0); +} + +void func_8011B964(void) { + func_80118C88(); +} + +void func_8011B984(void) { + func_80115070(); +} + +void func_8011B9A4(struct GObj *arg0) { + func_8011B878(arg0); +} + +void func_8011B9C4(void) { + func_80118C88(); +} + +void func_8011B9E4(struct GObj *arg0) { + func_8011B878(arg0); +} diff --git a/src.old/ovl2/ovl2_8.c b/src.old/ovl2/ovl2_8.c new file mode 100644 index 000000000..e75e6dbce --- /dev/null +++ b/src.old/ovl2/ovl2_8.c @@ -0,0 +1,818 @@ +// plyeff.cc - player effects? + +#include +#include +#include "types.h" +#include "ovl2_8.h" +#include "ovl2_6.h" +#include "sounds.h" +#include "D_8004A7C4.h" +#include "unk_structs/D_800DE350.h" +#include "ovl1/ovl1_6.h" +extern Controller_800D6FE8 gKirbyController; + + + +void *func_8011BA10(struct CollisionTriangle *tri, u32 arg1) { + u32 i; + struct DynGeo_List *destructGroups; + struct vCollisionHeader *vColHeader; + u16 *destrucIndex; + + if (arg1 != 20) { + vColHeader = D_8012D948[arg1].unk4; + } else { + vColHeader = D_8012940C.unk4; + } + + destructGroups = &vColHeader->header.Destructable_Groups[tri->collisionIndex]; + + destrucIndex = &vColHeader->header.Destructable_Indices[destructGroups->Index_To_Dynamic_Geo_Group]; + + for (i = 0; i < destructGroups->Num_Dynamic_Geo_Group_Members; i++) { + vColHeader->header.Triangles[*destrucIndex].normalType &= ~3; + destrucIndex++; + } +} + +struct Struct800DFBD0 { + + u8 filler[0x54]; + s8 unk54; +}; + +extern u32 D_801290D0; + + +struct LayoutNode *func_8011BABC(struct CollisionTriangle *tri, u32 arg1) { + u32 i; + struct DynGeo_List *destructGroups; + struct vCollisionHeader *vColHeader; + u16 *destrucIndex; + u32 phi_a0; + + if (arg1 != 20) { + vColHeader = D_8012D948[arg1].unk4; + phi_a0 = D_8012D948[arg1].unk1; + } else { + vColHeader = D_8012940C.unk4; + phi_a0 = D_801290D0; + } + + destructGroups = &vColHeader->header.Destructable_Groups[tri->collisionIndex]; + + destrucIndex = &vColHeader->header.Destructable_Indices[destructGroups->Index_To_Dynamic_Geo_Group]; + + for (i = 0; i < destructGroups->Num_Dynamic_Geo_Group_Members; i++) { + vColHeader->header.Triangles[*destrucIndex].normalType &= ~3; + destrucIndex++; + } + + return D_800DFBD0[phi_a0][destructGroups->Unk_Index]; +} + +extern func_800A4794(Vec3f, struct LayoutNode *, struct vCollisionHeader *, struct DynGeo_List *); +extern func_800FD754(s32 *, f32, f32, f32); +extern func_800A4DB8(Vec3f, struct LayoutNode *); +extern func_800A802C(s32 *, s32, s32, Vec3f, Vec3f); + + +struct LayoutNode *func_8011BB98(struct CollisionTriangle *tri, u32 arg1) { + u32 i; + struct DynGeo_List *destructGroups; + struct LayoutNode *temp_s0; + struct vCollisionHeader *vColHeader; + u16 *destrucIndex; + u32 phi_t1; + Vec3f sp44; + Vec3f sp38; + Vec3f sp2C; + + if (arg1 != 20) { + vColHeader = D_8012D948[arg1].unk4; + phi_t1 = D_8012D948[arg1].unk1; + } else { + vColHeader = D_8012940C.unk4; + phi_t1 = D_801290D0; + } + + destructGroups = &vColHeader->header.Destructable_Groups[tri->collisionIndex]; + + destrucIndex = &vColHeader->header.Destructable_Indices[destructGroups->Index_To_Dynamic_Geo_Group]; + + for (i = 0; i < destructGroups->Num_Dynamic_Geo_Group_Members; i++) { + vColHeader->header.Triangles[*destrucIndex].normalType &= ~3; + destrucIndex++; + } + + temp_s0 = D_800DFBD0[phi_t1][destructGroups->Unk_Index]; + temp_s0->unk54 = 2; + + if (tri->collisionParameter == 0) { + func_800A4794(sp44, temp_s0, vColHeader, destructGroups); + func_800FD754(NULL, sp44[0], sp44[1], sp44[2]); + } else { + func_800A4794(sp38, temp_s0, vColHeader, destructGroups); + func_800A4DB8(sp2C, temp_s0); + func_800A802C(NULL, 3, 54, sp38, sp2C); + } + return temp_s0; +} + +void func_8011BD08(struct CollisionTriangle *tri, u32 arg1) { + func_8011BB98(tri, arg1); + play_sound(SOUND_BGBRAKE1); +} + +// start is the same as the above functions +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011BD30.s") + +extern u8 D_80126E20[]; +u32 func_8011BED0(u16 arg0, u16 arg1, u16 arg2) { + if ((arg0) == 9) { + if (arg1 == 0) { + return 1; + } + if (arg1 == arg2 || ((arg1 < 8) && (D_80126E20[arg1] & D_80126E20[arg2]))) { + return 1; + } + return 0; + } + return 1; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011BF4C.s") + +void func_8011C2A0(void *arg0) { + play_sound(11); + func_8011BA10(*(u32 *)((u32)arg0+0x84), 20); // todo: struct +} + +void vec3_cross_product(Vector *v1, Vector *v2, Vector *dst) { + dst->x = (v1->y * v2->z) - (v1->z * v2->y); + dst->y = (v1->z * v2->x) - (v1->x * v2->z); + dst->z = (v1->x * v2->y) - (v1->y * v2->x); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C344.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C4E8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C720.s") + +extern s32 D_8011D0FC; // probably part of a struct + +void func_8011C838(void) { + struct UnkStruct800DE350 *temp = D_800DE350[request_track_general(18, 0, 1)]; + + temp->unk48 = &D_8011D0FC; +} + +struct UnkStruct800D6F18 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; +}; + +extern s32 D_800D6F10; +extern struct UnkStruct800D6F18 D_800D6F18[2]; +//regalloc +#ifdef NON_MATCHING +void func_8011C87C(void) { + u32 i; + + gKirbyState.unk4 = 0; + gKirbyState.isHoldingEntity = 0; + gKirbyState.inhaledEntityData = 0; + gKirbyState.secondInhale = 0; + gKirbyState.firstInhale = 0; + gKirbyState.currentInhale = 0; + + for (i = 0; i < 2; i++) { + D_800D6F18[i].unk4 = 0; + D_800D6F18[i].unk8 = 0; + D_800D6F18[i].unkC = 0; + D_800D6F18[i].unk0 = 0; + } + + D_800D6F10 = 0; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C87C.s") +#endif + +void func_8011C8D0(void) { + func_80105180(&gPositionState); + D_800D6F18[1].unkC = 0; +} + + +extern f32 D_80128E28; +extern s32 D_800BE50C; +extern f32 D_800BE510; +extern f32 D_80128E24; +extern s32 D_800B531C; +extern s32 D_8011CFF4; +extern s32 D_8012EADC; +extern s32 D_8012EAE0; +extern f32 gKirbyHp; +extern s32 D_800D6E54; + +void func_800F88C8(s32, s32, f32); +// some sort of init_kirby function? +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C8F8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011CCB8.s") + +void func_800AECC0(f32); +void func_800AED20(f32); +extern s32 D_800E8AE0[]; + + +void func_8011CF58(void) { + if (D_800E8AE0[D_8004A7C4->objId] & 6) { + func_800AECC0(1.0f); + func_800AED20(1.0f); + } else { + func_800AECC0(2.0f); + func_800AED20(2.0f); + } +} + +void func_8011CFE0(void) { + gKirbyState.unk4 = 0; + gKirbyState.numberInhaled = 0; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011CFF4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D0FC.s") + +struct UnkStruct801290D8 { + u8 filler[0x14]; + u16 unk14; +}; + +extern u8 D_8012E7D7; +extern s32 D_800D6B54, D_800D6B58, D_800BE4F8, D_800D708C; +extern struct UnkStruct801290D8 *D_801290D8; +s32 change_kirby_hp(f32); + +void func_8011D40C(void) { + if (D_800D6B54 == 0) { + D_8012E7D7 = 1; + change_kirby_hp(-6.0f); + D_800D6B54 = 1; + D_800D6B58 = 0x96; + D_800BE4F8 = 6; + func_800FA414(6); + D_800D708C = D_801290D8->unk14; + func_80020998_ovl2(0, 0x7800); + play_music(0, 5); + } +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D4A4.s") + +extern s32 D_801926E8; +extern s32 D_80190358; + +void func_8011D614(void) { + func_8011CF58(); + func_800A9760(0x20007); + + D_800E0490[D_8004A7C4->objId] = &D_801926E8; + + gKirbyState.unk15C = &D_80190358; + gKirbyState.unk154 = 2; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D67C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D858.s") + +extern f32 func_800F951C(s32 arg1,f32 arg2,s32 arg3,f32 arg4); +f32 func_8011D9E0(s32 arg1, f32 arg2, s32 arg3, f32 arg4) { + f32 temp_f0; + + temp_f0 = func_800F951C(arg1, arg2, arg3, arg4); + if (temp_f0 == D_80128EF8) { + return D_80128EFC; + } + return temp_f0; +} + + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011DA34.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011DAF8.s") + +void func_8011DC04(u32 arg0) { + func_800A77E8(arg0, &D_8012E818, &D_8012E81C); +} + +void func_8011DC30(u32 arg0) { + func_800A77E8(arg0, &D_8012E820, &D_8012E824); +} + +void func_8011DC5C(void) { + if (gKirbyState.unk58 != 0) { + func_800A7870(&gKirbyState.unk58, &gKirbyState.unk5C); + } + gKirbyState.unk58 = 0; + gKirbyState.unk5C = 0; + if (gKirbyState.unk60 != 0) { + func_800A7870(&gKirbyState.unk60, &gKirbyState.unk64); + } + gKirbyState.unk60 = 0; + gKirbyState.unk64 = 0; +} + +void func_8011DCD0(void) { + if (gKirbyState.unk60 != 0) { + func_800A7870(&D_8012E820, &D_8012E824); + } + gKirbyState.unk60 = 0; + gKirbyState.unk64 = (u16)0; +} + +void func_8011DD18(s32 arg0) { + if (gGameState != 0x21) { + if (arg0 != gKirbyState.ability) { + gKirbyState.ability = arg0; + func_8012310C(arg0); + } + } +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011DD5C.s") + +void func_8011E0E8(void) { + if (gKirbyState.unk4C != 0) { + if (gKirbyState.unk48 == 0) { + func_800A22D4(gKirbyState.unk4C); + } else { + func_800A1F30(gKirbyState.unk4C); + } + gKirbyState.unk4C = 0; + gKirbyState.unk48 = 0; + } + if (gKirbyState.unk50 != 0) { + if (gKirbyState.unk48 == 0) { + func_800A22D4(gKirbyState.unk50); + } else { + func_800A1F30(gKirbyState.unk50); + } + gKirbyState.unk50 = 0; + gKirbyState.unk48 = 0; + } +} + +void func_8011E190(void) { + u32 temp_a0; + u32 temp_v0; + + if (gGameState != 0x21) { + temp_a0 = gKirbyState.currentInhale; + temp_v0 = gKirbyState.currentInhale; + if (temp_v0 != 0) { + gKirbyState.ability = (s32) gKirbyState.currentInhale; + func_8012310C(temp_a0); + } + gKirbyState.secondInhale = 0; + gKirbyState.firstInhale = 0; + gKirbyState.currentInhale = 0; + } +} + + +extern s32 D_80126EF8[][0x90 / 4]; +s32 func_8011E1E8(s32 arg0, s32 arg1) { + if (arg1 >= 8) { + return arg1; + } + if (arg0 >= 8) { + return arg0; + } + return D_80126EF8[arg0][arg1]; +} + +void func_8011E234(void) { + D_8012E922 = 0x14; +} + +u8 func_8011E244(void) { + if (D_800E8920[0] == 1) { + return D_8012E9B8; + } else { + return 0x14; + } +} + +u8 func_8011E270(void) { + if (D_8012E8C2 == 0x12 || D_8012E8C2 == 0x13) { + return 1; + } + return 0; +} + +extern f32 D_80128F18; +f32 func_8011E2A0(void) { + f32 temp_f2; + + if ((gKirbyState.isTurning & 0x4000) == 0) { + temp_f2 = (f32)gKirbyState.unk114->unk10 * D_80128F18; + if (temp_f2 != 0.0f) { + return temp_f2 * D_80128F18; + } + } + return 0.0f; +} + +void func_8011E31C(Vector *arg0) { + arg0->x = gPositionState.kirbyHeadPos[0]; + arg0->y = gPositionState.kirbyHeight[1]; + arg0->z = gPositionState.kirbyHeadPos[2]; +} + +s32 func_8011E340(void) { + if (gKirbyState.floorCollisionNext != 0) { + return gKirbyState.unk114; + } else { + return 0; + } +} + +s32 func_8011E368(void) { + return D_800D6F10; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011E374.s") + +void func_8011E438(void) { + gKirbyState.unk4 = 0; + gKirbyState.unk17 = 1; + gKirbyState.abilityInUse = 0; + set_kirby_action_2(0x48, 0x1C); + D_800E6850[0] = 0.0f; + D_800E64D0[0] = D_800E6690[0] = D_800E6850[0]; + D_800E3210[0] = 0.0f; + D_800E3750[0] = D_80128F20; + D_800E3C90[0] = 16.0f; + gEntitiesScaleZArray[0] = D_80128F24; + gEntitiesScaleXArray[0] = gEntitiesScaleYArray[0] = gEntitiesScaleZArray[0]; +} + +void func_8011E4E4(u32 arg0) { + gKirbyState.unk17 = 1; + gKirbyState.unk18 = 1; + gKirbyState.abilityState = arg0; + gKirbyState.unk68 = 1; +} + +void func_8011E504(void) { + gKirbyState.unk17 = 0; + gKirbyState.unk18 = 0; + gKirbyState.abilityState = 0; + gKirbyState.unk24 = 0; + gKirbyState.unk68 = 0; +} + +void func_8011E524(void) { + if (gKirbyState.unk16C == 0) { + gKirbyState.unk16C = 1; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011E548.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011E978.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011EBD4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011ED68.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011F690.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011FEF8.s") + + +extern f32 D_80129068; +void func_80120AF8(Vector *arg0); +void func_80120A28(void) { + Vector sp24; + if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { + D_800E6690[D_8004A7C4->objId] = D_800E6A10[D_8004A7C4->objId] * D_80129068; + D_800E6850[D_8004A7C4->objId] = 0.0f; + } else { + func_80120AF8(&sp24); + D_800E6690[D_8004A7C4->objId] = D_800E6A10[D_8004A7C4->objId] * sp24.z; + D_800E6850[D_8004A7C4->objId] = 0.0f; + } +} + +extern f32 D_80129070, D_8012906C; +struct UnkStruct80128434 { + Vector unk0; + u32 unkC; + Vector unk10; +}; + +extern struct UnkStruct80128434 D_80128434[]; +void func_80120AF8(Vector *arg0) { + if (D_800E8920[D_8004A7C4->objId] == 0) { + if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { + arg0->z = D_8012906C; + } else { + arg0->z = D_80129070; + } + arg0->y = 1.0f; + arg0->x = 1.0f; + // return; + } else { + // * 0x1C + arg0->x = D_80128434[gKirbyState.unk10A].unk0.x; + arg0->y = D_80128434[gKirbyState.unk10A].unk0.y; + arg0->z = D_80128434[gKirbyState.unk10A].unk0.z; + } +} + + +// some prototype meme (and the early return doesnt help) +#ifdef NON_MATCHING +extern u32 D_80128348[]; +u32 func_80120BCC(void) { + u32 phi_v1; + + phi_v1 = 0; + if (gKirbyState.ability != 0) { + phi_v1 = 0; + if (gKirbyState.abilityInUse == 0) { + gKirbyState.hpAfterDamage = gKirbyHp; + if (gKirbyState.abilityDropTimer == 0) { + gKirbyState.abilityDropTimer = D_80128348[gKirbyState.hpAfterDamage] + 0x2D; + return; + } + gKirbyState.droppedAbility = gKirbyState.ability; + gKirbyState.abilityDropTimer = 0; + gKirbyState.isTakingDamage = 1; + gKirbyState.ability = 0; + phi_v1 = 1; + } + } + return phi_v1; +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80120BCC.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80120CCC.s") + +// take damage? +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80120E74.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801210B4.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801210FC.s") + + +u32 func_80121194(void) { + if (D_8012E7D7 == 0 + && ((D_800E6A10[D_8004A7C4->objId] == 1.0f && gKirbyController.buttonHeld & L_JPAD) + || (D_800E6A10[D_8004A7C4->objId] == -1.0f && gKirbyController.buttonHeld & R_JPAD)) + ) { + return 1; + } + return 0; +} + +u8 kirby_in_inactionable_state(void) { + if ((gKirbyState.unk17 != 0) && (gKirbyState.abilityState != 0)) { + return 3; + } + if (gKirbyState.abilityState != 0) { + return 2; + } + if (gKirbyState.unk17 != 0) { + return 1; + } + return 0; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121284.s") + +extern const f32 D_80129074; +extern s32 D_800E85A0[]; +void func_801212A4(void) { + Vector currPos; + Vector nextPos; + + if (D_800D6B54 == 0) { + currPos.x = gEntitiesPosXArray[D_8004A7C4->objId]; + currPos.y = gEntitiesPosYArray[D_8004A7C4->objId]; + currPos.z = gEntitiesPosZArray[D_8004A7C4->objId]; + nextPos.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + nextPos.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; + nextPos.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + if (func_8010474C(&currPos, &nextPos) != 0) { + if (D_800D6B54 == 0) { + func_8011D40C(); + if (D_800E3210[D_8004A7C4->objId] > 0.0f) { + D_800E3750[D_8004A7C4->objId] = 0.0f; + D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; + D_800E3C90[D_8004A7C4->objId] = D_80129074; + } + } + } else { + if ((gKirbyState.ceilingCollisionNext != 0) && (gKirbyState.floorCollisionNext != 0) && (gKirbyState.action != 0x1D) + &&(gKirbyState.ceilingType != 4) && (gKirbyState.ceilingType != 5) + ) { + change_kirby_hp(-6.0f); + set_kirby_action_1(0x16, 0x17); + } + else if ((gKirbyState.rightCollisionNext != 0) && (gKirbyState.leftCollisionNext != 0) && (gKirbyState.unk104 != 2) && (gKirbyState.unk106 != 2)) { + change_kirby_hp(-6.0f); + set_kirby_action_1(0x16, 0x17); + } + else if ((gKirbyState.unk140 != 0) + && (D_800E7B20[D_8004A7C4->objId] != 0) && (D_800E7CE0[D_8004A7C4->objId] == 0) + && (gKirbyState.action != 0x1D) && (gKirbyState.unk68 == 0) && (gKirbyState.action != 0x16) + ) { + if (change_kirby_hp(-1.0f) == 0) { + set_kirby_action_1(0x16, 0x17); + } else { + func_80120BCC(); + if (gKirbyState.unk140 & 0x40000) { + D_800E85A0[D_8004A7C4->objId] = 1; + } else if (gKirbyState.unk140 & 0x80000) { + D_800E85A0[D_8004A7C4->objId] = -1; + } + gKirbyState.unk24 = 1; + set_kirby_action_1(0x14, 0x16); + } + } + } + } +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801215DC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121658.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801217B8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121828.s") + +void func_801219C8(void) { + if (func_801215DC() == 2) { + gKirbyState.isTurning |= 1; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121A04.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121BCC.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121C90.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121D3C.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121F14.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121F50.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8012209C.s") + +u32 func_80122460(void) { + if ((gKirbyState.ceilingCollisionNext != 0) && (D_800E3210[D_8004A7C4->objId] > 0.0f)) { + if ((gKirbyState.ceilingType == 4) || (gKirbyState.ceilingType == 5)) { + if (func_8010D8A4(&gPositionState) != 0) { + return 1; + } + } + } else if ((gKirbyState.floorCollisionNext != 0) + && (D_800E3210[D_8004A7C4->objId] <= 0.0f) + && (gKirbyState.floorType == 4) + && (func_8010D8A4(&gPositionState) != 0)) { + + return 1; + } + return 0; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122558.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801226FC.s") + +u8 func_801229D0(void) { + if (gPositionState.byteArray[2] != 0x14) { + D_8012E922 = (s16) gPositionState.byteArray[2]; + } + else if (gPositionState.byteArray[3] != 0x14) { + D_8012E922 = (s16) gPositionState.byteArray[3]; + } +} + +extern const char *D_80128DC0; +extern s32 D_80128420[]; +extern s16 D_8012E894; +void func_80122A10(s32 arg0) { + if ((D_8012E894 > 0) && (D_8012E894 < 5)) { + func_800A8100(0, 1, D_80128420[D_8012E894], arg0); + return; + } + // "plydmg ptcl kind over![plylib.cc] max: %x, kind: %x\n" + print_error_stub(&D_80128DC0, 5, D_8012E894); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122A80.s") + + + + +extern s16 D_8012844C[][2]; + +extern void func_800A7F74(u32 a, u32 b, u16 c, f32 d, f32 e, f32 f); + +#ifdef NON_MATCHING +void func_80122B40(void) { + u16 phi_a2; + + if (D_800E8AE0[D_8004A7C4->objId] & 7) { + if (D_800E8AE0[D_8004A7C4->objId] & 6) + phi_a2 = 19; + else + phi_a2 = 14; + } else { + // TODO: Fix some regalloc over here! + if (gKirbyState.vel[2] < -12.5f) + phi_a2 = D_8012844C[gKirbyState.unk10A * 7][1]; + else + phi_a2 = D_8012844C[gKirbyState.unk10A * 7][0]; + } + func_800A7F74(5, 1, phi_a2, gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); +} +#else +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122B40.s") +#endif + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122C30.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122CA0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122CE8.s") + +void func_80122F08(u32 arg0) { + if (!(arg0 != 0x20007 && arg0 != 0x20008 && arg0 != 0x20009)) { + func_800A9760(arg0); + } else { + func_800A8EC0(arg0); + } + func_800AFA88(D_8004A7C4); +} + +// set_kirby_action? Two of them? +void set_kirby_action_1(s32 actionChange, s32 action) { + if (actionChange != 0xFFFF) { + gKirbyState.actionChange = actionChange; + gKirbyState.previousAction = gKirbyState.action; + gKirbyState.action = action; + } +} + +void set_kirby_action_2(s32 actionChange, u32 action) { + gKirbyState.actionChange = actionChange; + gKirbyState.previousAction = gKirbyState.action; + gKirbyState.action = action; +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122FB0.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123004.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8012307C.s") + +void func_8012307C(s32 arg0, s32 arg1, f32 arg2, s32 arg3); +void func_801230E8(s32 arg0, s32 arg1, s32 arg2) { + func_8012307C(arg0, arg1, 0.0f, arg2); +} + +void func_8012310C(s32 currentInhale) { + if (currentInhale != 0) { + play_sound(0x104); + } + func_800BC298(currentInhale); +} + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123144.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123170.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801231D8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123240.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801232A8.s") + +GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123354.s") diff --git a/src/ovl2/ovl2_8.h b/src.old/ovl2/ovl2_8.h similarity index 98% rename from src/ovl2/ovl2_8.h rename to src.old/ovl2/ovl2_8.h index 89d46d327..f182bc409 100644 --- a/src/ovl2/ovl2_8.h +++ b/src.old/ovl2/ovl2_8.h @@ -130,6 +130,7 @@ extern u8 D_8012E9B8; void func_8012310C(s32 currentInhale); void set_kirby_action_1(s32 actionChange, s32 action); void set_kirby_action_2(s32 actionChange, u32 action); +void func_801230E8(s32 arg0, s32 arg1, s32 arg2); extern struct { s16 unk0; @@ -142,4 +143,5 @@ extern struct { u32 unk10; } D_80198830; + #endif diff --git a/src/ovl20.c b/src.old/ovl20.c similarity index 100% rename from src/ovl20.c rename to src.old/ovl20.c diff --git a/src/ovl4/ovl4.c b/src.old/ovl4/ovl4.c similarity index 94% rename from src/ovl4/ovl4.c rename to src.old/ovl4/ovl4.c index 40d39e8e2..7de3739de 100644 --- a/src/ovl4/ovl4.c +++ b/src.old/ovl4/ovl4.c @@ -89,7 +89,7 @@ void func_80151274_ovl4(void) { tmp = random_soft_u16(); temp_f0 = 0.2f; gEntitiesAngleYArray[D_8004A7C4->objId] = - (D_80159FF4_ovl4[tmp & 7] * M_PI_F) / 180.0f; + (D_80159FF4_ovl4[tmp & 7] * M_PIF) / 180.0f; gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; @@ -279,25 +279,4 @@ void func_80151CC8_ovl4(Gfx **arg0) { extern u8 D_8018EE60[]; // ovl5 bss end -void func_800A41B0(f32); - -struct DoubleBuf { - u16 _0000[8064]; - u16 _3F00[8064]; -}; -extern struct DoubleBuf *D_803D6900; -extern u16 *gFrameBuffers[3]; -// extern struct DoubleBuf *gFrameBuffer;; -extern u16 gFrameBuffer[320 * 240]; -extern s32 D_800D6B5C; -extern s32 D_800D6B74; - -#define UNK_TYPE u32 -extern UNK_TYPE D_8012EB00; -extern UNK_TYPE D_8015A048[]; -extern UNK_TYPE D_8015A064[]; -// extern UNK_TYPE D_8018EE60; -extern UNK_TYPE D_803FC100; - -// the LOOP GLOBAL_ASM("asm/non_matchings/ovl4/ovl4/func_80151CEC_ovl4.s") diff --git a/src/ovl4/ovl4_3.c b/src.old/ovl4/ovl4_3.c similarity index 100% rename from src/ovl4/ovl4_3.c rename to src.old/ovl4/ovl4_3.c diff --git a/src/ovl4/ovl4_bss.c b/src.old/ovl4/ovl4_bss.c similarity index 100% rename from src/ovl4/ovl4_bss.c rename to src.old/ovl4/ovl4_bss.c diff --git a/src/ovl5/ovl5.c b/src.old/ovl5/ovl5.c similarity index 100% rename from src/ovl5/ovl5.c rename to src.old/ovl5/ovl5.c diff --git a/src.old/ovl6/ovl6.c b/src.old/ovl6/ovl6.c new file mode 100644 index 000000000..5d934d975 --- /dev/null +++ b/src.old/ovl6/ovl6.c @@ -0,0 +1,266 @@ +#include +#include +#include "buffers.h" +#include "D_8004A7C4.h" +#include "ovl6.h" + +extern void func_800067B8(void); +extern void func_8000AD88(void); +extern u32 D_8015A694; + +extern void func_8000E324(void); + +extern struct UnkStruct8015A560 *D_8015A560; +extern u32 D_8015A690; + +void func_80151100(void) { + if (D_8015A694 != 0) { + func_800067B8(); + } + func_8000AD88(); +} + +extern u16 *gCurrFrameBuffer; +extern u16 *gFrameBuffers[3]; +extern u16 *D_80048C5C; +extern u32 D_80048C6C; +GLOBAL_ASM("asm/non_matchings/ovl6/func_80151138.s") + +extern Gfx *gDisplayListHeads[4]; +extern void func_8009E8F4(s32 hidden, u32 a, Gfx **b); + +void func_80151204(s32 arg0) { + gDPPipeSync(gDisplayListHeads[1]++); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); + func_8009E8F4(arg0, 2, &gDisplayListHeads[1]); + gDPPipeSync(gDisplayListHeads[1]++); + gDPSetColorDither(gDisplayListHeads[1]++, G_CD_MAGICSQ); + gDPSetAlphaDither(gDisplayListHeads[1]++, G_AD_DISABLE); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801512F0.s") + +void func_801513C8(void) { + func_800A7A70(0, 0x40001, 0x40002); +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801513F8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801514A0.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015150C.s") + +extern u32 D_8015A670[]; // Lights? +extern u32 *D_8015A56C; // lights? +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015166C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015170C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015198C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80151CD0.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80151DDC.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80151E10.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80151E60.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152138.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801524C8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152B28.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152B9C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152C10.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152C84.s") + +void func_80152CF8(s32 arg0) { + +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152D00.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152DB8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80152EA8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153040.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153064.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015314C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801531FC.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153228.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801532CC.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801532F4.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801533C0.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153424.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015347C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801534A8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801534D4.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153530.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015358C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801535E8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153644.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153670.s") + +void func_801536A0(s32 arg0) { + +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801536A8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801536E0.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015370C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015372C.s") + +// regalloc +#ifdef NON_MATCHING +void func_8015374C(struct GObj *this) { + struct UnkStruct8004A7C4_3C_80 *temp_v0; + + temp_v0 = &this->unk3C->unk80->unk8; + if (this->unk3C->unk80->unk5B != 0) { + gDPPipeSync(gDisplayListHeads[1]++); + gDPSetCombineMode(gDisplayListHeads[1]++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + gDPSetPrimColor(gDisplayListHeads[1]++, 0, 0, temp_v0->unk50, temp_v0->unk51, temp_v0->unk52, temp_v0->unk53); + gDPFillRectangle(gDisplayListHeads[1]++, 48, 38, 272, 202); + gDPPipeSync(gDisplayListHeads[1]++); + gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); + } +} +#else +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015374C.s") +#endif + + +void func_80153868(void) { + struct GObj *sp1C; + + if ((D_8015A690 == 0) && (D_800DE44C == 0)) { + sp1C = D_8004A7C4; + request_track_general(0x11, 0x3F, 0x40); + D_8004A7C4 = D_800DE44C; + func_80008DA8(gEntityGObjProcessArray[0x3F]); + func_80008DA8(gEntityGObjProcessArray2[0x3F]); + func_80008DA8(gEntityGObjProcessArray5[0x3F]); + func_80008A18(D_8004A7C4, &func_8000E324, 1, 3); + func_800A9864(D_8015A560->listIndex, 0x1869F, 0xC); + D_8004A7C4 = sp1C; + } +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015392C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153A48.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153AA8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153AF8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153B34.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153B80.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153C28.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153CBC.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153D10.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153D6C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153DC8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153E1C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153F00.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80153F2C.s") + +void func_8015403C(void) { + func_80153F2C_ovl6(); +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_8015405C.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154088.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154100.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154158.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154180.s") + +void func_801541EC(void) { + func_8009C0E4(); + func_800A2024(); +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154214.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154258.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154284.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154464.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801544E8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154628.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154690.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801546D8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154748.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154810.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154858.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801548A4.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_801548F8.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154938.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154A40.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154B14.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154BA0.s") + +void func_80154C08(void) { + func_8000AAE0(); + func_80153064_ovl6(); + func_800AC610(); +} + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154C38.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154C64.s") + +GLOBAL_ASM("asm/non_matchings/ovl6/func_80154D60.s") diff --git a/src/ovl6/ovl6.h b/src.old/ovl6/ovl6.h similarity index 100% rename from src/ovl6/ovl6.h rename to src.old/ovl6/ovl6.h diff --git a/src/ovl7/ovl7_14.c b/src.old/ovl7/ovl7_14.c similarity index 100% rename from src/ovl7/ovl7_14.c rename to src.old/ovl7/ovl7_14.c diff --git a/src/ovl7/ovl7_16.c b/src.old/ovl7/ovl7_16.c similarity index 100% rename from src/ovl7/ovl7_16.c rename to src.old/ovl7/ovl7_16.c diff --git a/src/ovl7/ovl7_5.c b/src.old/ovl7/ovl7_5.c similarity index 100% rename from src/ovl7/ovl7_5.c rename to src.old/ovl7/ovl7_5.c diff --git a/src/ovl7/yakulib.c b/src.old/ovl7/yakulib.c similarity index 100% rename from src/ovl7/yakulib.c rename to src.old/ovl7/yakulib.c diff --git a/src/ovl7/yakulib.h b/src.old/ovl7/yakulib.h similarity index 100% rename from src/ovl7/yakulib.h rename to src.old/ovl7/yakulib.h diff --git a/src/ovl8/eneeff.c b/src.old/ovl8/eneeff.c similarity index 100% rename from src/ovl8/eneeff.c rename to src.old/ovl8/eneeff.c diff --git a/src/ovl8/ovl8.c b/src.old/ovl8/ovl8.c similarity index 100% rename from src/ovl8/ovl8.c rename to src.old/ovl8/ovl8.c diff --git a/src/ovl9/ovl9_10.c b/src.old/ovl9/ovl9_10.c similarity index 100% rename from src/ovl9/ovl9_10.c rename to src.old/ovl9/ovl9_10.c diff --git a/src/ovl9/ovl9_13.c b/src.old/ovl9/ovl9_13.c similarity index 100% rename from src/ovl9/ovl9_13.c rename to src.old/ovl9/ovl9_13.c diff --git a/src/ovl9/ovl9_16.c b/src.old/ovl9/ovl9_16.c similarity index 100% rename from src/ovl9/ovl9_16.c rename to src.old/ovl9/ovl9_16.c diff --git a/src/ovl9/ovl9_9.c b/src.old/ovl9/ovl9_9.c similarity index 100% rename from src/ovl9/ovl9_9.c rename to src.old/ovl9/ovl9_9.c diff --git a/src/rom_header.c b/src.old/rom_header.c similarity index 100% rename from src/rom_header.c rename to src.old/rom_header.c diff --git a/src/main/audio.c b/src/main/audio.c new file mode 100644 index 000000000..e8ee7a6d3 --- /dev/null +++ b/src/main/audio.c @@ -0,0 +1,735 @@ +#include "common.h" +#include +#include +#include "synthInternals.h" +#include "main.h" +#include "audio.h" +// mystery, seems to also be DMA +extern OSMesgQueue D_80095E30; +extern OSMesg D_80095E50[]; +extern s32 auDMACount; +extern OSPiHandle *gRomHandle; +extern OSMesgQueue auGameTickQueue; +extern OSMesgQueue auSPTaskMQ; +extern OSMesgQueue auDMA_MQ; +extern OSMesg auGameTickMessages[1]; +extern OSMesg auSPTaskMessages[1]; +extern OSMesg auDMAMessages[50]; + +static void _bnkfPatchBank(ALBank* bank, s32 offset, s32 table); +static void _bnkfPatchInst(ALInstrument* i, s32 offset, s32 table); +static void _bnkfPatchSound(ALSound* s, s32 offset, s32 table); +static void _bnkfPatchWaveTable(ALWaveTable* w, s32 offset, s32 table); + +void alHeapInit(ALHeap* hp, u8* base, s32 len) { + s32 extraAlign = (AL_CACHE_ALIGN + 1) - ((s32) base & AL_CACHE_ALIGN); + + if (extraAlign != AL_CACHE_ALIGN + 1) + hp->base = base + extraAlign; + else + hp->base = base; + + hp->len = len; + hp->cur = hp->base; + hp->count = 0; +} + +void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size) { + s32 bytes; + u8 *ptr; + + ptr = hp->cur; + bytes = ((num * size) + AL_CACHE_ALIGN) & ~AL_CACHE_ALIGN; + + if ((hp->base + hp->len) >= (hp->cur + bytes)) { + ptr = hp->cur; + hp->cur += bytes; + } else { + fatal_printf("Audio Heap Overflow\n"); + while (1); + } + return ptr; +} + +void alSeqFileNew(ALSeqFile* file, u8* base) { + s32 offset = (s32) base; + s32 i; + + /* + * patch the file so that offsets are pointers + */ + for (i = 0; i < file->seqCount; i++) { + file->seqArray[i].offset = (u8*) ((u8*) file->seqArray[i].offset + offset); + } +} + +void alBnkfNew(ALBankFile* file, u8* table) { + s32 offset = (s32) file; + s32 woffset = (s32) table; + + s32 i; + + /* + * patch the file so that offsets are pointers + */ + for (i = 0; i < file->bankCount; i++) { + file->bankArray[i] = (ALBank*) ((u8*) file->bankArray[i] + offset); + if (file->bankArray[i]) + _bnkfPatchBank(file->bankArray[i], offset, woffset); + } +} + +static void _bnkfPatchBank(ALBank* bank, s32 offset, s32 table) { + s32 i; + + if (bank->flags) + return; + + bank->flags = 1; + + if (bank->percussion) { + bank->percussion = (ALInstrument*) ((u8*) bank->percussion + offset); + _bnkfPatchInst(bank->percussion, offset, table); + } + + for (i = 0; i < bank->instCount; i++) { + bank->instArray[i] = (ALInstrument*) ((u8*) bank->instArray[i] + offset); + if (bank->instArray[i]) + _bnkfPatchInst(bank->instArray[i], offset, table); + } +} + +static void _bnkfPatchInst(ALInstrument* inst, s32 offset, s32 table) { + s32 i; + + if (inst->flags) + return; + + inst->flags = 1; + + for (i = 0; i < inst->soundCount; i++) { + inst->soundArray[i] = (ALSound*) ((u8*) inst->soundArray[i] + offset); + _bnkfPatchSound(inst->soundArray[i], offset, table); + } +} + +static void _bnkfPatchSound(ALSound* s, s32 offset, s32 table) { + if (s->flags) + return; + + s->flags = 1; + + s->envelope = (ALEnvelope*) ((u8*) s->envelope + offset); + s->keyMap = (ALKeyMap*) ((u8*) s->keyMap + offset); + + s->wavetable = (ALWaveTable*) ((u8*) s->wavetable + offset); + _bnkfPatchWaveTable(s->wavetable, offset, table); +} + +static void _bnkfPatchWaveTable(ALWaveTable* w, s32 offset, s32 table) { + if (w->flags) + return; + + w->flags = 1; + + w->base += table; + + if (w->type == AL_ADPCM_WAVE) { + w->waveInfo.adpcmWave.book = (ALADPCMBook*) ((u8*) w->waveInfo.adpcmWave.book + offset); + if (w->waveInfo.adpcmWave.loop) + w->waveInfo.adpcmWave.loop = (ALADPCMloop*) ((u8*) w->waveInfo.adpcmWave.loop + offset); + } else if (w->type == AL_RAW16_WAVE) { + if (w->waveInfo.rawWave.loop) + w->waveInfo.rawWave.loop = (ALRawLoop*) ((u8*) w->waveInfo.rawWave.loop + offset); + } +} + +void auRomRead(u32 romAddr, void* vramAddr, u32 size) { + OSIoMesg DmaIoMessage; + + osInvalDCache((void*) vramAddr, (s32) size); + + DmaIoMessage.hdr.pri = OS_MESG_PRI_NORMAL; + DmaIoMessage.hdr.retQueue = &D_80095E30; + DmaIoMessage.dramAddr = vramAddr; + DmaIoMessage.devAddr = romAddr; + DmaIoMessage.size = size; + + osEPiStartDma(gRomHandle, &DmaIoMessage, OS_READ); + osRecvMesg(&D_80095E30, NULL, OS_MESG_BLOCK); +} + +s32 auDMA(s32 addr, s32 len, void* state) { + void* freeBuffer; + AMDMAState* dState = state; + s32 delta = 0; + u32 bStartAddr; + u32 bEndAddr; + AMDMABuffer* dBuff = &dState->buffers[dState->currentBuffer]; + OSMesg dummyMesg; + + /* + * Is it in the last buffer + */ + + bStartAddr = (u32) dBuff->addr; + bEndAddr = (u32) bStartAddr + dBuff->len; + + if ((addr >= bStartAddr) && (addr + len <= bEndAddr)) { + freeBuffer = dBuff->ptr + addr - dBuff->addr; + } else { + if (++dState->currentBuffer >= dState->nBuffers) { + dState->currentBuffer = 0; + } + dBuff = &dState->buffers[dState->currentBuffer]; + freeBuffer = dBuff->ptr; + delta = addr & 0x1; + addr -= delta; + + dBuff->addr = addr; + dBuff->len = dBuff->size; + + auDMAIOMesgBuf[auDMACount].hdr.pri = OS_MESG_PRI_HIGH; + auDMAIOMesgBuf[auDMACount].hdr.retQueue = &auDMA_MQ; + auDMAIOMesgBuf[auDMACount].dramAddr = freeBuffer; + auDMAIOMesgBuf[auDMACount].devAddr = (u32) addr; + auDMAIOMesgBuf[auDMACount].size = dBuff->size; + + osEPiStartDma(gRomHandle, &auDMAIOMesgBuf[auDMACount++], OS_READ); + } + return (int) osVirtualToPhysical(freeBuffer) + delta; +} + +ALDMAproc auDMANew(AMDMAState** state) { + int i; + AMDMAState* dState; + + dState = (AMDMAState*) alHeapAlloc(&auHeap, 1, sizeof(AMDMAState)); + dState->currentBuffer = 0; + dState->nBuffers = NUM_DMA_BUFFERS; + for (i = 0; i < NUM_DMA_BUFFERS; i++) { + dState->buffers[i].ptr = alHeapAlloc(&auHeap, 1, MAX_BUFFER_LENGTH); + dState->buffers[i].addr = 0; + dState->buffers[i].len = 0; + dState->buffers[i].size = MAX_BUFFER_LENGTH; + } + *state = (AMDMAState*) dState; + return auDMA; +} + +f32 _depth2Cents(u8 depth) { + f32 x = 1.03099303; + f32 cents = 1.0; + + while (depth) { + if (depth & 1) + cents *= x; + x *= x; + depth >>= 1; + } + + return (cents); +} + +ALMicroTime initOsc(void** oscState, f32* initVal, u8 oscType, u8 oscRate, u8 oscDepth, u8 oscDelay) { + oscData* statePtr; + ALMicroTime deltaTime = 0; + + if (freeOscStateList) /* yes there are oscStates available */ + { + statePtr = freeOscStateList; + freeOscStateList = freeOscStateList->next; + statePtr->type = oscType; + *oscState = statePtr; + + /* + * Convert delay into usec's, In this example, multiply by + * 0x4000, but could easily use another conversion method. + */ + deltaTime = oscDelay * 0x4000; + + switch (oscType) /* set the initVal */ + { + case TREMELO_SIN: + statePtr->curCount = 0; + statePtr->maxCount = 259 - oscRate; /* gives values 4-259 */ + statePtr->data.tsin.halfdepth = oscDepth >> 1; + statePtr->data.tsin.baseVol = AL_VOL_FULL - statePtr->data.tsin.halfdepth; + *initVal = (f32) statePtr->data.tsin.baseVol; + break; + + case TREMELO_SQR: + statePtr->maxCount = 256 - oscRate; /* values from 1-256 */ + statePtr->curCount = statePtr->maxCount; + statePtr->stateFlags = OSC_HIGH; + statePtr->data.tsqr.loVal = AL_VOL_FULL - oscDepth; + statePtr->data.tsqr.hiVal = AL_VOL_FULL; + statePtr->data.tsqr.curVal = AL_VOL_FULL; + *initVal = (f32) AL_VOL_FULL; + break; + + case TREMELO_DSC_SAW: + statePtr->maxCount = 256 - oscRate; + statePtr->curCount = 0; + statePtr->data.tsaw.depth = oscDepth; + statePtr->data.tsaw.baseVol = AL_VOL_FULL; + *initVal = (f32) statePtr->data.tsaw.baseVol; + break; + + case TREMELO_ASC_SAW: + statePtr->maxCount = 256 - oscRate; + statePtr->curCount = 0; + statePtr->data.tsaw.depth = oscDepth; + statePtr->data.tsaw.baseVol = AL_VOL_FULL - oscDepth; + *initVal = (f32) statePtr->data.tsaw.baseVol; + break; + + case VIBRATO_SIN: + statePtr->data.vsin.depthcents = _depth2Cents(oscDepth); + statePtr->curCount = 0; + statePtr->maxCount = 259 - oscRate; /* gives values 4-259 */ + *initVal = 1.0f; /* start at unity pitch */ + break; + + case VIBRATO_SQR: { + s32 cents; + statePtr->maxCount = 256 - oscRate; /* values from 1-256 */ + statePtr->curCount = statePtr->maxCount; + statePtr->stateFlags = OSC_HIGH; + cents = _depth2Cents(oscDepth); + statePtr->data.vsqr.loRatio = alCents2Ratio(-cents); + statePtr->data.vsqr.hiRatio = alCents2Ratio(cents); + *initVal = statePtr->data.vsqr.hiRatio; + } break; + + case VIBRATO_DSC_SAW: { + s32 cents; + statePtr->maxCount = 256 - oscRate; /* values from 1-256 */ + statePtr->curCount = statePtr->maxCount; + cents = _depth2Cents(oscDepth); + statePtr->data.vdsaw.hicents = cents; + statePtr->data.vdsaw.centsrange = 2 * cents; + *initVal = alCents2Ratio(statePtr->data.vdsaw.hicents); + } break; + + case VIBRATO_ASC_SAW: { + s32 cents; + statePtr->maxCount = 256 - oscRate; /* values from 1-256 */ + statePtr->curCount = statePtr->maxCount; + cents = _depth2Cents(oscDepth); + statePtr->data.vasaw.locents = -cents; + statePtr->data.vasaw.centsrange = 2 * cents; + *initVal = alCents2Ratio(statePtr->data.vasaw.locents); + } break; + } + } + return (deltaTime); /* if there are no oscStates, return zero, but if + oscState was available, return delay in usecs */ +} + +ALMicroTime updateOsc(void* oscState, f32* updateVal) { + f32 tmpFlt; + oscData* statePtr = (oscData*) oscState; + ALMicroTime deltaTime = AL_USEC_PER_FRAME; /* in this example callback every */ + /* frame, but could be at any interval */ + + switch (statePtr->type) /* perform update calculations */ + { + case TREMELO_SIN: + statePtr->curCount++; + if (statePtr->curCount >= statePtr->maxCount) + statePtr->curCount = 0; + tmpFlt = (f32) statePtr->curCount / (f32) statePtr->maxCount; + tmpFlt = sinf(tmpFlt * TWO_PI); + tmpFlt = tmpFlt * (f32) statePtr->data.tsin.halfdepth; + *updateVal = (f32) statePtr->data.tsin.baseVol + tmpFlt; + break; + + case TREMELO_SQR: + if (statePtr->stateFlags == OSC_HIGH) { + *updateVal = (f32) statePtr->data.tsqr.loVal; + statePtr->stateFlags = OSC_LOW; + } else { + *updateVal = (f32) statePtr->data.tsqr.hiVal; + statePtr->stateFlags = OSC_HIGH; + } + deltaTime *= statePtr->maxCount; + break; + + case TREMELO_DSC_SAW: + statePtr->curCount++; + if (statePtr->curCount > statePtr->maxCount) + statePtr->curCount = 0; + + tmpFlt = (f32) statePtr->curCount / (f32) statePtr->maxCount; + tmpFlt *= (f32) statePtr->data.tsaw.depth; + *updateVal = (f32) statePtr->data.tsaw.baseVol - tmpFlt; + break; + + case TREMELO_ASC_SAW: + statePtr->curCount++; + if (statePtr->curCount > statePtr->maxCount) + statePtr->curCount = 0; + tmpFlt = (f32) statePtr->curCount / (f32) statePtr->maxCount; + tmpFlt *= (f32) statePtr->data.tsaw.depth; + *updateVal = (f32) statePtr->data.tsaw.baseVol + tmpFlt; + break; + + case VIBRATO_SIN: + /* calculate a sin value (from -1 to 1) and multiply it by depthcents. + Then convert cents to ratio. */ + + statePtr->curCount++; + if (statePtr->curCount >= statePtr->maxCount) + statePtr->curCount = 0; + tmpFlt = (f32) statePtr->curCount / (f32) statePtr->maxCount; + tmpFlt = sinf(tmpFlt * TWO_PI) * statePtr->data.vsin.depthcents; + *updateVal = alCents2Ratio((s32) tmpFlt); + break; + + case VIBRATO_SQR: + if (statePtr->stateFlags == OSC_HIGH) { + statePtr->stateFlags = OSC_LOW; + *updateVal = statePtr->data.vsqr.loRatio; + } else { + statePtr->stateFlags = OSC_HIGH; + *updateVal = statePtr->data.vsqr.hiRatio; + } + deltaTime *= statePtr->maxCount; + break; + + case VIBRATO_DSC_SAW: + statePtr->curCount++; + if (statePtr->curCount > statePtr->maxCount) + statePtr->curCount = 0; + tmpFlt = (f32) statePtr->curCount / (f32) statePtr->maxCount; + tmpFlt *= (f32) statePtr->data.vdsaw.centsrange; + tmpFlt = (f32) statePtr->data.vdsaw.hicents - tmpFlt; + *updateVal = alCents2Ratio((s32) tmpFlt); + break; + + case VIBRATO_ASC_SAW: + statePtr->curCount++; + if (statePtr->curCount > statePtr->maxCount) + statePtr->curCount = 0; + tmpFlt = (f32) statePtr->curCount / (f32) statePtr->maxCount; + tmpFlt *= (f32) statePtr->data.vasaw.centsrange; + tmpFlt += (f32) statePtr->data.vasaw.locents; + *updateVal = alCents2Ratio((s32) tmpFlt); + break; + } + + return (deltaTime); +} + +void stopOsc(void* oscState) { + ((oscData*) oscState)->next = freeOscStateList; + freeOscStateList = (oscData*) oscState; +} + +void auInit(void) { + scAddClient(&auClient, &auGameTickQueue, auGameTickMessages, 1); + osCreateMesgQueue(&auDMA_MQ, auDMAMessages, 50); + osCreateMesgQueue(&D_80095E30, &D_80095E50, 1); + osCreateMesgQueue(&auSPTaskMQ, auSPTaskMessages, 1); + osSendMesg(&auSPTaskMQ, (OSMesg) NULL, OS_MESG_BLOCK); +} + +// https://decomp.me/scratch/CvKIB +GLOBAL_ASM("asm/nonmatchings/main/audio/auLoadAssets.s") + +GLOBAL_ASM("asm/nonmatchings/main/audio/auCreatePlayers.s") + +// https://decomp.me/scratch/HNhjJ +GLOBAL_ASM("asm/nonmatchings/main/audio/auThreadMain.s") + +void auSetHighSoundQuality(void) { + auSoundQuality = 1; +} + +void auSetLowSoundQuality(void) { + auSoundQuality = 0; +} + +void auSetSoundQuality(s32 quality) { + auSoundQuality = quality; +} + +void auSetReverbType(s32 fxType) { + if (fxType != auCurrentFxType) { + auRestarting++; + auCurrentSettings.fxType = fxType; + } +} + +void auStopBGM(void) { + s32 i; + + for (i = 0; i < NUM_SONGS; i++) { + auStopSong(i); + } +} + +// NOTE: this used to store the interrupt mask +u32 auPlaySong(s32 playerID, u32 songID) { + if (songID < auSeqFile->seqCount) { + auBGMPlayerStatus[playerID] = 1; + auBGMSongId[playerID] = songID; + return songID; + } else { + return -1; + } +} + +// NOTE: this used to store the interrupt mask +void auStopSong(s32 playerId) { + auBGMPlayerStatus[playerId] = 1; + auBGMSongId[playerId] = -1; +} + +void auSetBGMVolume(s32 playerID, u32 vol) { + if (vol > MAX_VOL) { + vol = MAX_VOL; + } + + alCSPSetVol(auBGMPlayers[playerID], vol); + auBGMVolume[playerID] = vol; + auBGMVolumeTimer[playerID] = 0; +} + +void auSetBGMVolumeSmooth(s32 playerID, u32 vol, u32 time) { + if (vol > MAX_VOL) { + vol = MAX_VOL; + } + + if (time != 0) { + auBGMVolumeTimer[playerID] = time; + auSongVolumeRate[playerID] = (vol - auBGMVolume[playerID]) / time; + } else { + auSetBGMVolume(playerID, vol); + } +} + +void auSetBGMReverb(s32 playerID, u32 reverb) { + s32 i; + + if (reverb > 127) { + reverb = 127; + } + + for (i = 0; i < 16; i++) { + alCSPSetChlFXMix(auBGMPlayers[playerID], i, reverb); + } +} + +void auSetBGMPriority(s32 playerID, u8 priority) { + s32 i; + + if (priority > 127) { + priority = 127; + } + auGlobalSongPriority = priority; + + for (i = 0; i < 16; i++) { + alCSPSetChlPriority(auBGMPlayers[playerID], i, priority); + } +} + +s32 func_80020BB8(s32 playerID) { + if (auBGMPlayers[playerID]->unk34 == 0) { + return 0; + } + return 1; +} + +#ifdef MIPS_TO_C + +s32 func_80020BE8(s32 arg0) { + s32 sp24; + s32 sp1C; + s32 *var_v0; + s32 temp_t6; + s32 var_a1; + s32 var_v1; + + var_a1 = 0; + if (D_800964D3 > 0) { + var_v0 = D_8009646C; + var_v1 = 0; +loop_2: + temp_t6 = *var_v0; + var_v0 += 4; + if (temp_t6 == 0) { + sp1C = var_v1; + sp24 = var_a1; + *(D_8009646C + var_v1) = func_80023CB0(arg0 & 0xFFFF, var_a1, D_800964D3, arg0); + return var_a1; + } + var_a1 += 1; + var_v1 += 4; + if (var_a1 >= D_800964D3) { + goto block_5; + } + goto loop_2; + } +block_5: + return -1; +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/func_80020BE8.s") +#endif + +#ifdef MIPS_TO_C +s32 func_80020C70(s32 arg0, ? arg1, ? arg2, ? arg3) { + return -1; +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/func_80020C70.s") +#endif + +#ifdef MIPS_TO_C + +s32 auStopAllSounds(void) { + s32 var_v0; + + func_80023990(); + var_v0 = 0; + if (D_800964D3 > 0) { + do { + var_v0 += 1; + } while (var_v0 < D_800964D3); + return var_v0; + } + return 1; +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/auStopAllSounds.s") +#endif + +// TODO: returns int? +void func_80020CC4(u32 volume) { + u8 var_a0; + + if (volume > MAX_VOL) { + var_a0 = 0x7F; + } else { + var_a0 = (volume >> 8); + } + func_80023360(var_a0, volume); +} + +#ifdef MIPS_TO_C + +void func_80020D00(s32 arg0, u32 arg1) { + s32 temp_a0; + u32 var_a2; + + var_a2 = arg1; + if (arg1 >= 0x8000) { + var_a2 = 0x7FFF; + } + temp_a0 = *(D_8009646C + (arg0 * 4)); + if (temp_a0 != 0) { + func_80023464(temp_a0, (var_a2 >> 8) & 0xFF, var_a2, arg0); + } +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/func_80020D00.s") +#endif + +#ifdef MIPS_TO_C + +void func_80020D58(s32 arg0, s32 arg1) { + s32 temp_a0; + s32 var_a2; + + var_a2 = arg1 & 0xFF; + if ((arg1 & 0xFF) >= 0x80) { + var_a2 = 0x7F; + } + temp_a0 = *(D_8009646C + (arg0 * 4)); + if (temp_a0 != 0) { + func_800233F4(temp_a0, var_a2 & 0xFF, var_a2, arg0); + } +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/func_80020D58.s") +#endif + +#ifdef MIPS_TO_C + +void func_80020DAC(s32 arg0, s32 arg1) { + s32 temp_a0; + s32 var_a2; + + var_a2 = arg1 & 0xFF; + if ((arg1 & 0xFF) >= 0x80) { + var_a2 = 0x7F; + } + temp_a0 = *(D_8009646C + (arg0 * 4)); + if (temp_a0 != 0) { + func_80023384(temp_a0, var_a2 & 0xFF, var_a2, arg0); + } +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/func_80020DAC.s") +#endif + +void func_80020E00(s32 arg0, s32 arg1) { + +} + +#ifdef MIPS_TO_C + +void func_80020E0C(s32 arg0) { + s32 sp1C; + s32 temp_a1; + s32 temp_v0; + + temp_v0 = arg0 * 4; + temp_a1 = *(D_8009646C + temp_v0); + if (temp_a1 != 0) { + sp1C = temp_v0; + func_80023A28(temp_a1, temp_a1); + *(D_8009646C + temp_v0) = 0; + } +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/func_80020E0C.s") +#endif + +#ifdef MIPS_TO_C + +void func_80020E5C(s32 arg0, s32 arg1) { + void *temp_v0; + + temp_v0 = *(D_8009646C + (arg0 * 4)); + if (temp_v0 != NULL) { + temp_v0->unk1F = arg1 & 0xFF; + } +} +#else +GLOBAL_ASM("asm/nonmatchings/main/audio/func_80020E5C.s") +#endif + +void func_80020E8C(void) { + auSettingsUpdated = 1; +} + +s32 func_80020E9C(void) { + return auSettingsUpdated; +} + +s32 func_80020EA8(void) { + return auRestarting; +} + +s32 func_80020EB4(void) { + return auRestarting | auSettingsUpdated; +} + +void func_80020ECC(void) { + osRecvMesg(&gThreadInitializedMQ, 0, 0); + auSettingsUpdated = 1; + osRecvMesg(&gThreadInitializedMQ, 0, 1); +} diff --git a/src/main/audio.h b/src/main/audio.h new file mode 100644 index 000000000..dbb92852e --- /dev/null +++ b/src/main/audio.h @@ -0,0 +1,196 @@ +#ifndef _AUDIO_H_ +#define _AUDIO_H_ + +#include "localsched.h" + +#define NUM_DMA_BUFFERS 4 +#define MAX_BUFFERS 50 +#define MAX_BUFFER_LENGTH 1024 +#define AUDIO_EXTRA_SAMPLES 80 +#define NUM_SONGS 1 +#define MAX_VOL 0x7800 + +#define TREMELO_SIN 1 +#define TREMELO_SQR 2 +#define TREMELO_DSC_SAW 3 +#define TREMELO_ASC_SAW 4 +#define VIBRATO_SIN 128 +#define VIBRATO_SQR 129 +#define VIBRATO_DSC_SAW 130 +#define VIBRATO_ASC_SAW 131 +#define OSC_HIGH 0 +#define OSC_LOW 1 +#define TWO_PI 6.2831853f +#define OSC_STATE_COUNT 44 + +typedef struct { + /* 0x00 */ u8* heapBase; + /* 0x04 */ s32 heapSize; + /* 0x08 */ u16 outputRate; + /* 0x0A */ u8 maxPVoices; + /* 0x0B */ u8 maxVVoices; + /* 0x0C */ u8 maxUpdates; + /* 0x0D */ u8 maxEvents; + /* 0x0E */ u8 numSounds; + /* 0x0F */ u8 maxVoices[2]; + /* 0x11 */ s8 unk_11; + /* 0x12 */ s8 unk_12; + /* 0x13 */ u8 unk_13; + /* 0x14 */ s32 bank1Start; + /* 0x18 */ s32 bank1End; + /* 0x1C */ u8* table1Start; + /* 0x20 */ s32 bank2Start; + /* 0x24 */ s32 bank2End; + /* 0x28 */ u8* table2Start; + /* 0x2C */ s32 romSbkStart; + /* 0x30 */ u8 fxType; u8 pad31[3]; + u32 unk34; + u32 unk38; + u32 *unk3C; + u32 *unk40; + u32 unk44; + u16 unk48; + u16 unk4A; + u32 unk4C; +// 0x50/0xx54 + u32 bank3Start; + u32 bank3End; +// 0x58/0x5C + u32 bank4Start; + u32 bank4End; +// 0x60/0x64 + u32 bank5Start; + u32 bank5End; +} AuSettings; + +typedef struct { + u8 rate; + u8 depth; + u8 oscCount; +} defData; + +typedef struct { + u8 halfdepth; + u8 baseVol; +} tremSinData; + +typedef struct { + u8 curVal; + u8 hiVal; + u8 loVal; +} tremSqrData; + +typedef struct { + u8 baseVol; + u8 depth; +} tremSawData; + +typedef struct { + f32 depthcents; +} vibSinData; + +typedef struct { + f32 loRatio; + f32 hiRatio; +} vibSqrData; + +typedef struct { + s32 hicents; + s32 centsrange; +} vibDSawData; + +typedef struct { + s32 locents; + s32 centsrange; +} vibASawData; + +typedef struct oscData_s { + struct oscData_s* next; + u8 type; + u8 stateFlags; + u16 maxCount; + u16 curCount; + union { + defData def; + tremSinData tsin; + tremSqrData tsqr; + tremSawData tsaw; + vibSinData vsin; + vibSqrData vsqr; + vibDSawData vdsaw; + vibASawData vasaw; + } data; +} oscData; + +typedef struct { + u32 addr; + u32 len; + u32 size; + char* ptr; +} AMDMABuffer; + +typedef struct { + u32 nBuffers; + u32 currentBuffer; + AMDMABuffer buffers[NUM_DMA_BUFFERS]; +} AMDMAState; + +extern s32 auSettingsUpdated ; +extern s32 auSoundQuality ; +extern s32 auCurrentFxType ; +extern s32 auRestarting ; +extern s32 auFrameCounter ; +extern s16 auSampleCount[] ; +extern u8 auGlobalSoundVolume ; +extern u8 auGlobalSoundReverbAmt ; +extern u8 auHeapBuffer[0x4B000]; +extern ALHeap auHeap; +extern void* auHeapBase; +extern s32 auHeapSize; +extern SCClient auClient; +extern OSIoMesg auDMAIOMesgBuf[MAX_BUFFERS]; +extern ALGlobals auGlobals; +extern s32 auFrequency; +extern s16* auDataBuffers[3]; +extern Acmd* auCmdListPtr; +extern Acmd* auCmdListBuffers[2]; +extern SCTaskAudio* auTask; +extern SCTaskAudio* auScTasks[2]; +extern ALBank* D_800968B8; +extern s32* auPlayingSound; +extern s32* auStartingSound; +extern s8* auSndpSoundId; // returned by alSndpAllocate +extern u8* auSoundPriority; +extern u8* auSoundIdleCounter; +extern f32* auSoundPitch; +extern u16* auSoundVolume; +extern u8* auSoundPan; +extern u8* auSoundReverbAmt; +extern ALInstrument* auSFXPlayer; +extern ALSndPlayer* auSoundPlayer; + +extern ALBank* auSeqBank; +extern ALBank *D_80096468; + +extern ALSeqFile* auSeqFile; +extern ALSeqFile *D_80096474; + +extern ALCSPlayer* auBGMPlayers[2]; +extern ALCSeq* auBGMSequences[2]; +extern u8 auGlobalSongPriority; +extern u8* auBGMSeqData[2]; +extern u8* auBGMPlayerStatus; +extern s32* auBGMSongId; +extern s32 auBGMVolumeTimer[2]; +extern f32 auBGMVolume[2]; +extern f32 auSongVolumeRate[2]; +extern AuSettings auCurrentSettings; +extern OSTime D_80096968; +extern oscData* freeOscStateList; + + +void auStopSong(s32 playerId); +extern int func_80023360(u32, u32); + + +#endif diff --git a/src/main/code_11720.c b/src/main/code_11720.c new file mode 100644 index 000000000..39b1a7db5 --- /dev/null +++ b/src/main/code_11720.c @@ -0,0 +1,114 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80010B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80010B44.s") + +void func_80010B50(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80010B58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80010D28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80010EF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001103C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80011180.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80013300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800140FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800141D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800141F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001421C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014264.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800143A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800143D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014768.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001479C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800147C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014B04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014B4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014C78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014DF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80014FA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001503C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80015368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800156C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001585C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001588C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80015BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80015BFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80015DC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80015F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800162D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80016634.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001663C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80016940.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80016DE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800171E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017B6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017DB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80017FEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001806C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80018094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800180BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800180E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_8001810C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_80018170.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_11720/func_800183BC.s") diff --git a/src/main/code_11720.h b/src/main/code_11720.h new file mode 100644 index 000000000..eb4d1dc5a --- /dev/null +++ b/src/main/code_11720.h @@ -0,0 +1,67 @@ +#ifndef _MAIN_4_H_ +#define _MAIN_4_H_ + +struct UnkStruct8004A7F8 { + u8 unk0; + u8 filler[3]; + Gfx **unk4; + Gfx **unk8; + Gfx **unkC; + Gfx **unk10; +}; + +struct unkAddr8004A7C8_2 { + u8 filler[0x3C]; + f32 x; + f32 y; + f32 z; +}; + +struct unkAddr8004A7C8 { + u8 filler[0x2C]; + u32 unk2C; + u32 unk30; + u32 unk34; + u32 unk38; + struct unkAddr8004A7C8_2* unk3C; +}; + +// extern struct unkAddr8004A7C8* D_8004A7C8; +struct UnkStruct80014264 { + struct UnkStruct80014264 *unk0; + struct UnkStruct80014264 *unk4; + struct UnkStruct80014264 *unk8; + u32 unkC; + struct UnkStruct80014264 *unk10; + u32 unk14; + u32 *unk18; + u32 unk1C; + f32 unk20; + u32 unk24; + u32 *unk28; + void (*unk2C)(void); +}; +// 00000000 +// 00000000 +// 00000000 +// 801D32A0 +// 3E4CCCCD +// 3E4CCCCD +// 3E4CCCCD +// 00000000 +// 00000000 +// 00000100 +// 801D32A0 +// 00000000 +// 00000000 +// 00000000 +// 00000000 +// 00000000 +// 00000000 +// FF7FFFFF +// 40000000 +// 00000000 +// 00000000 +// 00000000 + +#endif // _MAIN_4_H_ diff --git a/src/main/code_5F50.c b/src/main/code_5F50.c new file mode 100644 index 000000000..0be17e664 --- /dev/null +++ b/src/main/code_5F50.c @@ -0,0 +1,91 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005350.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/setup_segment_15.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800053A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800053B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/alloc_region.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/alloc_with_alignment.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005430.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_8000548C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005530.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_8000561C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800056DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005734.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800057AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005910.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_8000597C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800059F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005A98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005C64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005CC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/append_microcode_load.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80005F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_8000630C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006628.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006740.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800067B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800067C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800067E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006854.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800068E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006E30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006E94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80006F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_8000708C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80007328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80007380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800075DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800075F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80007620.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80007648.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80007674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_80007694.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_5F50/func_800076D0.s") diff --git a/src/main/code_84F0.c b/src/main/code_84F0.c new file mode 100644 index 000000000..4674761a9 --- /dev/null +++ b/src/main/code_84F0.c @@ -0,0 +1,21 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_800078F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_80007944.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_80007998.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_800079E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_800079FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_80007A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_80007A74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_80007ADC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_80007B38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_84F0/func_80007BA4.s") diff --git a/src/main/code_CA90.c b/src/main/code_CA90.c new file mode 100644 index 000000000..6a0c6252e --- /dev/null +++ b/src/main/code_CA90.c @@ -0,0 +1,93 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000BE90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000BEF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000BF3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000BFA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C044.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C10C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C17C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C2C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000C3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000CE18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000CECC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000CF84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000D030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000D0AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000D35C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000DE30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000E324.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000E3F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000E434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000E474.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000E4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000E554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000E818.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000EC98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F054.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F448.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F480.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F4B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F4E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F6EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F754.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000F980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000FB10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000FCE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000FD78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000FE2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8000FE64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_8001074C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_80010988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/code_CA90/func_800109B4.s") diff --git a/src/main/contpad.c b/src/main/contpad.c new file mode 100644 index 000000000..84042408e --- /dev/null +++ b/src/main/contpad.c @@ -0,0 +1,524 @@ +#include +#include +#include +#include "common.h" +#include "contpad.h" +#include "localsched.h" +#include "main.h" + +// bss + +OSMesgQueue sSIMesgQueue; // 0x80048DA0 +OSMesg D_80048DB8; // 0x80048DB8 +// 0x80048DBC? bss file boundary? lines up with function alignment +SCClient contClient; +OSMesg D_80048DC8[7]; +// 0x80048DE4? +OSMesgQueue contEventMQ; +OSMesg contEventMesgArray[4]; +OSMesgQueue D_80048E10; +OSMesg D_80048E28[4]; +OSMesgQueue D_80048E38; +OSMesg D_80048E50; +// 0x80048E54? +OSMesgQueue D_80048E58; +OSContStatus sControllerStatuses[MAXCONTROLLERS]; // 0x80048E70 +OSContPad sContPads[MAXCONTROLLERS]; // 0x80048E80 +s32 gValidControllerCount; // num controllers? // 0x80048E98 +s8 D_80048E9C[MAXCONTROLLERS]; // 0x80048E9C +struct Controller gControllers[MAXCONTROLLERS]; // 0x80048EA0 +Controller_800D6FE8 gPlayerControllers[MAXCONTROLLERS]; // 0x80048F20 +s32 D_80048F48; // 0x80048F48 +ContEvent *D_80048F4C; // 0x80048F4C +s32 D_80048F50; // 0x80048F50 +s32 D_80048F54; // 0x80048F54 +s32 contPollTimer; // 0x80048F58 +// 0x80048F5C? bss file boundary? lines up with function alignment +struct UnkStruct80048F60 D_80048F60[4]; // 4 * 0x18 +struct UnkStruct80048FC0 D_80048FC0[4]; // 4 * 0x44 +struct UnkStruct800490D0 D_800490D0; // 0x20 +OSPfs sPakDevices[MAXCONTROLLERS]; // 0x800490F0 +// more potential bss from this file?? +u32 pad[2]; +u16 D_80049298; +u16 D_8004929A; +u16 D_8004929C; +u16 D_8004929E; +u8 D_800492A0; +u8 D_800492A1; + +void func_80003DC0(void) { + s32 port; + + for (port = 0; port < gValidControllerCount; port++) + { + if (gControllers[D_80048E9C[port]].errno == 0) { + gPlayerControllers[port] = gPlayerControllers[D_80048E9C[port]]; + } else { + gPlayerControllers[port].stickY = 0; + gPlayerControllers[port].buttonHeldLong = 0; + gPlayerControllers[port].buttonReleased = 0; + gPlayerControllers[port].buttonPressed = 0; + gPlayerControllers[port].buttonHeld = 0; + gPlayerControllers[port].stickX = gPlayerControllers[port].stickY; + } + } + for (; port < MAXCONTROLLERS; port++) + { + gPlayerControllers[port].buttonHeldLong = 0; + gPlayerControllers[port].buttonReleased = 0; + gPlayerControllers[port].buttonPressed = 0; + gPlayerControllers[port].buttonHeld = 0; + gPlayerControllers[port].stickX = gPlayerControllers[port].stickY = 0; + } +} + + +void query_controllers(void) { + s32 port; + + osContStartQuery(&sSIMesgQueue); + osRecvMesg(&sSIMesgQueue, NULL, 1); + osContGetQuery(sControllerStatuses); + for (port = 0; port < MAXCONTROLLERS; port++) + { + if ((sControllerStatuses[port].errno == 0) && ((sControllerStatuses[port].status & 1) != 0)) { + if (((gControllers[port].status & 1) == 0) || (gControllers[port].errno != 0)) { + osMotorInit(&sSIMesgQueue, &sPakDevices[port], port); + } + } + gControllers[port].errno = sControllerStatuses[port].errno; + gControllers[port].status = sControllerStatuses[port].status; + } +} + +void read_controller_input(void) { + s32 i; + + osContStartReadData(&sSIMesgQueue); + osRecvMesg(&sSIMesgQueue, NULL, OS_MESG_BLOCK); + osContGetReadData(sContPads); + for (i = 0; i < MAXCONTROLLERS; i++) + { + if (!sContPads[i].errno && (sControllerStatuses[i].status & 1) && gControllers[i].errno) { + osMotorInit(&sSIMesgQueue, &sPakDevices[i], i); + } + gControllers[i].errno = sContPads[i].errno; + if (gControllers[i].errno == 0) { + gControllers[i].buttonPressed = (sContPads[i].button ^ gControllers[i].buttonHeld) & sContPads[i].button; + gControllers[i].buttonReleased = (sContPads[i].button ^ gControllers[i].buttonHeld) & gControllers[i].buttonHeld; + if (sContPads[i].button ^ gControllers[i].buttonHeld) { + gControllers[i].buttonHeldLong = gControllers[i].buttonPressed; + gControllers[i].holdTimer = gControllers[i].holdDelay; + } else { + gControllers[i].holdTimer--; + if (gControllers[i].holdTimer > 0) { + gControllers[i].buttonHeldLong = 0; + } else { + gControllers[i].buttonHeldLong = sContPads[i].button; + gControllers[i].holdTimer = gControllers[i].holdInterval; + } + } + gControllers[i].buttonHeld = sContPads[i].button; + gControllers[i].stick_x = sContPads[i].stick_x; + gControllers[i].stick_y = sContPads[i].stick_y; + gControllers[i].bufferedButtonPressed |= gControllers[i].buttonPressed; + gControllers[i].bufferedButtonReleased |= gControllers[i].buttonReleased; + gControllers[i].bufferedButtonHeldLong |= gControllers[i].buttonHeldLong; + } + } + D_80048F48 = 1; +} + +void func_800041A0() { + s32 i = 0; + + for (i = 0; i != MAXCONTROLLERS; i++) + { + if (gControllers[i].errno == 0) { + gPlayerControllers[i].buttonHeld = gControllers[i].buttonHeld; + gPlayerControllers[i].buttonPressed = gControllers[i].bufferedButtonPressed; + gPlayerControllers[i].buttonReleased = gControllers[i].bufferedButtonReleased; + gPlayerControllers[i].buttonHeldLong = gControllers[i].bufferedButtonHeldLong; + gPlayerControllers[i].stickX = gControllers[i].stick_x; + gPlayerControllers[i].stickY = gControllers[i].stick_y; + } else { + gPlayerControllers[i].buttonHeldLong = 0; + gPlayerControllers[i].buttonReleased = 0; + gPlayerControllers[i].buttonPressed = 0; + gPlayerControllers[i].buttonHeld = 0; + gPlayerControllers[i].stickX = gPlayerControllers[i].stickY = 0; + } + gControllers[i].bufferedButtonHeldLong = 0; + gControllers[i].bufferedButtonReleased = 0; + gControllers[i].bufferedButtonPressed = 0; + if (i == 0) // Needed to match, may have been commented out code? + { + } + } + func_80003DC0(); + D_80048F48 = 0; +} + +#ifdef NON_MATCHING +s32 *func_80004250(void) { + u8 sp43; + s32 i,j; + + osCreateMesgQueue(&sSIMesgQueue, &D_80048DB8, 1); + osSetEventMesg(5, &sSIMesgQueue, 1); + osContInit(&sSIMesgQueue, &sp43, sControllerStatuses); + for (i = 0; i < MAXCONTROLLERS; i++) + { + if ((sControllerStatuses[i].status & 1) != 0) { + osMotorInit(&sSIMesgQueue, &sPakDevices[i], i); + } + } + + osCreateMesgQueue(&D_80048E10, &contEventMesgArray, 4); + for (i = 0; i < MAXCONTROLLERS; i++) + { + D_80048F60[i].unk8 = i; + D_80048F60[i].unk0 = 0; + D_80048F60[i].unk4 = 5; + D_80048F60[i].unkC = &D_80048E10; + // needs members to result in 0x18 in struct size + } + + osCreateMesgQueue(&D_80048E38, &D_80048E28, 4); + for (i = 0; i < MAXCONTROLLERS; i++) + { + D_80048FC0[i].unk8 = i; + D_80048FC0[i].unk0 = 0; + D_80048FC0[i].unk4 = 0xA; + D_80048FC0[i].unkC = &D_80048E38; + // needs members to result in 0x44 in struct size + } + + osCreateMesgQueue(&D_80048E58, &D_80048E50, 1); + D_800490D0.unk0 = 0; + D_800490D0.unk4 = 0xB; + D_800490D0.unk8 = i; + D_800490D0.unkC = &D_80048E58; + // seems to be 0x20 in size + + for (i = 0; i < MAXCONTROLLERS; i++) + { + gControllers[i].stick_y = 0; + gPlayerControllers[i].stickY = 0; + sContPads[i].button = 0; + gControllers[i].buttonHeldLong = 0; + gControllers[i].buttonPressed = 0; + gControllers[i].buttonHeld = 0; + gControllers[i].holdTimer = 30; + gControllers[i].holdDelay = 30; + gControllers[i].holdInterval = 5; + gPlayerControllers[i].buttonHeldLong = 0; + gPlayerControllers[i].buttonPressed = 0; + gPlayerControllers[i].buttonHeld = 0; + gControllers[i].stick_x = gControllers[i].stick_y; + gControllers[i].errno = sControllerStatuses[i].errno; + gControllers[i].status = sControllerStatuses[i].status; + gPlayerControllers[i].stickX = gPlayerControllers[i].stickY; + } + + gValidControllerCount = 0; + D_80048E9C[0] = -1; + if (gControllers[0].errno == 0) { + D_80048E9C[gValidControllerCount] = 0; + gValidControllerCount++; + } + D_80048E9C[1] = -1; + if (gControllers[1].errno == 0) { + D_80048E9C[gValidControllerCount] = 1; + gValidControllerCount++; + } + D_80048E9C[2] = -1; + if (gControllers[2].errno == 0) { + D_80048E9C[gValidControllerCount] = 2; + gValidControllerCount++; + } + D_80048E9C[3] = -1; + if (gControllers[3].errno == 0) { + D_80048E9C[gValidControllerCount] = 3; + gValidControllerCount++; + } + D_80048F48 = 0; + D_80048F4C = NULL; + D_80048F50 = 1; + D_80048F54 = 1; + contPollTimer = 1; + D_8004929A = 0; + D_80049298 = 0; + D_8004929C = 0; + D_8004929E = 0; + D_800492A0 = 0; + D_800492A1 = 0; + return &D_80048F54; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004250.s") +#endif + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/contSendEvent.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004624.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_8000464C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_800046A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_800046D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_800046FC.s") + +void func_800047B0(s32 arg0) { + func_800046FC(arg0, 1); +} + +void func_800047D0(s32 arg0) { + func_800046FC(arg0, 2); +} + +void func_800047F0(s32 arg0) { + func_800046FC(arg0, 0); +} + +void contHandlePfsEvent(ContEventPfs *arg0) { + arg0->error = osPfsInitPak( + &sSIMesgQueue, + &sPakDevices[arg0->channel], + arg0->channel + ); + + if (arg0->error == 0) { + switch (arg0->goal) { + case 0: + arg0->error = osPfsFindFile( + &sPakDevices[arg0->channel], + arg0->company_code, + arg0->game_code, + arg0->game_name, + arg0->extension, + arg0->file_no_result + ); + break; + case 1: + arg0->error = osPfsDeleteFile( + &sPakDevices[arg0->channel], + arg0->company_code, + arg0->game_code, + arg0->game_name, + arg0->extension + ); + break; + case 2: + arg0->error = osPfsAllocateFile( + &sPakDevices[arg0->channel], + arg0->company_code, + arg0->game_code, + arg0->game_name, + arg0->extension, + arg0->file_allocation_size, + arg0->file_no_result + ); + break; + case 3: + arg0->error = osPfsReadWriteFile( + &sPakDevices[arg0->channel], + arg0->file_no, + PFS_READ, + arg0->file_offset, + arg0->file_size, + arg0->databuf + ); + break; + case 4: + arg0->error = osPfsReadWriteFile( + &sPakDevices[arg0->channel], + arg0->file_no, + PFS_WRITE, + arg0->file_offset, + arg0->file_size, + arg0->databuf + ); + break; + } + } +} + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_800049BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004A3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004B50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004BD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004C5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004CD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004D68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/contpad/func_80004D98.s") + +void contHandleEepEvent(struct ContEventEep *arg0) { + switch (arg0->goal) + { + case EEP_PROBE: + arg0->result = osEepromProbe(&sSIMesgQueue); + break; + case EEP_READ: + arg0->result = osEepromRead(&sSIMesgQueue, arg0->addr, arg0->buffer); + break; + case EEP_WRITE: + arg0->result = osEepromWrite(&sSIMesgQueue, arg0->addr, arg0->buffer); + break; + case EEP_LONGREAD: + arg0->result = osEepromLongRead(&sSIMesgQueue, arg0->addr, arg0->buffer, arg0->nbytes); + break; + case EEP_LONGWRITE: + arg0->result = osEepromLongWrite(&sSIMesgQueue, arg0->addr, arg0->buffer, arg0->nbytes); + break; + } +} + +// https://decomp.me/scratch/2fe7d +void contHandleEvent(ContEvent *evt) { + switch (evt->type) { + case 1: { + read_controller_input(); + func_800041A0(); + if (evt->mq != NULL) { + osSendMesg(evt->mq, evt->msg, 0); + } + break; + } + default: + break; + case 2: { + if (D_80048F48 != 0) { + func_800041A0(); + if (evt->mq != NULL) { + osSendMesg(evt->mq, evt->msg, 0); + } + } else { + D_80048F4C = evt; + } + break; + } + case 3: { + int i; + for (i = 0; i < MAXCONTROLLERS; i++) { + gControllers[i].holdDelay = ((ContEventHeldButtons *) evt)->holdDelay; + gControllers[i].holdInterval = ((ContEventHeldButtons *) evt)->holdInterval; + } + + if (((ContEventHeldButtons *) evt)->evt.mq != NULL) { + osSendMesg(((ContEventHeldButtons *) evt)->evt.mq, ((ContEventHeldButtons *) evt)->evt.msg, 0); + return; + } + break; + } + case 4: { + D_80048F50 = ((ContEventChannel *)evt)->channel; + if (evt->mq != NULL) { + osSendMesg(evt->mq, evt->msg, 0); + return; + } + break; + } + case 6: { + D_80048F54 = ((ContEventChannel *)evt)->channel; + if (((ContEventChannel *)evt)->evt.mq != NULL) { + osSendMesg(((ContEventChannel *)evt)->evt.mq, ((ContEventChannel *)evt)->evt.msg, 0); + return; + } + break; + } + case 5: { + u32 channel; + + if ((gControllers[((ContEventChannel *)evt)->channel].errno == 0) && (gControllers[((ContEventChannel *)evt)->channel].status & 1)) { + channel = ((ContEventChannel *)evt)->channel; + switch (((ContEventChannel *)evt)->unk10) { + case 0: + osMotorInit(&sSIMesgQueue, &sPakDevices[channel], channel); + break; + case 1: + if (!D_80048CDC) { + osMotorStart(&sPakDevices[channel]); + } + break; + case 2: + osMotorStop(&sPakDevices[channel]); + osMotorStop(&sPakDevices[channel]); + osMotorStop(&sPakDevices[channel]); + break; + + } + } + if (evt->mq != NULL) { + osSendMesg(evt->mq, evt->msg, 0); + } + break; + } + case 10: { + if ((gControllers[((ContEventPfs *)evt)->channel].errno == 0) && (gControllers[((ContEventPfs *)evt)->channel].status & 1)) { + contHandlePfsEvent(((ContEventPfs *)evt)); + } + if (((ContEventPfs *)evt)->evt.mq != NULL) { + osSendMesg(((ContEventPfs *)evt)->evt.mq, ((ContEventPfs *)evt)->evt.msg, 0); + } + break; + } + case 11: { + contHandleEepEvent((ContEventEep *)evt); + if (((ContEventEep *)evt)->evt.mq != NULL) { + osSendMesg(((ContEventEep *)evt)->evt.mq, ((ContEventEep *)evt)->evt.msg, 0); + } + break; + } + } +} + +void contMain(void *arg) { + OSMesg mesg; + + func_80004250(); + scAddClient(&contClient, &contEventMQ, &D_80048DC8, ARRAY_COUNT(D_80048DC8)); + osSendMesg(&gThreadInitializedMQ, 1, 0); + while (1) { + osRecvMesg(&contEventMQ, &mesg, 1); + if ((s32)mesg == 1) { + if (contPollTimer != 0) { + contPollTimer--; + } + if (contPollTimer == 0) { + query_controllers(); + contPollTimer = D_80048F54; + } + if (D_80048F50 != 0) { + read_controller_input(); + if (D_80048F4C != NULL) { + func_800041A0(); + if (D_80048F4C->mq != NULL) { + osSendMesg(D_80048F4C->mq, D_80048F4C->msg, 0); + } + D_80048F4C = NULL; + } + } + } else { + contHandleEvent((ContEvent*)mesg); + } + } +} diff --git a/src/main/contpad.h b/src/main/contpad.h new file mode 100644 index 000000000..b06d7294c --- /dev/null +++ b/src/main/contpad.h @@ -0,0 +1,130 @@ +#ifndef CONTPAD_H +#define CONTPAD_H + +#include + +struct Controller { + /* 0x00 */ u16 buttonHeld; + /* 0x02 */ u16 buttonPressed; + /* 0x04 */ u16 bufferedButtonPressed; + /* 0x06 */ u16 buttonHeldLong; + /* 0x08 */ u16 bufferedButtonHeldLong; + /* 0x0A */ u16 buttonReleased; + /* 0x0C */ u16 bufferedButtonReleased; + /* 0x0E */ s8 stick_x; + /* 0x0F */ s8 stick_y; + /* 0x10 */ s32 holdDelay; + /* 0x14 */ u32 holdInterval; + /* 0x18 */ s32 holdTimer; + /* 0x1C */ u8 errno; + /* 0x1D */ u8 status; +}; // size: 0x20 + +struct UnkStruct80048F60 { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; +}; + +struct UnkStruct80048FC0 { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + u32 unk20; + u32 unk24; + u32 unk28; + u32 unk2C; + u32 unk30; + u32 unk34; + u32 unk38; + u32 unk3C; + u32 unk40; +}; + +struct UnkStruct800490D0 { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + s8 unk10; + s8 unk11; + s8 unk12; + s8 unk13; + u32 unk14; + u32 unk18; + u32 unk1C; +}; + +typedef struct ContEvent { + u32 type; + OSMesg msg; + OSMesgQueue *mq; +} ContEvent; + +extern ContEvent *D_8004F4C0; + +enum EEPROMGoals { + EEP_PROBE = 0, + EEP_READ, + EEP_WRITE, + EEP_LONGREAD, + EEP_LONGWRITE, +}; + +typedef struct { + ContEvent evt; + u32 channel; + u32 unk10; +} ContEventChannel; + +typedef struct { + ContEvent evt; + u32 holdDelay; + u32 holdInterval; +} ContEventHeldButtons; + +typedef struct ContEventEep { + ContEvent evt; + u8 goal; + u8 addr; + u8 unkE; + u8 unkF; + u8 *buffer; + s32 nbytes; + s32 result; +} ContEventEep; + +typedef struct ContEventPfs { + ContEvent evt; + s32 channel; + s32 goal; + u16 company_code; + u16 unk16; + s32 game_code; + char *game_name; + char *extension; + s32 file_allocation_size; + s32 file_no_result; + s32 file_no; + s32 file_offset; + s32 file_size; + u8 *databuf; + s32 error; +} ContEventPfs; + +// data +extern s32 D_80048CDC; +extern Controller_800D6FE8 gPlayerControllers[MAXCONTROLLERS]; + +// funcs +void contMain(void *arg); + +#endif // CONTPAD_H diff --git a/src/main/crash_screen.c b/src/main/crash_screen.c new file mode 100644 index 000000000..0dd329486 --- /dev/null +++ b/src/main/crash_screen.c @@ -0,0 +1,55 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80020F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80021444.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_800215F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80021618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80021668.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80021764.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80021CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_draw_rect.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_draw_glyph.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/write_to_buf.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_print.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_sleep.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_print_float_reg.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_print_fpcsr.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80022248.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_800222C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/get_crashed_thread.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80022A38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80022A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_vprint.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_printf.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80022BC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_start_thread.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_80022E04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/crash_screen_init.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/fatal_printf.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/crash_screen/func_800231F0.s") diff --git a/src/main/crash_screen.h b/src/main/crash_screen.h new file mode 100644 index 000000000..493dbc87e --- /dev/null +++ b/src/main/crash_screen.h @@ -0,0 +1,7 @@ +#ifndef FAULT_H +#define FAULT_H + +void fatal_printf(const char *fmt, ...); +void crash_screen_printf(const char *fmt, ...); + +#endif // FAULT_H diff --git a/src/main/dma.c b/src/main/dma.c new file mode 100644 index 000000000..c6da2122d --- /dev/null +++ b/src/main/dma.c @@ -0,0 +1,29 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/init_dma_message_queue.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/dma_copy.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/dma_overlay_load.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/dma_read.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/dma_write.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_80002EBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_80002F4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_80002F88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_80002FC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_80003788.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_800037A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_800037F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_80003838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/dma/func_8000385C.s") diff --git a/src/main/dma.h b/src/main/dma.h new file mode 100644 index 000000000..d4d56e11a --- /dev/null +++ b/src/main/dma.h @@ -0,0 +1,8 @@ +#ifndef DMA_H +#define DMA_H + +extern u32 dmaVPKDevAddr; // s +extern u32 dmaVPKVramAddr; // t +extern u32 dmaVPKLen; // l + +#endif diff --git a/src/main/lbreflect.c b/src/main/lbreflect.c new file mode 100644 index 000000000..8e5f7a52c --- /dev/null +++ b/src/main/lbreflect.c @@ -0,0 +1,157 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_80019A30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_80019C60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/lbreflect_Int16Sin.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/lbreflect_Int16Cos.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guLookAtF.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guLookAt.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guLookAtF_2.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001A488.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guLookAtReflectF.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guLookAtReflect.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guLookAtReflectF_2.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001AD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guOrthoF.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/guOrtho.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B28C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B454.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/HS64_MkScaleMtxF.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B540.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B5E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/HS64_MkTranslateMtxF.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001B9B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001BA04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001BA60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001BAC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001BB30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/HS64_MkRotationMtxF.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001BCE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001BF88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001BFDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C2E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C73C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C874.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C8B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C968.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001C9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/create_yz_rotation_matrix.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CB0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CB4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CB9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/create_xy_rotation_matrix.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CCBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CCFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CD4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/create_z_rotation_matrix.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CE30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CE68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CEB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/create_y_rotation_matrix.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CF90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001CFC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D014.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D0B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D200.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D264.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D2DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D34C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D3D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D514.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D6A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D800.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001D934.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001DA48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001DB54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001DDE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001DF68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001E000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001E104.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001E300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/lbreflect/func_8001E344.s") diff --git a/src/main/lbvector.c b/src/main/lbvector.c new file mode 100644 index 000000000..949410491 --- /dev/null +++ b/src/main/lbvector.c @@ -0,0 +1,315 @@ +// vector utility + +#include +#include +#include "types.h" +#include "lbvector.h" + +extern f32 sinf(f32); +extern f32 cosf(f32); +extern f32 tanf(f32); +extern f32 acosf(f32); + +f32 lbvector_Normalize(Vector *arg0) { + f32 vecMag = sqrtf((arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z)); + if (vecMag == 0.0f) { + return 0.0f; + } + arg0->x *= 1.0f / vecMag; + arg0->y *= 1.0f / vecMag; + arg0->z *= 1.0f / vecMag; + return vecMag; +} + +f32 lbvector_Len(Vector *arg0) { + return sqrtf((arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z)); +} + +Vector *lbvector_Add(Vector *arg0, Vector *arg1) { + arg0->x = arg0->x + arg1->x; + arg0->y = arg0->y + arg1->y; + arg0->z = arg0->z + arg1->z; + return arg0; +} + +Vector *lbvector_Sub(Vector *arg0, Vector *arg1) { + arg0->x = arg0->x - arg1->x; + arg0->y = arg0->y - arg1->y; + arg0->z = arg0->z - arg1->z; + return arg0; +} + +Vector *lbvector_Diff(Vector *arg0, Vector *arg1, Vector *arg2) { + arg0->x = arg1->x - arg2->x; + arg0->y = arg1->y - arg2->y; + arg0->z = arg1->z - arg2->z; + return arg0; +} + +void vec3_sub_normalize(Vector *arg0, Vector *arg1, Vector *arg2) { + arg0->x = arg1->x - arg2->x; + arg0->y = arg1->y - arg2->y; + arg0->z = arg1->z - arg2->z; + lbvector_Normalize(arg0); +} + +Vector *lbvector_Scale(Vector *arg0, f32 arg1) { + arg0->x = arg0->x * arg1; + arg0->y = arg0->y * arg1; + arg0->z = arg0->z * arg1; + return arg0; +} + +Vector *lbvector_Shrink(Vector *arg0, f32 arg1) { + if (arg1 != 0.0f) { + arg0->x = arg0->x / arg1; + arg0->y = arg0->y / arg1; + arg0->z = arg0->z / arg1; + } + return arg0; +} + +Vector *func_80018EEC(Vector *arg0, Vector *arg1, f32 arg2) { + arg0->x += (arg1->x * arg2); + arg0->y += (arg1->y * arg2); + arg0->z += (arg1->z * arg2); + return arg0; +} + +void func_80018F34(Vector *arg0, f32 arg1, Vector *arg2, f32 arg3) { + arg0->x *= arg1; + arg0->y *= arg1; + arg0->z *= arg1; + arg0->x += (arg2->x * arg3); + arg0->y += (arg2->y * arg3); + arg0->z += (arg2->z * arg3); + lbvector_Normalize(arg0); +} + +f32 lbvector_Angle(Vector *arg0, Vector *arg1) { + f32 vecMagProduct = lbvector_Len(arg0) * lbvector_Len(arg1); + + if (vecMagProduct != 0.0f) { + f32 vecCosDiff = VEC_DOT(arg0, arg1) / vecMagProduct; + // limit result to -1 < x < 1 + if (1.0f < vecCosDiff) { + vecCosDiff = 1.0f; + } + if (vecCosDiff < -1.0f) { + vecCosDiff = -1.0f; + } + return acosf(vecCosDiff); + } + // at least one of the vectors is a zero vector + else return 0.0f; +} + +// I'm sorry, this function is too beautiful to not align like this +Vector *lbvector_Rotate(Vector *arg0, s32 axis, f32 angle) { + f32 xResult, yResult, zResult; + f32 sinAngle = sinf(angle); + f32 cosAngle = cosf(angle); + + switch (axis) { + case AXIS_X: + xResult = arg0->x; + yResult = (arg0->y * cosAngle) - (arg0->z * sinAngle); + zResult = (arg0->y * sinAngle) + (arg0->z * cosAngle); + break; + case AXIS_Y: + xResult = (arg0->x * cosAngle) + (arg0->z * sinAngle); + yResult = arg0->y; + zResult = (arg0->z * cosAngle) - (arg0->x * sinAngle); + break; + case AXIS_Z: + xResult = (arg0->x * cosAngle) - (arg0->y * sinAngle); + yResult = (arg0->x * sinAngle) + (arg0->y * cosAngle); + zResult = arg0->z; + break; + } + arg0->x = xResult; + arg0->y = yResult; + arg0->z = zResult; + return arg0; +} + +Vector *vec3_negate(Vector *arg0) { + arg0->x = -arg0->x; + arg0->y = -arg0->y; + arg0->z = -arg0->z; + return arg0; +} + +GLOBAL_ASM("asm/nonmatchings/main/lbvector/func_800191F8.s") + +// granularly negates components of a vector +Vector *lbvector_Negate(Vector *arg0, s32 flag) { + if (flag & AXIS_X) { + arg0->x = -arg0->x; + } + if (flag & AXIS_Y) { + arg0->y = -arg0->y; + } + if (flag & AXIS_Z) { + arg0->z = -arg0->z; + } + return arg0; +} + +// _super_ granularly negates components of a vector +// also unused :( +Vector *func_800193C8(Vector *arg0, u32 flags) { + do { + if (flags & 0x40) { + if ((flags & 1) && (arg0->x < 0.0f)) { + arg0->x = -arg0->x; + } else if ((flags & 8) && (arg0->x > 0.0f)) { + arg0->x = -arg0->x; + } + if ((flags & 2) && (arg0->y < 0.0f)) { + arg0->y = -arg0->y; + } else if ((flags & 0x10) && (0.0f < arg0->y)) { + arg0->y = -arg0->y; + } + if ((flags & 4) && (arg0->z < 0.0f)) { + arg0->z = -arg0->z; + break; + } + if (flags & 0x20) { + if (0.0f < arg0->z) { + arg0->z = -arg0->z; + break; + } + } + } else { + if ((flags & 1) && (0.0f < arg0->x)) { + arg0->x = -arg0->x; + } else if (flags & 8) { + if (arg0->x < 0.0f) { + arg0->x = -arg0->x; + } + } + if ((flags & 2) && (0.0f < arg0->y)) { + arg0->y = -arg0->y; + } else if (flags & 0x10) { + if (arg0->y < 0.0f) { + arg0->y = -arg0->y; + } + } + if (flags & 4) { + if (0.0f < arg0->z) { + arg0->z = -arg0->z; + break; + } + } + if ((flags & 0x20) && (arg0->z < 0.0f)) { + arg0->z = -arg0->z; + } + } + } while (0); + + return arg0; +} + +Vector *func_800195D8(Vector *arg0, Vector *arg1) { + f32 temp_f0; + + temp_f0 = VEC_DOT(arg1, arg0) * -2.0f; + arg0->x += (arg1->x * temp_f0); + arg0->y += (arg1->y * temp_f0); + arg0->z += (arg1->z * temp_f0); + return arg0; +} + +Vector *func_80019648(Vector *arg0, Vector *arg1) { + f32 temp_f0; + + temp_f0 = VEC_DOT(arg1, arg0); + if (temp_f0 < 0.0f) { + temp_f0 *= -2.0f; + arg0->x += (arg1->x * temp_f0); + arg0->y += (arg1->y * temp_f0); + arg0->z += (arg1->z * temp_f0); + } + return arg0; +} + +// Returns 1 if the two vectors are less than 180 degrees apart, +// -1 if they are more than 180 degrees apart, +// and 0 if they are perpendicular. +s32 vec3_compare_directions(Vector *arg0, Vector *arg1) { + f32 dot; + + dot = (arg1->x * arg0->x) + (arg1->y * arg0->y) + (arg1->z * arg0->z); + if (dot != 0.0f) { + return (dot < 0.0f ? -1 : 1); + } + else { + return 0; + } +} + +Vector *vec3_normalized_cross_product(Vector *v0, Vector *v1, Vector *result) { + result->x = (v0->y * v1->z) - (v0->z * v1->y); + result->y = (v0->z * v1->x) - (v0->x * v1->z); + result->z = (v0->x * v1->y) - (v0->y * v1->x); + return (lbvector_Normalize(result) != 0.0f) ? result : NULL; +} + +// Subtracts arg0 from arg2, and runs the same check as vec3_compare_directions on the result and arg1 +s32 vec3_subtract_compare_directions(Vector *arg0, Vector *arg1, Vector *arg2) { + f32 dot; + + dot = (arg1->x * (arg2->x - arg0->x)) + (arg1->y * (arg2->y - arg0->y)) + (arg1->z * (arg2->z - arg0->z)); + if (dot != 0.0f) { + return (dot < 0.0f ? -1 : 1); + } + else { + return 0; + } +} + +// gets the magnitude of the difference of 2 vectors +f32 lbvector_DiffLen(Vector *v0, Vector *v1) { + Vector result; + + result.x = v1->x - v0->x; + result.y = v1->y - v0->y; + result.z = v1->z - v0->z; + return lbvector_Len(&result); +} + +// Takes the cross product of (arg1 - arg0) and (arg2 - arg0), then +// does the difference of cross dot arg3 and cross dot arg0, then +// takes the absolute value of that difference and divides by the magnitude of the cross product + +// abs((((arg1 - arg0) cross (arg2 - arg0)) dot arg3) - (((arg1 - arg0) cross (arg2 - arg0)) dot arg0)) / magnitude((arg1 - arg0) cross (arg2 - arg0)) +f32 func_800198C0(Vector *arg0, Vector *arg1, Vector *arg2, Vector *arg3) { + f32 dz1; + f32 dy1; + f32 dx1; + f32 dz2; + f32 dy2; + f32 dx2; + f32 crossx; + f32 crossy; + f32 crossz; + f32 crossdotarg0_neg; + f32 numerator; + + dx1 = (arg1->x - arg0->x); + dy1 = (arg1->y - arg0->y); + dz1 = (arg1->z - arg0->z); + + dx2 = (arg2->x - arg0->x); + dy2 = (arg2->y - arg0->y); + dz2 = (arg2->z - arg0->z); + + crossx = (dy1 * dz2) - (dz1 * dy2); + crossy = (dz1 * dx2) - (dx1 * dz2); + crossz = (dx1 * dy2) - (dy1 * dx2); + + crossdotarg0_neg = -((arg0->x * crossx) + (crossy * arg0->y) + (crossz * arg0->z)); + numerator = ABSF(((arg3->x * crossx) + (crossy * arg3->y) + (crossz * arg3->z)) + crossdotarg0_neg); + return numerator / sqrtf((crossx * crossx) + (crossy * crossy) + (crossz * crossz)); +} diff --git a/src/main/lbvector.h b/src/main/lbvector.h new file mode 100644 index 000000000..1e089a8b3 --- /dev/null +++ b/src/main/lbvector.h @@ -0,0 +1,59 @@ +#ifndef LBVECTOR_H +#define LBVECTOR_H + +#define AXIS_X 1 +#define AXIS_Y 2 +#define AXIS_Z 4 + +f32 vec3_dot_product(Vector *, Vector *); + +extern f32 vec3_mag_square(Vector *); +#define LBVECTOR_MAG(x, y, z) sqrtf(((x)*(x))+((y)*(y))+((z)*(z))) +#define VEC_MAG_2(v) ((v->x * v->x) + (v->y * v->y) + (v->z * v->z)) +#define VEC_DOT(v, w) ((v->x * w->x) + (v->y * w->y) + (v->z * w->z)) + +#define VEC_DOT_FIRST_ARG_NEGATE(v, w) ((-v->x * w->x) + (-v->y * w->y) + (-v->z * w->z)) + +#define VEC_SUB(result, a, b)\ +result.x = a.x - b.x;\ +result.y = a.y - b.y;\ +result.z = a.z - b.z; + +#define VECPTR_SUB(result, a, b)\ +result.x = a->x - b->x;\ +result.y = a->y - b->y;\ +result.z = a->z - b->z; + +#define VEC_ADD(result, a, b)\ +result.x = a.x + b.x;\ +result.y = a.y + b.y;\ +result.z = a.z + b.z; + + +#define VEC_MAG_SQUARE(x, y, z)\ +(x*x)+(y*y)+(z*z) + +#define VEC_MAG_SQUARE(v)\ +(v.x*v.x)+(v.y*v.y)+(v.z*v.z) + +#define IS_ZERO_VECTOR(v) (v.x == 0.0f && v.y == 0.0f && v.z == 0.0f) + +Vector *lbvector_Add(Vector *arg0, Vector *arg1); +Vector *lbvector_Sub(Vector *arg0, Vector *arg1); +Vector *lbvector_Diff(Vector *arg0, Vector *arg1, Vector *arg2); +void vec3_sub_normalize(Vector *arg0, Vector *arg1, Vector *arg2); +Vector *lbvector_Scale(Vector *arg0, f32 arg1); +Vector *lbvector_Shrink(Vector *arg0, f32 arg1); +Vector *func_80018EEC(Vector *arg0, Vector *arg1, f32 arg2); +void func_80018F34(Vector *arg0, f32 arg1, Vector *arg2, f32 arg3); +f32 lbvector_Angle(Vector *arg0, Vector *arg1); +Vector *lbvector_Rotate(Vector *arg0, s32 axis, f32 angle); +Vector *lbvector_Negate(Vector *arg0, s32 flag); +Vector *func_800193C8(Vector *arg0, u32 flags); +Vector *func_800195D8(Vector *arg0, Vector *arg1); +Vector *func_80019648(Vector *arg0, Vector *arg1); +s32 vec3_compare_directions(Vector *arg0, Vector *arg1); +s32 vec3_subtract_compare_directions(Vector *arg0, Vector *arg1, Vector *arg2); +f32 func_800198C0(Vector *arg0, Vector *arg1, Vector *arg2, Vector *arg3); + +#endif // LBVECTOR_H diff --git a/src/main/localsched.h b/src/main/localsched.h new file mode 100644 index 000000000..e68071b2e --- /dev/null +++ b/src/main/localsched.h @@ -0,0 +1,124 @@ +#ifndef SYS_SCHED_H +#define SYS_SCHED_H + +#include +#include +#include + +enum SCTaskType { + SC_TASK_TYPE_GFX = 1, + SC_TASK_TYPE_AUDIO = 2, + SC_TASK_TYPE_ADD_CLIENT = 3, + SC_TASK_TYPE_VI = 4, + SC_TASK_TYPE_FRAMEBUFFERS = 5, + SC_TASK_TYPE_GFX_END = 6, + SC_TASK_TYPE_NOP = 7, + SC_TASK_TYPE_RDP_BUFFER = 8, + SC_TASK_TYPE_CUSTOM_BUFFERING = 9, + SC_TASK_TYPE_DEFAULT_BUFFERING = 10, + SC_TASK_TYPE_11 = 11 +}; + +enum SCTaskState { + SC_TASK_STATE_0 = 0, + SC_TASK_STATE_QUEUED = 1, + SC_TASK_STATE_RUNNUNG = 2, + SC_TASK_STATE_PRIORITY_PENDING = 3, + SC_TASK_STATE_SUSPENDING = 4, + SC_TASK_STATE_SUSPENDED = 5, + SC_TASK_STATE_STOPPED = 6 +}; + +struct SCTaskInfo; + +typedef s32 (*SCTaskCallback)(struct SCTaskInfo*); + +typedef struct SCClient { + /* 0x00 */ struct SCClient* next; + /* 0x04 */ OSMesgQueue* mq; +} SCClient; // size = 0x8 + +typedef struct SCTaskInfo { + /* 0x00 */ s32 type; // SCTaskType + /* 0x04 */ s32 priority; + /* 0x08 */ s32 state; // SCTaskState + /* 0x0C */ struct SCTaskInfo* next; + /* 0x10 */ struct SCTaskInfo* prev; + /* 0x14 */ SCTaskCallback fnCheck; // if set, the task is not executed until this function returns TRUE + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 retVal; + /* 0x20 */ OSMesgQueue* mq; +} SCTaskInfo; // size == 0x24 + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x28 */ OSTask task; + /* 0x68 */ u32* unk68; + /* 0x6C */ s32* fb; + /* 0x70 */ s32 fbIdx; + /* 0x74 */ s32 unk74; + /* 0x78 */ s32 rdpBufSize; + /* 0x7C */ s32 unk7C; + /* 0x80 */ u32 taskId; + /* 0x84 */ s32 unk_84; +} SCTaskGfx; // size = 0x84 + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x28 */ OSTask task; +} SCTaskAudio; // size = 0x68 + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x24 */ SCClient* client; +} SCTaskAddClient; // size == 0x28 + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x24 */ s32 width; + /* 0x28 */ s32 height; + /* 0x2C */ s32 flags; + /* 0x30 */ s16 edgeOffsetLeft; + /* 0x32 */ s16 edgeOffsetRight; + /* 0x34 */ s16 edgeOffsetTop; + /* 0x36 */ s16 edgeOffsetBottom; +} SCTaskVi; // size == 0x38 + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x24 */ void* unk24[3]; // frame buffer pointers +} SCTaskFb; // size == 0x30 + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x24 */ void* fb; + /* 0x28 */ u32 taskId; +} SCTaskGfxEnd; // size == 0x2C + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x24 */ void* buffer; + /* 0x28 */ s32 size; +} SCTaskRDPBuffer; // size >= 0x2C + +typedef struct { + /* 0x00 */ SCTaskInfo info; + /* 0x24 */ OSMesgQueue* unk24; +} SCTaskType9; // size >= 0x28 + +extern s32 scBeforeReset; +extern u64 scUnknownU64; +extern OSMesgQueue scTaskQueue; +extern u32 scUnknownInt; +extern u32 scTimeSpentAudio; +extern u32 scTimeSpentGfx; + +void scAddClient(SCClient* client, OSMesgQueue* mq, OSMesg* msg, u32 count); +void scExecuteBlocking(SCTaskInfo* task); +s32 func_80000B84(SCTaskInfo* t); +void scRemovePostProcessFunc(void); +s32 scCheckGfxTaskDefault(SCTaskGfx*); +void scMain(void* arg); +void scSetPostProcessFunc(void (*fn)(void*)); + +#endif \ No newline at end of file diff --git a/src/main/main.c b/src/main/main.c new file mode 100644 index 000000000..e18792cf1 --- /dev/null +++ b/src/main/main.c @@ -0,0 +1,155 @@ +#include +#include + +#include "types.h" +#include "main.h" +#include "segments.h" +#include "contpad.h" + +struct Overlay ovl1Def = OVERLAY(ovl1); + +u32 D_8003DC94 = 0; + +#define SETUP_STACK_AND_START_THREAD(thread, stack) {\ + stack[7] = STACK_TOP_MAGIC;\ + osStartThread(&thread);\ +} + +// .bss +u64 gEntryStack[ENTRY_STACK_LEN_U64]; // Stack pointer set to this by EntryPoint + +OSThread gIdleThread; + u64 idleThreadStack[IDLE_THREAD_STACK_LEN_U64]; + +OSThread gMainThread; + u64 gMainThreadStack[0x80]; // Stack for gMainThread + +OSThread gAudioThread; + u64 gAudioThreadStack[0xC0]; // Stack for gAudioThread + +OSThread gGameThread; + u64 gGameThreadStack[MAIN_THREAD_STACK_LEN_U64]; + +OSThread gControllerThread; + u64 gThread6Stack[0x100]; // Stack for gControllerThread + +u8 gRSPBootUcode[0x100]; // Boot ucode + +u8 gSPImemOkay; +u8 gSPDmemOkay; +OSMesg D_80048A04; +OSMesgQueue gThreadInitializedMQ; + +OSMesg piMesgBuffer[NUM_PI_MESSAGES]; +OSMesgQueue piMesgQueue; + +void *D_80048B00; +u32 pad13[0x1C]; // ? + +extern OSPiHandle *gRomHandle; + + +OSThread *unused_get_main_thread(void) { + return &gGameThread; +} + +u64 *unused_get_main_thread_stack(void) { + return gGameThreadStack; +} + +u16 unused_get_main_thread_stack_length(void) { + return MAIN_THREAD_STACK_LEN; +} + +#define SP_IMEM 0xA4001000 + +void check_sp_imem(void) { + gSPImemOkay = (HW_REG(SP_IMEM, u32) == 0x17D7) ? 1 : 0; +} + +#define SP_DMEM 0xA4000000 + +void check_sp_dmem(void) { + gSPDmemOkay = (HW_REG(SP_DMEM, s32) == -1) ? 1 : 0; +} + +extern void fatal_printf(const char *fmt, ...); + +void thread_crash_stack_overflow(s32 threadNum) { + fatal_printf("thread stack overflow id = %d\n", threadNum); + while (1); +} + +void func_80000510(void) { + if (gEntryStack[7] != STACK_TOP_MAGIC) { + thread_crash_stack_overflow(0); + } + if (idleThreadStack[7] != STACK_TOP_MAGIC) { + thread_crash_stack_overflow(1); + } + if (gMainThreadStack[7] != STACK_TOP_MAGIC) { + thread_crash_stack_overflow(3); + } + if (gGameThreadStack[7] != STACK_TOP_MAGIC) { + thread_crash_stack_overflow(5); + } +} + +extern void osCreateViManager(OSPri x); +extern void func_80002EBC(void); // Initializes a PI Handle +extern void init_dma_message_queue(void); +extern void dma_read(u32 x, void *y, u32 z); +extern void scThreadMain(void *); +extern void auThreadMain(void *); +void dma_overlay_load(struct Overlay *); +void func_800076D0(); +void game_tick(s32); +void crash_screen_start_thread(); + +extern OSPiHandle *osCartRomInit(void); + +void thread5_game(UNUSED void *arg) { + osCreateViManager(0xFE); + gRomHandle = osCartRomInit(); + func_80002EBC(); + osCreatePiManager(OS_PRIORITY_PIMGR, &piMesgQueue, &piMesgBuffer[0], NUM_PI_MESSAGES); + init_dma_message_queue(); + dma_read(0xB0000B70, gRSPBootUcode, sizeof(gRSPBootUcode)); + check_sp_imem(); + check_sp_dmem(); + osCreateMesgQueue(&gThreadInitializedMQ, &D_80048A04, 1); + + osCreateThread(&gMainThread, 3, scThreadMain, NULL, &gMainThreadStack[0x80], 120); + SETUP_STACK_AND_START_THREAD(gMainThread, gMainThreadStack); + osRecvMesg(&gThreadInitializedMQ, NULL, OS_MESG_BLOCK); + + osCreateThread(&gAudioThread, 4, auThreadMain, NULL, &gAudioThreadStack[0xC0], 110); + SETUP_STACK_AND_START_THREAD(gAudioThread, gAudioThreadStack); + osRecvMesg(&gThreadInitializedMQ, NULL, OS_MESG_BLOCK); + + osCreateThread(&gControllerThread, 6, contMain, NULL, &gThread6Stack[0x100], 115); + SETUP_STACK_AND_START_THREAD(gControllerThread, gThread6Stack); + osRecvMesg(&gThreadInitializedMQ, NULL, OS_MESG_BLOCK); + + func_800076D0(); + dma_overlay_load(&ovl1Def); + game_tick(0); +} + +void thread1_idle(void *arg) { + crash_screen_start_thread(); + osCreateThread(&gGameThread, 5, thread5_game, arg, &gGameThreadStack[MAIN_THREAD_STACK_LEN_U64], 50); + gGameThreadStack[7] = STACK_TOP_MAGIC; + if (D_8003DC94 == 0) { + osStartThread(&gGameThread); + } + osSetThreadPri(NULL, OS_PRIORITY_IDLE); + while (1); +} + +void cboot(void) { + gEntryStack[7] = STACK_TOP_MAGIC; + osInitialize(); + osCreateThread(&gIdleThread, 1, thread1_idle, &D_80048B00, &idleThreadStack[IDLE_THREAD_STACK_LEN_U64], OS_PRIORITY_APPMAX); + SETUP_STACK_AND_START_THREAD(gIdleThread, idleThreadStack); +} diff --git a/src/main/main.h b/src/main/main.h new file mode 100644 index 000000000..97ac94e4b --- /dev/null +++ b/src/main/main.h @@ -0,0 +1,21 @@ +#ifndef MAIN_H +#define MAIN_H + +#include + +#define ENTRY_STACK_LEN 0x200 + +#define IDLE_THREAD_STACK_LEN 0x100 +#define MAIN_THREAD_STACK_LEN 0x4000 + +#define ENTRY_STACK_LEN_U64 (ENTRY_STACK_LEN / sizeof(u64)) +#define IDLE_THREAD_STACK_LEN_U64 (IDLE_THREAD_STACK_LEN / sizeof(u64)) +#define MAIN_THREAD_STACK_LEN_U64 (MAIN_THREAD_STACK_LEN / sizeof(u64)) + +#define NUM_PI_MESSAGES 50 + +#define STACK_TOP_MAGIC 0x00000000FEDCBA98 + +extern OSMesgQueue gThreadInitializedMQ; + +#endif diff --git a/src/main/math.c b/src/main/math.c new file mode 100644 index 000000000..96b4430b8 --- /dev/null +++ b/src/main/math.c @@ -0,0 +1,210 @@ +#include "common.h" +#include "math.h" + +u8 mathDetRNGVals[0x400] = { + 0x2B, 0xE6, 0xDB, 0xB9, 0xB1, 0xF3, 0x53, 0x81, 0x37, 0x01, 0x7F, 0x44, 0x23, 0x3C, 0x11, 0xD0, + 0x48, 0x80, 0xD2, 0x15, 0x6A, 0x70, 0x9B, 0x9E, 0x27, 0x51, 0xB0, 0x4B, 0x6A, 0xDB, 0x1E, 0xFF, + 0x2D, 0xBC, 0x5B, 0x38, 0x6D, 0xCA, 0xAA, 0xF5, 0xCB, 0x42, 0x56, 0x96, 0x0F, 0x28, 0x6A, 0x59, + 0x08, 0x08, 0xB5, 0x1B, 0xA4, 0xEC, 0xAD, 0x8B, 0x7E, 0xD9, 0x6F, 0x4E, 0x8E, 0x40, 0x92, 0xA2, + 0x7F, 0x27, 0x88, 0x8D, 0x65, 0x5B, 0x3A, 0xF6, 0xA2, 0x41, 0xC8, 0xA6, 0x4A, 0xA6, 0xDE, 0x28, + 0x8C, 0x48, 0xD7, 0x90, 0x9B, 0xAB, 0xAB, 0x73, 0x9A, 0x44, 0x6F, 0x73, 0xF7, 0xE4, 0x15, 0x04, + 0xE6, 0xFF, 0xD8, 0xCD, 0xE7, 0xA9, 0x1D, 0x56, 0x4B, 0xEE, 0xD5, 0xBE, 0x32, 0x93, 0xCF, 0x7F, + 0x39, 0x4D, 0xA8, 0x15, 0x32, 0xF7, 0x68, 0x67, 0x9B, 0x6F, 0xD6, 0x84, 0x30, 0xE3, 0xDE, 0x52, + 0x5C, 0x09, 0x34, 0x54, 0xAB, 0x76, 0x03, 0x5A, 0xDE, 0xE0, 0xE4, 0xA0, 0x49, 0xAF, 0x0B, 0x7B, + 0x54, 0x2C, 0x82, 0xBC, 0xF4, 0xCE, 0xA4, 0x0A, 0x99, 0x42, 0x5C, 0xD0, 0x67, 0xAC, 0x46, 0x1C, + 0x05, 0x09, 0x4C, 0x87, 0x64, 0x61, 0x5D, 0x57, 0x4E, 0x13, 0x39, 0x67, 0x7D, 0x02, 0x26, 0x2A, + 0x04, 0x49, 0xAE, 0xC3, 0x69, 0x7B, 0x52, 0xEC, 0x7D, 0xA7, 0x45, 0x0F, 0xB4, 0x12, 0xAE, 0x44, + 0xA5, 0x1A, 0x22, 0xBC, 0xF3, 0xD0, 0x35, 0x3A, 0x50, 0x43, 0xEB, 0x94, 0x66, 0x9D, 0x85, 0xBB, + 0x0C, 0x02, 0xD9, 0x0B, 0xC5, 0xE8, 0xB2, 0x1D, 0x1A, 0x20, 0x66, 0x25, 0xAE, 0xF9, 0x33, 0xEF, + 0xD8, 0x1F, 0xA1, 0xDF, 0x68, 0xFB, 0xB0, 0xC5, 0x91, 0xA5, 0x24, 0x8D, 0xCC, 0xC1, 0x06, 0xA2, + 0x5D, 0xFD, 0x50, 0x45, 0xE6, 0x75, 0x4A, 0x5E, 0x02, 0xB7, 0x6C, 0xFE, 0x81, 0xB8, 0x93, 0x8C, + 0x4C, 0x29, 0x1F, 0xB1, 0x9A, 0xFA, 0x85, 0x23, 0xCE, 0x43, 0x04, 0x76, 0x5B, 0x14, 0xAF, 0x32, + 0xDA, 0xF7, 0x48, 0xBF, 0x0C, 0x3F, 0x30, 0x6D, 0x86, 0x2C, 0xE2, 0xA3, 0x31, 0x0D, 0xFF, 0xD3, + 0xF0, 0x76, 0x7B, 0x89, 0xED, 0xAA, 0x97, 0x0E, 0x45, 0xB3, 0x5B, 0xAB, 0x92, 0xB5, 0x79, 0xD3, + 0xCC, 0xFA, 0x4C, 0x7E, 0xA0, 0x25, 0x1A, 0xED, 0x56, 0xF4, 0xBE, 0xCA, 0xF2, 0xD7, 0x00, 0x6A, + 0xF3, 0x62, 0xC0, 0xBF, 0xB3, 0x56, 0x46, 0x50, 0x91, 0x69, 0x65, 0x5C, 0xC2, 0xDB, 0xE1, 0x8E, + 0x79, 0x03, 0xD9, 0xAC, 0xED, 0x10, 0xBB, 0x5E, 0x8B, 0xC1, 0xE5, 0xD4, 0xF1, 0xD7, 0x78, 0x6E, + 0x4D, 0x44, 0x01, 0x80, 0xDC, 0xB1, 0x0A, 0x97, 0x72, 0x1E, 0x5D, 0xB4, 0x99, 0xC0, 0xB0, 0x20, + 0x04, 0x39, 0xF6, 0xC1, 0xF7, 0x2B, 0x3D, 0x45, 0x59, 0xEC, 0x53, 0x4F, 0x9A, 0x86, 0xE5, 0x06, + 0x55, 0x80, 0x40, 0x9C, 0x86, 0x83, 0x90, 0x2D, 0x9B, 0xD1, 0xEF, 0xB9, 0x68, 0xDC, 0x93, 0x1D, + 0xC2, 0x6C, 0xB6, 0xE2, 0xCF, 0x28, 0x10, 0xB6, 0x16, 0x52, 0x33, 0x60, 0xDB, 0x82, 0x41, 0xD0, + 0xFD, 0x47, 0x1C, 0x35, 0x58, 0x94, 0x58, 0xE5, 0xBB, 0x58, 0xA2, 0x4C, 0x64, 0xCE, 0xCA, 0x94, + 0x13, 0x47, 0x6F, 0xA7, 0xF8, 0x5E, 0xC4, 0x3B, 0x76, 0x85, 0x01, 0x61, 0x26, 0x13, 0x28, 0x23, + 0x52, 0xFB, 0x19, 0x89, 0x35, 0xEA, 0xDD, 0x88, 0xE7, 0xBE, 0xA9, 0x2F, 0xD5, 0x82, 0x9C, 0x51, + 0x7F, 0x51, 0x29, 0x31, 0xDA, 0xF9, 0xFA, 0x2A, 0x06, 0xC2, 0xE3, 0x14, 0xD5, 0xEC, 0x79, 0xE9, + 0xDD, 0x75, 0x72, 0x37, 0x84, 0xFE, 0x7D, 0x72, 0x8E, 0xCD, 0xF5, 0xC3, 0xA8, 0xBA, 0xD8, 0xC6, + 0xD4, 0x42, 0x0B, 0xEE, 0x1B, 0xE0, 0xFE, 0xF0, 0xD7, 0xA6, 0xC6, 0x22, 0x12, 0x25, 0x49, 0x81, + 0xC0, 0x9F, 0x33, 0x9F, 0x38, 0xB7, 0x3C, 0x38, 0x42, 0xE2, 0xCB, 0xA9, 0x17, 0x03, 0x4E, 0xD3, + 0xF5, 0xE9, 0x77, 0x0E, 0xA8, 0x08, 0x3D, 0x47, 0x86, 0x98, 0xDA, 0x20, 0xD6, 0x9F, 0x7D, 0xFC, + 0xEE, 0xD6, 0x14, 0x5F, 0xFC, 0x5F, 0x46, 0xDF, 0xF2, 0x87, 0x39, 0x19, 0xA1, 0x62, 0x65, 0xA7, + 0x51, 0x64, 0x20, 0x7E, 0x77, 0xFD, 0xC9, 0xA7, 0x80, 0x5F, 0xFB, 0x41, 0xA0, 0xBD, 0x9D, 0x83, + 0xFC, 0xDF, 0xF0, 0xE3, 0x05, 0x60, 0xA6, 0xBB, 0xD9, 0xB0, 0x59, 0x43, 0xFF, 0xD1, 0x30, 0x7C, + 0xB2, 0xAF, 0x8D, 0x8C, 0xC7, 0x53, 0xF1, 0x47, 0x92, 0x38, 0xA3, 0x57, 0x9C, 0x0A, 0x72, 0x95, + 0x4A, 0x7C, 0xE4, 0xBF, 0x84, 0x49, 0x15, 0x2E, 0x2D, 0x0C, 0x68, 0x7C, 0x3B, 0x84, 0xEF, 0x05, + 0x1C, 0x78, 0x78, 0x2E, 0x6B, 0x11, 0x1D, 0x27, 0x3D, 0x87, 0x61, 0x1B, 0x3C, 0x93, 0x5A, 0x99, + 0xE8, 0x89, 0x95, 0xD2, 0xE1, 0x3B, 0x0C, 0x99, 0x11, 0x9F, 0x67, 0x3C, 0xC7, 0x98, 0xF2, 0x8B, + 0xCD, 0x21, 0x66, 0x19, 0x73, 0x96, 0xEB, 0xAA, 0x89, 0xCB, 0x4B, 0x8F, 0x33, 0xA5, 0x74, 0x4B, + 0x2F, 0xA1, 0x2A, 0x55, 0x48, 0x5A, 0xAD, 0x13, 0x0A, 0x43, 0xB4, 0xFA, 0xD5, 0x3F, 0xAC, 0x79, + 0x85, 0xD6, 0x9E, 0x9D, 0x60, 0x73, 0x74, 0xB2, 0x98, 0xE1, 0xBA, 0xB2, 0x6B, 0x29, 0xEB, 0x71, + 0x7B, 0xF2, 0x40, 0x37, 0x12, 0x90, 0x1F, 0x9D, 0x62, 0x1E, 0xAE, 0x6C, 0x3A, 0x8B, 0xCB, 0x1E, + 0x71, 0xBD, 0x2C, 0x9C, 0xBE, 0x8E, 0x10, 0x98, 0x70, 0xD4, 0x11, 0x4F, 0x07, 0x2F, 0x8F, 0x09, + 0x57, 0xE8, 0x0D, 0x3E, 0xC2, 0xDC, 0xA1, 0xF5, 0x6C, 0x46, 0x24, 0x26, 0x16, 0x8A, 0xEA, 0xED, + 0x1F, 0x00, 0x74, 0x00, 0x18, 0x2F, 0xF6, 0xCC, 0xC6, 0x02, 0x78, 0xC7, 0xB8, 0x2C, 0x2A, 0xE3, + 0x91, 0xD4, 0xFC, 0xF4, 0xCF, 0x7A, 0x3D, 0xC3, 0x14, 0xCC, 0x3F, 0xA0, 0xDE, 0x22, 0x0D, 0x1A, + 0x6D, 0xBD, 0xD1, 0x27, 0xBA, 0x6D, 0x08, 0x4D, 0x50, 0x07, 0xE7, 0x6B, 0x71, 0x36, 0x8C, 0x35, + 0x18, 0x2B, 0xFD, 0xA8, 0x74, 0x7A, 0xB9, 0x0E, 0x3B, 0x5D, 0x17, 0xBF, 0xB3, 0x3A, 0x00, 0x83, + 0xEF, 0x26, 0xF6, 0x2D, 0x31, 0xF9, 0x9E, 0xC1, 0xC9, 0x58, 0xE7, 0xC7, 0x41, 0x71, 0x36, 0x07, + 0xB7, 0x63, 0x29, 0xFB, 0x06, 0x63, 0x05, 0x0B, 0xF0, 0x88, 0x1B, 0x6B, 0x4F, 0xB8, 0xD8, 0x75, + 0x34, 0x70, 0x21, 0x92, 0xE2, 0x95, 0xC6, 0x70, 0x63, 0xDA, 0xEA, 0xB4, 0x77, 0xBC, 0xCF, 0x3E, + 0xC9, 0xE0, 0xC4, 0x65, 0xE0, 0xC5, 0x40, 0xEA, 0xC8, 0xF1, 0xF8, 0xD3, 0x34, 0x32, 0x54, 0x61, + 0x5F, 0xAD, 0x6E, 0x34, 0x17, 0xA3, 0x2E, 0xB3, 0xA3, 0xC3, 0x5C, 0xD2, 0x54, 0x16, 0x5A, 0x55, + 0xAC, 0x94, 0xAD, 0x53, 0xAA, 0x96, 0xCA, 0xEE, 0x64, 0x30, 0xB7, 0x87, 0x82, 0x36, 0xF1, 0xDD, + 0x31, 0x69, 0xCD, 0xA9, 0x91, 0xA5, 0x18, 0xC5, 0xF9, 0xE4, 0x8F, 0x97, 0x90, 0xE6, 0xCE, 0x23, + 0xB8, 0x59, 0x0D, 0xB1, 0x95, 0x4E, 0x2E, 0xB5, 0x8A, 0x57, 0x7C, 0xC9, 0x77, 0x88, 0xC4, 0x21, + 0x7A, 0xFE, 0x75, 0x83, 0x81, 0x63, 0x10, 0x3E, 0xB6, 0x0F, 0x7E, 0x36, 0x5E, 0x62, 0x6E, 0xD2, + 0x55, 0x19, 0x4F, 0x16, 0xC4, 0xBA, 0xA4, 0xAF, 0xE9, 0xB9, 0x0E, 0x25, 0x9A, 0xF8, 0x09, 0x0F, + 0x03, 0x12, 0xBD, 0x7A, 0xB6, 0xE9, 0x3E, 0x37, 0x24, 0x8A, 0xF8, 0x97, 0xF3, 0xE8, 0x4D, 0xE5, + 0x4A, 0x60, 0x3F, 0xA4, 0x2B, 0x24, 0xC0, 0xDC, 0x17, 0x66, 0x69, 0x21, 0xB5, 0x8F, 0x8D, 0x6E, + 0x96, 0x07, 0xF4, 0xD1, 0x1C, 0xC8, 0xE1, 0x18, 0xDD, 0xEB, 0x22, 0x01, 0x9E, 0xDF, 0xC8, 0x8A, +}; + +u16 mathDetRNGSeed = 0x00000000; +s32 mathRNGSeed = 0x00000001; + +extern f32 sinf(f32 a); +extern f32 cosf(f32 a); +extern f32 sqrtf(f32 a); + +f32 tanf(f32 x) { + return sinf(x) / cosf(x); +} + +f32 atanf(f32 yDivX) { + f32 yDivX2; + f32 result; + s32 phi_v0; + + if (yDivX == 0.0f) return 0.0f; + + phi_v0 = 1; + + if (yDivX > 1.0f) { + yDivX = 1.0f / yDivX; + } else if (yDivX < -1.0f) { + yDivX = 1.0f / yDivX; + phi_v0 = 2; + } else { + phi_v0 = 0; + } + yDivX2 = yDivX * yDivX; + result = (yDivX2 / (yDivX2 / (yDivX2 / (yDivX2 / (yDivX2 / (yDivX2 / -0.1081067473f + -44.57191849f) + -0.161908105f) + -15.77401829f) + -0.555569768f) + -3.000003099f) + 1) * yDivX; + switch (phi_v0) { + case 0: return result; + case 1: return (M_PIF/2) - result; + case 2: return (-M_PIF/2) - result; + default: return; + } +} + +f32 atan2f(f32 y, f32 x) { + f32 yDivX; + s32 sign; + UNUSED s32 phi_v0_2; + + if (0.0f < x) { + return atanf(y / x); + } + if (x < 0.0f) { + yDivX = y / x; + sign = ((y < 0.0f) ? -1 : 1); + + return ((M_PIF) - atanf(ABSF(yDivX))) * sign; + } + if (y != 0.0f) { + return ((y < 0.0f) ? -1 : 1) * (M_PIF/2); + } else return 0.0f; +} + +f32 asinf(f32 x) { + if (0.9999899864f < x) { + return M_PIF/2; + } + if (x < -0.9999899864f) { + return -M_PIF/2; + } + return atanf(x / sqrtf(1.0f - x * x)); +} + +f32 acosf(f32 x) { + if (0.9999899864f < x) { + return 0.0f; + } + if (x < -0.9999899864f) { + return M_PIF; + } + return (M_PIF/2) - atanf(x / sqrtf(1.0f - x * x)); +} + +f32 cscf(f32 x) { + return 1.0f / sinf(x); +} + +f32 secf(f32 x) { + return 1.0f / cosf(x); +} + +f32 cotf(f32 x) { + return 1.0f / tanf(x); +} + +void set_soft_rng_seed(s32 arg0) { + mathDetRNGSeed = arg0 & 0x3FF; +} + +u16 get_soft_rng_seed(void) { + return mathDetRNGSeed; +} + +u16 random_soft_u16(void) { + return mathDetRNGVals[mathDetRNGSeed = (++mathDetRNGSeed & 0x3FF)]; +} + +f32 random_soft_f32(void) { + return mathDetRNGVals[mathDetRNGSeed = (++mathDetRNGSeed & 0x3FF)] / 256.f; +} + +s32 random_soft_s32_range(s32 arg0) { + return mathDetRNGVals[mathDetRNGSeed = (++mathDetRNGSeed & 0x3FF)] * arg0 / 256; +} + +void set_hard_rng_seed(s32 arg0) { + mathRNGSeed = arg0; +} + +s32 get_rng_seed(void) { + return mathRNGSeed; +} + +u16 random_u16(void) { + return (mathRNGSeed = (mathRNGSeed * 0x343FD) + 0x269EC3) >> 0x10; +} + +f32 random_f32(void) { + return ((mathRNGSeed = (mathRNGSeed * 0x343FD) + 0x269EC3) >> 0x10 & 0xffff) / 65536.f; +} + +s32 random_s32_range(s32 arg0) { + return (((mathRNGSeed = (mathRNGSeed * 0x343FD) + 0x269EC3)) >> 0x10 & 0xffff) * arg0 / 65536; +} + +u8 random_u8(void) { + return random_u16(); +} + +f32 random_f32_2(void) { + return ((mathRNGSeed = (mathRNGSeed * 0x343FD) + 0x269EC3) >> 0x10 & 0xffff) / 65536.f; +} + +s32 random_u16_range(s32 arg0) { + return random_u16() * arg0 / 65536; +} diff --git a/src/main/math.h b/src/main/math.h new file mode 100644 index 000000000..d0c933075 --- /dev/null +++ b/src/main/math.h @@ -0,0 +1,9 @@ +#ifndef _MATH_H_ +#define _MATH_H_ + +f32 atanf(f32); +f32 asinf(f32); +f32 atan2f(f32, f32); + + +#endif // _MATH_H_ diff --git a/src/main/memory_layer.c b/src/main/memory_layer.c new file mode 100644 index 000000000..ed5d8cec2 --- /dev/null +++ b/src/main/memory_layer.c @@ -0,0 +1,40 @@ +// ml: memory layer? + +#include + +#include "GObj.h" + +void fatal_printf(const char*, ...); + +// unused? +void mlReset(struct DynamicBuffer *arg0) { + arg0->top = arg0->poolStart; +} + +void *mlAlloc(struct DynamicBuffer *arg0, u32 size, u32 alignment) { + void *ret; + u32 tmp; + + if (alignment != 0) { + tmp = alignment - 1; + ret = (void*)(((u32)arg0->top + tmp) & ~tmp); + } else { + ret = arg0->top; + } + tmp = (u32) ret + size; + arg0->top = (void*)tmp; + if ((u32) arg0->poolEnd < tmp) { + fatal_printf("ml : alloc overflow #%d\n", arg0->id); + while (1); + } + return ret; +} + +void mlSetup(struct DynamicBuffer *tracker, u32 id, void *start, u32 size) { + tracker->id = id; + tracker->top = start; + tracker->poolStart = start; + tracker->poolEnd = (void*)((s32) start + size); + bzero(start, size); +} + diff --git a/src/main/object_helpers.c b/src/main/object_helpers.c new file mode 100644 index 000000000..409308dde --- /dev/null +++ b/src/main/object_helpers.c @@ -0,0 +1,77 @@ +#include "common.h" +#include "object_manager.h" +#include "crash_screen.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B3E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B448.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B4D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B57C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B63C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B65C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B6B4.s") + +void ohSleep(s32 frames) { + if (omCurrentProc->payload.thread->objStack->stack[7] != STACK_TOP_MAGIC) { + fatal_printf("gobjthread stack over gobjid = %d\n", omCurrentProc->gobj->objId); + } + + while (frames != 0) { + osSendMesg(&HS64_GObjProcMesgQ, (OSMesg)1, OS_MESG_NOBLOCK); + osStopThread(NULL); + frames--; + } +} + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B78C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B7C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B7D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B7F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B830.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B8C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B950.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B988.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000B9FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BA2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BA5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BA8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BAEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BBE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BC34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BCA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BD3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_helpers/func_8000BDF0.s") diff --git a/src/main/object_manager.c b/src/main/object_manager.c new file mode 100644 index 000000000..301ef54f7 --- /dev/null +++ b/src/main/object_manager.c @@ -0,0 +1,1238 @@ +#include "common.h" +#include "crash_screen.h" +#include "object_manager.h" +#include "code_11720.h" + +// data + early rodata +s32 D_8003DE50 = 10000000; + +u32 D_8003DE54 = 0x00000000; + +f32 D_8003DE58[7] = { + 0.0f, 0.0f, 30.0f, 4.0f / 3.0f, 100.0f, 12800.0f, 1.0f +}; + +f32 D_8003DE74[8] = { + 0.0f, -160.0f, 160.0f, -120.0f, 120.0f, 100.0f, 12800.0f, 1.0f +}; + +f32 D_8003DE94[3][3] = { + { 0.0f, 0.0f, 0.0f }, + { 1500.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 1.0f } +}; + +u32 D_8003DEB8 = 0x00000000; + +f32 D_8003DEBC[4] = { + 0.0f, 0.0f, 0.0f, 0.0f +}; + +f32 D_8003DECC[5] = { + 0.0f, 0.0f, 0.0f, 0.0f, 1.0f +}; + +f32 D_8003DEE0[5] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f +}; + +f32 D_8003DEF4[4] = { + 0.0f, 1.0f, 1.0f, 1.0f +}; + +// bss +struct GObjThread *gGObjThreadHead; // 0x8004A540 +u32 gGObjThreadCount; +u32 omActiveThreadStacks; +u32 gNewEntityStackSize; // 0x8004A54C +void (*D_8004A550)(struct ObjStack *); +struct GObjThreadStack* gGObjThreadStackHead; // 0x8004A554 +void (*omProcEndCallback)(struct GObjProcess *); +struct GObjProcess *gGObjProcessHead; // 0x8004A55C +struct GObjProcess *omGObjProcList[4]; // 0x8004A560, probably length 4 +u32 gGObjProcessCount; +// 0x8004A574? +GObj *omGObjListHead[32]; // probably length 32 based on loop asm +void* omGObjListTail[32]; // also length 32? lines up with next symbol +GObj *gGObjHead; +// 0x8004A67C? file boundary? +struct GObj* omGObjListDlHead[33]; // length 33? +struct GObj* omGObjListDlTail[33]; // length 33? +u32 gGObjCount; +struct OMMtx *gOMMtxHead; +u32 gOMMtxCount; +void (*D_8004A798)(); +struct AObj *gAObjHead; +u32 gAObjCount; +struct MObj* gMObjHead; +u32 gMObjCount; +struct DObj* gDObjHead; +u32 gDObjCount; +u32 D_8004A7B4; +u32 D_8004A7B8; +struct Camera* gCameraHead; +u32 gCameraCount; +GObj *omCurrentObj, *D_8004A7C8, *D_8004A7CC; +struct GObjProcess *omCurrentProc; +s32 D_8004A7D4; +OSMesg D_8004A7D8; +// 0x8004A7DC? +OSMesgQueue HS64_GObjProcMesgQ; +struct UnkStruct8004A7F8 D_8004A7F8[32]; // length 32 based on loop asm in func_8000AAE0 (unrolled) +u8 D_8004AA78[0x18]; + +// externs for their own headers +extern u32 D_8003DCA8; +extern void HS64_AObjLinkToAnimation(struct Animation *anim, struct AObj *stack); + + +struct GObjThread *HS64_GObjThreadPop(void) { + struct GObjThread *ret; + if (gGObjThreadHead == NULL) { + fatal_printf("om : couldn't get GObjThread\n"); + while (TRUE); + } + ret = gGObjThreadHead; + gGObjThreadHead = gGObjThreadHead->next; + gGObjThreadCount++; + return ret; +} + +void HS64_GObjThreadRelease(struct GObjThread *th) { + th->next = gGObjThreadHead; + gGObjThreadHead = th; + gGObjThreadCount--; +} + +struct GObjThreadStack *HS64_GetGObjThreadStack(void) { + struct GObjThreadStack *ret; + + if (gGObjThreadStackHead == NULL) { + fatal_printf("om : couldn't get GObjThreadStack\n"); + while (TRUE); + } + ret = gGObjThreadStackHead; + gGObjThreadStackHead = gGObjThreadStackHead->next; + omActiveThreadStacks++; + return ret; +} + +void HS64_ReleaseGObjThreadStack(struct GObjThreadStack *st) { + st->next = gGObjThreadStackHead; + gGObjThreadStackHead = st; + omActiveThreadStacks--; +} + +struct GObjProcess *HS64_GObjProcessPop(void) { + struct GObjProcess *ret; + + if (gGObjProcessHead == NULL) { + fatal_printf("om : couldn't get GObjProcess\n"); + while (TRUE); + } + ret = gGObjProcessHead; + gGObjProcessHead = gGObjProcessHead->next; + gGObjProcessCount++; + return ret; +} + +void func_800080C0(struct GObjProcess *); +#pragma GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_800080C0.s") + +void HS64_GObjProcessRelease(struct GObjProcess *proc) { + proc->next = gGObjProcessHead; + gGObjProcessHead = proc; + gGObjProcessCount--; +} + +void HS64_GObjProcessReleasePri(struct GObjProcess *proc) { + if (proc->prevPriProc != 0) { + proc->prevPriProc->nextPriProc = proc->nextPriProc; + } else { + omGObjProcList[proc->pri] = proc->nextPriProc; + } + if (proc->nextPriProc != 0) { + proc->nextPriProc->prevPriProc = proc->prevPriProc; + } +} + +void func_80008210(struct GObjProcess *proc) { + GObj *o; + + o = proc->gobj; + HS64_GObjProcessReleasePri(proc); + if (proc->prev != 0) { + proc->prev->next = proc->next; + } else { + o->procListHead = proc->next; + } + if (proc->next != 0) { + proc->next->prev = proc->prev; + } else { + o->procListTail = proc->prev; + } +} + +struct GObjProcess *HS64_GetCurrentProc(void) { + return omCurrentProc; +} + +// Unused +struct ObjStack *HS64_GetGObjProcessStack(struct GObjProcess *proc) { + if (proc == NULL) { + proc = omCurrentProc; + } + if (proc != NULL && (proc->kind == 0 || proc->kind == 2)) { + return proc->payload.thread->objStack; + } + return NULL; +} + +// Unused +s32 HS64_GetGObjProcessStackSize(struct GObjProcess *proc) { + if (proc == NULL) { + proc = omCurrentProc; + } + if (proc != NULL) { + if (proc->kind == 0 || proc->kind == 2) { + return proc->payload.thread->objStackSize; + } + } + return 0; +} + +// Unused +void HS64_SetProcEndCallback(void (*cb)(struct GObjProcess *)) { + omProcEndCallback = cb; +} + +// Unused +s32 HS64_CountGObjs(void) { + GObj *gobj; + s32 listCount; + + gobj = gGObjHead; + listCount = 0; + while (gobj != NULL) { + gobj = gobj->next; + listCount = listCount + 1; + } + return listCount + gGObjCount; +} + +GObj *HS64_GObjPop(void) { + GObj *head; + + if (gGObjHead == NULL) { + return NULL; + } + head = gGObjHead; + gGObjHead = gGObjHead->next; + gGObjCount++; + return head; +} + +void HS64_GObjRelease(GObj *o) { + o->next = gGObjHead; + gGObjHead = o; + gGObjCount--; +} + +void func_800083CC(GObj *o, GObj *prevObj) { + o->prev = prevObj; + if (prevObj) { + o->next = prevObj->next; + prevObj->next = o; + } else { + o->next = omGObjListHead[o->link]; + omGObjListHead[o->link] = o; + } + if (o->next) { + o->next->prev = o; + } else { + omGObjListTail[o->link] = o; + } +} + +void func_80008434(GObj *o) { + GObj *tail; + + tail = omGObjListTail[o->link]; + while (tail != 0 && tail->pri < o->pri) { + tail = tail->prev; + } + func_800083CC(o, tail); +} + +void func_800084A0(GObj *o) { + GObj *head; + GObj *tail; + + head = omGObjListHead[o->link]; + while (head != 0 && o->pri < head->pri) { + head = head->next; + } + if (head != 0) { + tail = head->prev; + } else { + tail = omGObjListTail[o->link]; + } + func_800083CC(o, tail); +} + +void func_80008528(GObj *arg0) { + if (arg0->prev != 0) { + arg0->prev->next = arg0->next; + } else { + omGObjListHead[arg0->link] = arg0->next; + } + if (arg0->next != 0) { + arg0->next->prev = arg0->prev; + return; + } + omGObjListTail[arg0->link] = arg0->prev; +} + +void omGInsertDLLink(GObj *o, GObj *highprio_o) { + o->prevDL = highprio_o; + if (highprio_o != NULL) { + o->nextDL = highprio_o->nextDL; + highprio_o->nextDL = o; + } else { + o->nextDL = omGObjListDlHead[o->dl_link]; + omGObjListDlHead[o->dl_link] = o; + } + if (o->nextDL != NULL) { + o->nextDL->prevDL = o; + return; + } + omGObjListDlTail[o->dl_link] = o; +} + +void omGSetupCameraDLLink(GObj *arg0) { + GObj *i = NULL; + + for (i = omGObjListDlTail[arg0->dl_link]; + i != 0 && i->renderPriority < arg0->renderPriority; + i = i->prevDL + ); + + omGInsertDLLink(arg0, i); +} + +void omGSetupDLLink_HighestPrioMax(GObj *arg0) { + GObj *phi_v0; + GObj *phi_a1; + + phi_v0 = omGObjListDlHead[arg0->dl_link]; + while (phi_v0 != 0 && arg0->renderPriority < phi_v0->renderPriority) { + phi_v0 = phi_v0->nextDL; + } + if (phi_v0 != 0) { + phi_a1 = phi_v0->prevDL; + } else { + phi_a1 = omGObjListDlTail[arg0->dl_link]; + } + omGInsertDLLink(arg0, phi_a1); +} + +void omGDLLinkDestructor(GObj *arg0) { + if (arg0->prevDL != 0) { + arg0->prevDL->nextDL = arg0->nextDL; + } else { + omGObjListDlHead[arg0->dl_link] = arg0->nextDL; + } + if (arg0->nextDL != 0) { + arg0->nextDL->prevDL = arg0->prevDL; + } else { + omGObjListDlTail[arg0->dl_link] = arg0->prevDL; + } +} + +struct OMMtx *HS64_OMMtxPop(void) { + struct OMMtx *tmp; + + if (gOMMtxHead == 0) { + fatal_printf("om : couldn't get OMMtx\n"); + while (TRUE); + } + tmp = gOMMtxHead; + gOMMtxHead = gOMMtxHead->next; + gOMMtxCount++; + return tmp; +} + +void HS64_OMMtxRelease(struct OMMtx *arg0) { + arg0->next = gOMMtxHead; + gOMMtxHead = arg0; + gOMMtxCount--; +} + +struct AObj *HS64_AObjPop(void) { + struct AObj *toReturn; + + if (gAObjHead == 0) { + fatal_printf("om : couldn't get AObj\n"); + while (TRUE); + } + toReturn = gAObjHead; + gAObjHead = gAObjHead->next; + gAObjCount++; + return toReturn; +} + +void HS64_AObjLinkToAnimation(struct Animation *anim, struct AObj *aobj) { + aobj->next = anim->aobj; + anim->aobj = aobj; +} + +void func_80008840(struct Animation *arg0, struct AObj *aobj) { + aobj->next = arg0->unk90; + arg0->unk90 = aobj; +} + + +// TODO: is this _really_ for Animations? +void func_80008850(struct Animation *anim, struct AObj *aobj) { + aobj->next = anim->aobj; + anim->aobj = aobj; +} + +void HS64_AObjRelease(struct AObj *arg0) { + arg0->next = gAObjHead; + gAObjCount--; + gAObjHead = arg0; +} + +struct MObj* HS64_MObjPop(void) { + struct MObj *temp_v0; + + if (gMObjHead == 0) { + fatal_printf("om : couldn't get MObj\n"); + while (TRUE); + } + temp_v0 = gMObjHead; + gMObjHead = gMObjHead->next; + gMObjCount++; + return temp_v0; +} + +void HS64_MObjPush(struct MObj *arg0) { + arg0->next = gMObjHead; + gMObjHead = arg0; + gMObjCount--; +} + +struct DObj *HS64_DObjPop(void) { + struct DObj *temp_v0; + + if (gDObjHead == 0) { + fatal_printf("om : couldn't get DObj\n"); + while (TRUE); + } + temp_v0 = gDObjHead; + gDObjHead = gDObjHead->unk0; + gDObjCount++; + return temp_v0; +} + +void HS64_DObjPush(struct DObj *arg0) { + arg0->unk0 = gDObjHead; + gDObjHead = arg0; + gDObjCount--; +} + +struct Camera *HS64_CameraPop(void) { + struct Camera *temp_v0; + + if (gCameraHead == 0) { + fatal_printf("om : couldn't get Camera\n"); + while (TRUE); + } + temp_v0 = gCameraHead; + gCameraHead = gCameraHead->unk0; + gCameraCount++; + return temp_v0; +} + +void HS64_CameraPush(struct Camera *arg0) { + arg0->unk0 = gCameraHead; + gCameraHead = arg0; + gCameraCount--; +} + +struct GObjProcess *func_80008A18(GObj *arg0, void (*arg1)(void), u8 kind, u32 pri) { + struct GObjProcess *sp24; + struct GObjThread *oThread; + struct GObjProcess *oProcess; + + if (arg0 == NULL) { + arg0 = omCurrentObj; + } + oProcess = HS64_GObjProcessPop(); + if (pri >= 4) { + fatal_printf("om : GObjProcess's priority is bad value\n"); + while (1); + } + oProcess->pri = pri; + oProcess->kind = kind; + oProcess->unk15 = 0; + oProcess->gobj = arg0; + oProcess->entryPoint = arg1; + switch (kind) { + case HS64_GOBJPROC_KIND_GOBJTHREAD: + oThread = HS64_GObjThreadPop(); + oProcess->payload.thread = oThread; + oThread->objStack = &HS64_GetGObjThreadStack()->stack; + oThread->objStackSize = gNewEntityStackSize; + osCreateThread(&oThread->thread, D_8003DE50++, arg1, arg0, &(oThread->objStack->stack[gNewEntityStackSize / 8]), 0x33); + oThread->objStack->stack[7] = STACK_TOP_MAGIC; + if (D_8003DE50 >= 20000000) { + D_8003DE50 = 10000000; + } + break; + case HS64_GOBJPROC_KIND_CALLBACK: + oProcess->payload.thread = arg1; + break; + default: + fatal_printf("om : GObjProcess's kind is bad value\n"); + while (1); + + } + func_800080C0(oProcess); + return oProcess; +} + +// a somewhat more granular version of func_80008A18 +struct GObjProcess *func_80008B94(GObj *arg0, struct GObjThread *entry, u32 pri, s32 arg3, struct ObjStack *arg4, u32 stackSize) { + struct GObjProcess *oProcess; + struct GObjThread *oThread; + s32 phi_a1; + + if (arg0 == 0) { + arg0 = omCurrentObj; + } + oProcess = HS64_GObjProcessPop(); + if (pri >= 4) { + fatal_printf("om : GObjProcess's priority is bad value\n"); + while (1); + } + oProcess->pri = pri; + oProcess->unk15 = 0; + oProcess->gobj = arg0; + oProcess->entryPoint = entry; + oThread = HS64_GObjThreadPop(); oProcess->payload.thread = oThread; + if (stackSize == 0) { + oProcess->kind = HS64_GOBJPROC_KIND_GOBJTHREAD; + oThread->objStack = &HS64_GetGObjThreadStack()->stack; + oThread->objStackSize = gNewEntityStackSize; + phi_a1 = (arg3 != -1) ? arg3 : D_8003DE50++; + osCreateThread(&oThread->thread, phi_a1, entry, arg0, &(oThread->objStack->stack[gNewEntityStackSize / 8]), 0x33); + oThread->objStack->stack[7] = STACK_TOP_MAGIC; + if (D_8003DE50 >= 20000000) { + D_8003DE50 = 10000000; + } + } else { + oProcess->kind = HS64_GOBJPROC_KIND_OSTHREAD; + oThread->objStackSize = stackSize; + oThread->objStack = arg4; + phi_a1 = (arg3 != -1) ? arg3 : D_8003DE50++; + osCreateThread(&oThread->thread, phi_a1, entry, arg0, + ((stackSize / 8) + (u64 *)&arg4->stack), + 0x33); + arg4->stack[7] = STACK_TOP_MAGIC; + if (D_8003DE50 >= 20000000) + D_8003DE50 = 10000000; + } + func_800080C0(oProcess); + return oProcess; +} + +void func_80008DA8(struct GObjProcess *proc) { + void (*temp_v0)(struct GObjProcess *); + u8 temp_v0_4; + void (*temp_v0_3)(struct ObjStack *); + + if ((proc == 0) || (proc == omCurrentProc)) { + D_8004A7D4 = 1; + temp_v0_4 = omCurrentProc->kind; + if (temp_v0_4 == 0 || temp_v0_4 == 2) { + ohSleep(1); + return; + } + } else { + temp_v0 = omProcEndCallback; + if (temp_v0 != 0) { + temp_v0(proc); + } + switch (proc->kind) { + case 0: + osDestroyThread(&proc->payload.thread->thread); + HS64_ReleaseGObjThreadStack(&proc->payload.thread->objStack->stack[0] - 1); // why??? + HS64_GObjThreadRelease(proc->payload.thread); + break; + case 1: + break; + case 2: + osDestroyThread(&proc->payload.thread->thread); + temp_v0_3 = D_8004A550; + if (temp_v0_3 != 0) { + temp_v0_3(proc->payload.thread->objStack); + } + HS64_GObjThreadRelease(proc->payload.thread); + } + func_80008210(proc); + HS64_GObjProcessRelease(proc); + } +} + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80008EC4.s") + +void func_80008EC4(struct DObj *, u8, u8, u32); + +void func_80009628(struct DObj *arg0, u8 arg1, u8 arg2) { + func_80008EC4(arg0, arg1, arg2, arg0->unk56); +} + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80009658.s") + +// Initializes a new AObj with an index +struct AObj *HS64_AObjNew(struct Animation *anim, u8 index) { + struct AObj *toReturn; + + toReturn = HS64_AObjPop(); + toReturn->unk4 = index; + toReturn->unk5 = 0; + toReturn->unk20 = 0; + toReturn->unk1C = 0.0f; + toReturn->unk18 = 0.0f; + toReturn->unk14 = 0.0f; + toReturn->unk10 = 0.0f; + toReturn->unkC = 0.0f; + toReturn->unk8 = 1.0f; + HS64_AObjLinkToAnimation(anim, toReturn); + return toReturn; +} + +void func_8000984C(struct unk8000BE90Func *arg0) { + struct AObj *temp_s1; + struct AObj *phi_s0; + + phi_s0 = arg0->unk6C; + while (phi_s0 != 0) { + temp_s1 = phi_s0->next; + HS64_AObjRelease(phi_s0); + phi_s0 = temp_s1; + } + arg0->unk6C = 0; + arg0->unk74 = -FLT_MAX; +} + +struct AObj *func_800098AC(s32 arg0, u8 index) { + struct AObj *toReturn; + + toReturn = HS64_AObjPop(); + toReturn->unk4 = index; + toReturn->unk5 = 0; + toReturn->unk20 = 0; + toReturn->unk1C = 0.0f; + toReturn->unk18 = 0.0f; + toReturn->unk14 = 0.0f; + toReturn->unk10 = 0.0f; + toReturn->unkC = 0.0f; + toReturn->unk8 = 1.0f; + func_80008840(arg0, toReturn); + return toReturn; +} + +void func_80009918(struct unk80008840 *arg0) { + struct AObj *temp_s1; + struct AObj *phi_s0; + + phi_s0 = arg0->unk90; + while (phi_s0 != 0) { + temp_s1 = phi_s0->next; + HS64_AObjRelease(phi_s0); + phi_s0 = temp_s1; + } + arg0->unk90 = 0; + arg0->unk98 = -FLT_MAX; +} + +struct AObj *func_80009978(struct Animation* arg0, u8 arg1) { + struct AObj *temp_v0; + + temp_v0 = HS64_AObjPop(); + temp_v0->unk4 = arg1; + temp_v0->unk5 = (u8)0; + temp_v0->unk20 = 0; + temp_v0->unk1C = 0.0f; + temp_v0->unk18 = 0.0f; + temp_v0->unk14 = 0.0f; + temp_v0->unk10 = 0.0f; + temp_v0->unkC = 0.0f; + temp_v0->unk8 = 1.0f; + func_80008850(arg0, temp_v0); + return temp_v0; +} + +// Unused? +void func_800099E4(struct Animation *anim) { + struct AObj *tmpnext; + struct AObj *aobj; + + aobj = anim->aobj; + while (aobj != 0) { + tmpnext = aobj->next; + HS64_AObjRelease(aobj); + aobj = tmpnext; + } + anim->aobj = 0; + anim->scale = -FLT_MAX; +} + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80009A44.s") + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80009B5C.s") + +// Not really sure what's going on here +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80009BD4.s") + +struct DObj *func_80009C38(GObj *gobj, u8 *arg1) { + struct DObj *dobj; + struct DObj *temp_v1; + + if (gobj == NULL) { + gobj = omCurrentObj; + } + dobj = HS64_DObjPop(); + + if (gobj->unk3C != NULL) { + temp_v1 = gobj->unk3C; + + while (temp_v1->unk8 != 0) { + temp_v1 = temp_v1->unk8; + } + + temp_v1->unk8 = dobj; + dobj->unkC = temp_v1; + } else { + gobj->kind = 1; + gobj->unk3C = dobj; + dobj->unkC = 0; + } + dobj->gobj = gobj; + dobj->unk14 = 1; + dobj->unk8 = NULL; + dobj->unk10 = NULL; + dobj->unk50 = arg1; + func_80009BD4(dobj); + return dobj; +} + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80009CE8.s") + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80009D5C.s") + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/func_80009DF4.s") + +struct Camera *func_80009F7C(GObj *gobj) { + int i; + struct Camera *cam; + + if (gobj == 0) { + gobj = omCurrentObj; + } + gobj->kind = 3; + cam = HS64_CameraPop(); + + gobj->unk3C = cam; + + cam->gobj = gobj; + + setup_viewport(&cam->viewport); + if (1) { + // stub + } + + cam->unk60 = 0; + + for (i = 0; i < 2; i++) { + cam->unk64[i] = 0; + } + + cam->unk80 = 0; + cam->unk84 = 0; + cam->unk88 = 0; + cam->unk8C = 0; + cam->aobj = NULL; + cam->unk70 = 0; + cam->unk74 = -FLT_MAX; + cam->unk78 = 1.0f; + cam->unk7C = 0.0f; + return cam; +} + +void func_8000A02C(struct Camera *cam) { + struct AObj *aobj; + GObj *gobj; + struct OMMtx *mtx; + int i; + + gobj = cam->gobj; + gobj->kind = 0; + gobj->unk3C = NULL; + + for (i = 0; i < 2; i++) { + mtx = cam->unk64[i]; + + if (mtx != NULL) { + HS64_OMMtxRelease(mtx); + } + } + + // not an easy loop + aobj = cam->aobj; + while (aobj != NULL) { + struct AObj *anext = aobj->next; + + HS64_AObjRelease(aobj); + aobj = anext; + } + + HS64_CameraPush(cam); +} + +GObj *omGAddCommon(u32 id, void (*updateCallback)(void), u8 link, u32 pri) { + GObj *toReturn; + + if (link >= 32) { + fatal_printf("omGAddCommon() : link num over : link = %d : id = %d\n", link, id); + while (1); + } + toReturn = HS64_GObjPop(); + if (toReturn == NULL) { + return NULL; + } + toReturn->objId = id; + toReturn->link = link; + toReturn->pri = pri; + toReturn->onUpdate = updateCallback; + toReturn->procListHead = NULL; + toReturn->procListTail = NULL; + toReturn->flags = 0; + toReturn->kind = 0; + toReturn->unk3C = NULL; + toReturn->dl_link = 0x21; + toReturn->unk40 = 0.0f; + toReturn->unk48 = 0; + toReturn->unk4C = 0; + return toReturn; +} + +GObj *HS64_omMakeGObj(s32 id, void (*func)(void), u8 link, u32 pri) { + GObj *o; + + o = omGAddCommon(id, func, link, pri); + if (o == NULL) { + return NULL; + } else { + func_80008434(o); + return o; + } +} + +GObj *func_8000A1C0(s32 arg0, s32 arg1, u8 arg2, s32 pri) { + GObj *o; + + o = omGAddCommon(arg0, arg1, arg2, pri); + if (o == 0) { + return NULL; + } else { + func_800084A0(o); + return o; + } +} + +GObj *func_8000A200(s32 id, s32 arg1, GObj *arg2) { + GObj *temp_v0; + + temp_v0 = omGAddCommon(id, arg1, arg2->link, arg2->pri); + if (temp_v0 == 0) { + return NULL; + } + func_800083CC(temp_v0, arg2); + return temp_v0; +} + +GObj *func_8000A24C(s32 id, s32 arg1, GObj *arg2) { + GObj *temp_v0; + + temp_v0 = omGAddCommon(id, arg1, arg2->link, arg2->pri); + if (temp_v0 == 0) { + return NULL; + } + func_800083CC(temp_v0, arg2->prev); + return temp_v0; +} + +void func_8000BBE0(GObj *); +void func_8000B870(GObj *); + +void func_8000A29C(GObj *arg0) { + if (arg0 == 0 || arg0 == omCurrentObj) { + D_8004A7D4 = 2; + return; + } + func_8000B870(arg0); + switch (arg0->kind) { + case 1: + func_8000BBE0(arg0); + case 2: + break; + case 3: + func_8000A02C((struct Camera *)arg0->unk3C); + } + if (arg0->dl_link != 0x21) { + omGDLLinkDestructor(arg0); + } + func_80008528(arg0); + HS64_GObjRelease(arg0); +} + +// i genuinely don't know what's going on here +#ifdef NON_MATCHING +void omGMoveCommon(s32 arg0, GObj *gobj, u8 link, u32 pri, GObj *arg4) { + GObjProcess *proc; + + if (link >= 0x20) { + fatal_printf("omGMoveCommon() : link num over : link = %d : id = %d\n", link, gobj->objId); + while (1); + } + if (gobj == NULL) { + gobj = omCurrentObj; + } + proc = gobj->procListHead; + gobj->procListHead = NULL; + gobj->procListTail = 0; + + while (proc != NULL) { + HS64_GObjProcessReleasePri(proc); + proc = proc->next; + } + + func_80008528(gobj); + gobj->link = link; + gobj->pri = pri; + switch (arg0) { /* irregular */ + case 0: + func_80008434(gobj); + break; + case 1: + func_800084A0(gobj); + break; + case 2: + func_800083CC(gobj, arg4); + break; + case 3: + func_800083CC(gobj, arg4->prev); + break; + } + while (proc != NULL) { + func_800080C0(proc); + proc = proc->next; + } +} +#else +GLOBAL_ASM("asm/nonmatchings/main/object_manager/omGMoveCommon.s") +#endif + +void func_8000A498(GObj *arg0, u8 arg1, s32 arg2) { + omGMoveCommon(0, arg0, arg1, arg2, NULL); +} + +void func_8000A4D0(GObj *arg0, u8 arg1, s32 arg2) { + omGMoveCommon(1, arg0, arg1, arg2, NULL); +} + +void func_8000A508(GObj *arg0, GObj *arg1) { + omGMoveCommon(2, arg0, arg1->link, arg1->pri, arg1); +} + +void func_8000A544(GObj *arg0, GObj *arg1) { + omGMoveCommon(3, arg0, arg1->link, arg1->pri, arg1); +} + +void omGLinkObjDLCommon(GObj *arg0, s32 arg1, u8 link, s32 prio, s32 arg4) { + if (link >= 0x20) { + fatal_printf("omGLinkObjDLCommon() : dl_link num over : dl_link = %d : id = %d\n", link, arg0->objId); + while (1); + } + arg0->dl_link = link; + arg0->renderPriority = prio; + arg0->onDraw = arg1; + arg0->unk34 = arg4; + arg0->unkE = D_8003DCA8 - 1; +} + +void func_8000A5FC(GObj *gobj, s32 arg1, u8 link, s32 prio, s32 arg4) { + if (gobj == NULL) { + gobj = omCurrentObj; + } + omGLinkObjDLCommon(gobj, arg1, link, prio, arg4); + omGSetupCameraDLLink(gobj); +} + +void func_8000A640(GObj *arg0, s32 arg1, u8 link, s32 prio, s32 arg4) { + if (arg0 == 0) { + arg0 = omCurrentObj; + } + omGLinkObjDLCommon(arg0, arg1, link, prio, arg4); + omGSetupDLLink_HighestPrioMax(arg0); +} + +void func_8000A684(GObj *arg0, s32 arg1, s32 arg2, GObj *arg3) { + if (arg0 == 0) { + arg0 = omCurrentObj; + } + omGLinkObjDLCommon(arg0, arg1, arg3->dl_link, arg3->renderPriority, arg2); + omGInsertDLLink(arg0, arg3); +} + +void func_8000A6D8(GObj *o, s32 arg1, s32 arg2, GObj *arg3) { + if (o == 0) { + o = omCurrentObj; + } + omGLinkObjDLCommon(o, arg1, arg3->dl_link, arg3->renderPriority, arg2); + omGInsertDLLink(o, arg3->prev); +} + +void func_8000A730(GObj *o, GObjFunc drawCallback, s32 pri, s32 arg3, s32 arg4) { + o->dl_link = 0x20; + o->renderPriority = pri; + o->onDraw = drawCallback; + o->unk30 = arg3; + o->unk34 = arg4; + o->unk38 = 0; + o->unkE = D_8003DCA8 - 1; +} + +void func_8000A764(GObj *o, GObjFunc drawCallback, s32 pri, s32 arg3, s32 arg4) { + if (o == 0) { + o = omCurrentObj; + } + func_8000A730(o, drawCallback, pri, arg3, arg4); + omGSetupCameraDLLink(o); +} + +void func_8000A7A0(GObj *o, s32 arg1, s32 prio, s32 arg3, s32 arg4) { + if (o == 0) { + o = omCurrentObj; + } + func_8000A730(o, arg1, prio, arg3, arg4); + omGSetupDLLink_HighestPrioMax(o); +} + +void func_8000A7DC(GObj *o, s32 arg1, s32 arg2, s32 arg3, GObj *arg4) { + if (o == NULL) { + o = omCurrentObj; + } + + func_8000A730(o, arg1, arg4->renderPriority, arg2, arg3); + omGInsertDLLink(o, arg4); +} + +void func_8000A830(GObj *o, s32 arg1, s32 arg2, s32 arg3, GObj *arg4) { + if (o == NULL) { + o = omCurrentObj; + } + + func_8000A730(o, arg1, arg4->renderPriority, arg2, arg3); + omGInsertDLLink(o, arg4->prev); +} + +void omGMoveObjDL(GObj *o, u8 link, s32 renderPri) { + if (link >= 0x20) { + fatal_printf("omGMoveObjDL() : dl_link num over : dl_link = %d : id = %d\n", link, o->objId); + while (1); + } + omGDLLinkDestructor(o); + o->dl_link = link; + o->renderPriority = renderPri; + omGSetupCameraDLLink(o); +} + +void omGMoveObjDLHead(GObj *o, u8 link, s32 renderPri) { + if (link >= 0x20) { + fatal_printf("omGMoveObjDLHead() : dl_link num over : dl_link = %d : id = %d\n", link, o->objId); + while (1); + } + omGDLLinkDestructor(o); + o->dl_link = link; + o->renderPriority = renderPri; + omGSetupDLLink_HighestPrioMax(o); +} + +void func_8000A980(GObj *o, GObj *arg1) { + omGDLLinkDestructor(o); + o->dl_link = arg1->dl_link; + o->renderPriority = arg1->renderPriority; + omGInsertDLLink(o, arg1); +} + +void func_8000A9C0(GObj *arg0, GObj *arg1) { + omGDLLinkDestructor(arg0); + arg0->dl_link = arg1->dl_link; + arg0->renderPriority = arg1->renderPriority; + omGInsertDLLink(arg0, arg1->prevDL); +} + +void func_8000AA04(GObj *arg0, s32 arg1) { + omGDLLinkDestructor(arg0); + arg0->renderPriority = arg1; + omGSetupCameraDLLink(arg0); +} + +void func_8000AA38(GObj *o, s32 renderPri) { + omGDLLinkDestructor(o); + o->renderPriority = renderPri; + omGSetupDLLink_HighestPrioMax(o); +} + +void func_8000AA6C(GObj *o, GObj *arg1) { + omGDLLinkDestructor(o); + o->renderPriority = arg1->renderPriority; + omGInsertDLLink(o, arg1); +} + +void func_8000AAA4(GObj *arg0, GObj *arg1) { + omGDLLinkDestructor(arg0); + arg0->renderPriority = arg1->renderPriority; + omGInsertDLLink(arg0, arg1->prev); +} + +void func_8000AAE0(void) { + int i; + GObj *obj; + + D_8004A7C8 = NULL; + D_8004A7CC = NULL; + + for (i = 0; i < 32; i++) { + D_8004A7F8[i].unk0 = D_8003DCA8 - 1; + } + + obj = omGObjListDlHead[32]; + while (obj) { + if (!(obj->flags & GOBJ_FLAGS_HIDDEN)) { + D_8003DE54 = 3; + D_8004A7C8 = obj; + obj->onDraw(obj); + D_8003DE54 = 0; + } + obj = obj->nextDL; + } +} + +u32 func_8000ABAC(GObj *gobj) { + u32 temp_a1; + + D_8003DE54 = 1; + omCurrentObj = gobj; + gobj->onUpdate(gobj); + temp_a1 = gobj->next; + omCurrentObj = NULL; + D_8003DE54 = 0; + if (D_8004A7D4 != 0) { + if (D_8004A7D4 != 2) { + D_8004A7D4 = 0; + } else { + D_8004A7D4 = 0; + func_8000A29C(gobj); + } + } + return temp_a1; +} + +// Matches on decomp.me but not locally?????? +#ifdef NON_MATCHING +struct GObjProcess *omGDispatchProc(struct GObjProcess *proc) { + struct GObjProcess *ret; + void (*entry)(GObj *); + + D_8003DE54 = 2; + omCurrentObj = proc->gobj; + omCurrentProc = proc; + + switch (proc->kind) { + case 0: case 2: + osStartThread(&proc->payload.thread->thread); + osRecvMesg(&HS64_GObjProcMesgQ, NULL, 1); + break; + case 1: + proc->payload.callback(proc->gobj); + break; + // case 2: default: break; + } + + ret = proc->prev; + + omCurrentObj = NULL; + omCurrentProc = NULL; + D_8003DE54 = 0; + + switch (D_8004A7D4) { + case 2: + D_8004A7D4 = 0; + while (ret != NULL && ret->gobj == proc->gobj) { + ret = ret->prev; + } + + func_8000A29C(proc->gobj); + break; + case 1: + D_8004A7D4 = 0; + func_80008DA8(proc); + break; + case 0: break; + default: D_8004A7D4 = 0; break; + } + + return ret; +} +#else +GLOBAL_ASM("asm/nonmatchings/main/object_manager/omGDispatchProc.s") +#endif + +void func_8000AD88(void) { + s32 i; + + D_8004A7D4 = 0; + omCurrentObj = NULL; + omCurrentProc = NULL; + for (i = 0; i < 32; i++) { + GObj *tmp = omGObjListHead[i]; + + while (tmp != NULL) { + if (((tmp->flags & 0x40) == 0) && (tmp->onUpdate != NULL)) { + tmp = func_8000ABAC(tmp); + } else { + tmp = tmp->next; + } + } + } + + for (i = 3; i >= 0; i--) { + struct GObjProcess *tmp = omGObjProcList[i]; + + while (tmp != NULL) { + if (tmp->unk15 == 0) { + tmp = omGDispatchProc(tmp); + } else { + tmp = tmp->nextPriProc; + } + } + } +} + +GLOBAL_ASM("asm/nonmatchings/main/object_manager/HS64_omInit.s") diff --git a/src/main/object_manager.h b/src/main/object_manager.h new file mode 100644 index 000000000..a0a602af8 --- /dev/null +++ b/src/main/object_manager.h @@ -0,0 +1,451 @@ +#ifndef __OM_H__ +#define __OM_H__ + +#include +#include + +#include "geo_block_header.h" + +#define STACK_TOP_MAGIC 0x00000000FEDCBA98 + +// todo: keep naming scheme but rename regardless +// uses GObjThreadStack +#define HS64_GOBJPROC_KIND_GOBJTHREAD 0 +// just uses a callback +#define HS64_GOBJPROC_KIND_CALLBACK 1 +// classic stack +#define HS64_GOBJPROC_KIND_OSTHREAD 2 + +struct ObjStack { + // what looks like an mini thread stack, based on the last value in here being set to STACK_TOP_MAGIC + u64 stack[0x20]; +}; + +// if a function that uses GObjThread doesnt match, try this definition +// struct GObjThread { +// struct GObjThread *unk0; +// u32 unk4; +// OSThread *unk8; +// u8 filler[0x1B8 - 0x04 - 0x08]; +// // This might be a u8 pointer +// struct ObjStack *objStack; +// s32 unk1BC; +// }; + +struct UnkStruct800009E8 { + u32 unk0; + OSMesgQueue *unk4; +}; + +struct DynamicBuffer { + u32 id; + void *poolStart; + void *poolEnd; + u32 top; +}; + +extern struct DynamicBuffer gDynamicBuffer1, gDynamicBuffer2; + +struct GObjThread +{ + struct GObjThread *next; // function? + OSThread thread; + struct ObjStack *objStack; + s32 objStackSize; +}; +typedef struct GObjThread GObjThread; + +struct GObjThreadStack { + struct GObjThreadStack *next; + struct GObjThreadStack *prev; + u64 stack[8]; +}; + +typedef struct GObjProcess { + struct GObjProcess *next; + struct GObjProcess *prev; + struct GObjProcess *nextPriProc; + struct GObjProcess *prevPriProc; + /* 0x10 */ u32 pri; + /* 0x14 */ u8 kind; + u8 unk15; + u8 unk16; + u8 unk17; + /* 0x18 */ struct GObj *gobj; + union { + struct GObjThread *thread; + void (*callback)(struct GObj *); + } payload; // 0x1C + /* 0x20 */ void (*entryPoint)(struct GObj *); + u32 *ptr; +} GObjProcess; + +struct OMMtx { + struct OMMtx *next; +}; + +// TODO: is this an existing struct instead of a brand new one? +struct unk80008840 { + u8 padding[0x90]; + struct AObj *unk90; + u32 unk94; + f32 unk98; +}; + +typedef f32 quartic[5]; + +typedef struct { + /* 0x00 */ s8 type; /* 0=linear;1=bezier;2=hermite/6 */ + /* 0x01 */ char unk_01[0x1]; + /* 0x02 */ s16 length; + /* 0x04 */ f32 invSegTime; + /* 0x08 */ Vector *pts; + /* 0x0C */ f32 duration; + /* 0x10 */ f32 *times; + /* 0x14 */ quartic *quartics; +} pathSpline; + +typedef struct { + /* 0x00 */ struct uvOP *next; + /* 0x04 */ s8 value; + /* 0x05 */ s8 op; + /* 0x06 */ char unk_06[0x2]; + /* 0x08 */ f32 ref; + /* 0x0C */ f32 t; + /* 0x10 */ f32 p0; + /* 0x14 */ f32 p1; + /* 0x18 */ f32 v0; + /* 0x1C */ f32 v1; + /* 0x20 */ struct pathSpline *path; +} uvOP; + +typedef struct { + /* 0x00 */ u32 type; + /* 0x04 */ u32 flags; + /* 0x08 */ s32 inc; +} uvState; + +struct MObj { + /* 0x00 */ struct MObj *next; + /* 0x04 */ s32 unk_04; + + struct TextureScroll texScroll; + + /* 0x80 */ u16 texIndex1; + /* 0x82 */ u16 texIndex2; + /* 0x84 */ f32 primLOD; + /* 0x88 */ f32 palIndex; + /* 0x8C */ char unk_8C[0x4]; + /* 0x90 */ uvOP* ops; + /* 0x94 */ uvState* states; + /* 0x98 */ f32 offset; + /* 0x9C */ f32 increment; + /* 0xA0 */ f32 unk_A0; + /* 0xA4 */ char unk_A4[0x4]; +}; // size = 0xA8; + + +struct DObj { + struct DObj *unk0; + struct GObj *gobj; + struct DObj *unk8; + u32 unkC; + struct DObj *unk10; + u32 unk14; + struct DObj *unk18; + u8 filler[0x4C - 0x18 - 0x04]; + u32 unk4C; + u32 unk50; + u8 unk54; + u8 unk55; + u8 unk56; + u8 unk57; + u32 unk58; + u32 unk5C; + u32 unk60; + u32 unk64; + u32 unk68; + u32 unk6C; + u32 unk70; + f32 unk74; + f32 unk78; + f32 unk7C; + struct MObj *unk80; + u32 unk84; +}; + +struct Camera { + struct Camera *unk0; + struct GObj *gobj; + /* 0x08 */ Vp viewport; + u32 unk18; + u32 unk1C; + + u32 unk20; + u32 unk24; + u32 unk28; + u32 unk2C; + + u32 unk30; + u32 unk34; + u32 unk38; + u32 unk3C; + + u32 unk40; + u32 unk44; + u32 unk48; + u32 unk4C; + + u32 unk50; + u32 unk54; + u32 unk58; + u32 unk5C; + + u32 unk60; + struct OMMtx *unk64[2]; + struct AObj *aobj; + u32 unk70; + + // vec? + f32 unk74; + f32 unk78; + f32 unk7C; + + u32 unk80; + u32 unk84; + u32 unk88; + u32 unk8C; +}; + +struct Unk80005A98_2 { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + OSMesgQueue *unk20; + u32 unk24; + OSTask task; + u32 unk68; + u32 unk6C; + u32 unk70; + u32 unk74; + u32 unk78; + u32 unk7C; + u32 unk80; +}; + +// Definitely a DObj +struct Unk80005A98 { + u32 unk0; + u32 unk4; + struct Unk80005A98 *unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + OSMesgQueue *unk20; + u32 unk24; + u32 unk28; + void (*unk2C)(struct Unk80005A98*); + u32 unk30; + u32 unk34; + void* unk38; + u32 unk3C; + void* unk40; + u32 unk44; + u32 unk48; + u32 unk4C; + Gfx *unk50; + u32 unk54; + u32 unk58; + u32 unk5C; + u32 unk60; + u32 unk64; + u32 unk68; + u32 unk6C; + u32 unk70; + u32 unk74; + u32 unk78; + u32 unk7C; + u32 unk80; +}; + +// One of the message types sent on the interrupt message queue +struct InterruptMessageType4 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + s16 unk30; + s16 unk32; + s16 unk34; + s16 unk36; +}; + +// One of the message types sent on the ovl0_2 message queue +struct Ovl0_2_MessageType1 +{ + s32 unk0; + s32 unk4; + s32 unk8; +}; + +// One of the message types sent on the ovl0_2 message queue +struct Ovl0_2_MessageType2 +{ + s32 unk0; + s32 unk4; + s32 unk8; +}; + +// One of the message types sent on the ovl0_2 message queue +struct Ovl0_2_MessageType3 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; +}; + +// One of the message types sent on the ovl0_2 message queue +struct Ovl0_2_MessageType4 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; +}; + +// One of the message types sent on the ovl0_2 message queue +struct Ovl0_2_MessageType6 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; +}; + +// Buffers allocated to hold the master displaylists +struct DLBuffer +{ + Gfx* start; + u32 length; // In bytes +}; + +// One of the message types sent on the interrupt message queue +struct InterruptMessageType5 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; +}; + +// One of the message types sent on the interrupt message queue +struct InterruptMessageTypeB { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; +}; + +extern OSMesgQueue gInterruptMesgQueue; + +#include "GObj.h" +#include "AObj.h" + +struct Camera *func_80009F7C(struct GObj*); + +void func_80009B5C(struct UnkStruct8004A7C4_3C *); + +typedef struct UserData8000BE90 { + s32 unk0; + s32 unk4; + struct UserData8000BE90 *unk8; + s32 unkC; + struct UserData8000BE90 *unk10; + struct UserData8000BE90 *unk14; +} UserData8000BE90; + +UserData8000BE90 *func_8000BE90(struct UserData8000BE90 *data); + +struct UnkStructFunc80007380 { + u32 unk0; + u32 unk4; + u32 unk8; + + // some sort of range that is allocated for gDynamicBuffer2 + void *unkC; + void *unk10; + + u32 unk14; + u32 unk18; + u32 unk1C; + u32 unk20; + u32 unk24; + u32 unk28; + u32 unk2C; + u32 unk30; + u32 unk34; + u32 unk38; + u32 unk3C; + + + u32 unk40; + u32 unk44; + u32 unk48; + u32 unk4C; + u32 unk50; + u32 unk54; + u32 unk58; + u32 unk5C; + u32 unk60; + u32 unk64; + u32 unk68; + u32 unk6C; + u32 unk70; + u32 unk74; + u32 unk78; + u32 unk7C; + u32 unk80; + u32 unk84; + u32 unk88; +}; +void ohSleep(s32); + +// data +extern u32 D_8003DE54; + +// BSS +extern struct GObjProcess *omCurrentProc; +extern OSMesgQueue HS64_GObjProcMesgQ; + +// extern funcs +void func_8000A5FC(struct GObj *gobj, s32 arg1, u8 link, s32 prio, s32 arg4); +struct GObj *HS64_omMakeGObj(s32 id, void (*func)(void), u8 link, u32 pri); + +#endif diff --git a/src/main/rdp_reset.c b/src/main/rdp_reset.c new file mode 100644 index 000000000..30279aaf3 --- /dev/null +++ b/src/main/rdp_reset.c @@ -0,0 +1,9 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/main/rdp_reset/func_80007C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/rdp_reset/setup_viewport.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/rdp_reset/set_scissor_callback.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/rdp_reset/reset_rdp_settings.s") diff --git a/src/main/sched.c b/src/main/sched.c new file mode 100644 index 000000000..7287748f1 --- /dev/null +++ b/src/main/sched.c @@ -0,0 +1,60 @@ +#include "common.h" + +void func_80000900(void) { +} + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000908.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/scAddClient.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000A44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000C54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000CE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000D34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000DC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000E4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000E9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80000F78.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80001774.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_8000189C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80001924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_800019BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80001E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80001FAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80002014.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_8000206C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_800022DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_8000256C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/scThreadMain.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80002AF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80002B70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80002B7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/main/sched/func_80002B88.s") diff --git a/src/main/synthInternals.h b/src/main/synthInternals.h new file mode 100755 index 000000000..6db32235d --- /dev/null +++ b/src/main/synthInternals.h @@ -0,0 +1,336 @@ +/*==================================================================== + * audioInternals.h + * + * Synopsis: + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#ifndef __audioInternals__ +#define __audioInternals__ + +#include + +/* + * filter message ids + */ +enum { + AL_FILTER_FREE_VOICE, + AL_FILTER_SET_SOURCE, + AL_FILTER_ADD_SOURCE, + AL_FILTER_ADD_UPDATE, + AL_FILTER_RESET, + AL_FILTER_SET_WAVETABLE, +/* AL_FILTER_SET_DMA_PROC,*/ +/* AL_FILTER_SKIP_LOOP,*/ + AL_FILTER_SET_DRAM, + AL_FILTER_SET_PITCH, + AL_FILTER_SET_UNITY_PITCH, + AL_FILTER_START, +/* AL_FILTER_SET_DECAY,*/ +/* AL_FILTER_SET_FC,*/ + AL_FILTER_SET_STATE, + AL_FILTER_SET_VOLUME, + AL_FILTER_SET_PAN, + AL_FILTER_START_VOICE_ALT, + AL_FILTER_START_VOICE, + AL_FILTER_STOP_VOICE, + AL_FILTER_SET_FXAMT +}; + +#define AL_MAX_RSP_SAMPLES 160 + +/* + * buffer locations based on AL_MAX_RSP_SAMPLES + */ +#define AL_DECODER_IN 0 +#define AL_RESAMPLER_OUT 0 +#define AL_TEMP_0 0 +#define AL_DECODER_OUT 320 +#define AL_TEMP_1 320 +#define AL_TEMP_2 640 +#define AL_MAIN_L_OUT 1088 +#define AL_MAIN_R_OUT 1408 +#define AL_AUX_L_OUT 1728 +#define AL_AUX_R_OUT 2048 + +/* + * filter types + */ +enum { + AL_ADPCM, + AL_RESAMPLE, + AL_BUFFER, + AL_SAVE, + AL_ENVMIX, + AL_FX, + AL_AUXBUS, + AL_MAINBUS +}; + +typedef struct ALParam_s { + struct ALParam_s *next; + s32 delta; + s16 type; + union { + f32 f; + s32 i; + } data; + union { + f32 f; + s32 i; + } moredata; + union { + f32 f; + s32 i; + } stillmoredata; + union { + f32 f; + s32 i; + } yetstillmoredata; +} ALParam; + +typedef struct { + struct ALParam_s *next; + s32 delta; + s16 type; + s16 unity; /* disable resampler */ + f32 pitch; + s16 volume; + ALPan pan; + u8 fxMix; + s32 samples; + struct ALWaveTable_s *wave; +} ALStartParamAlt; + +typedef struct { + struct ALParam_s *next; + s32 delta; + s16 type; + s16 unity; /* disable resampler */ + struct ALWaveTable_s *wave; +} ALStartParam; + +typedef struct { + struct ALParam_s *next; + s32 delta; + s16 type; + struct PVoice_s *pvoice; +} ALFreeParam; + +typedef Acmd *(*ALCmdHandler)(void *, s16 *, s32, s32, Acmd *); +typedef s32 (*ALSetParam)(void *, s32, void *); + +typedef struct ALFilter_s { + struct ALFilter_s *source; + ALCmdHandler handler; + ALSetParam setParam; + s16 inp; + s16 outp; + s32 type; +} ALFilter; + +void alFilterNew(ALFilter *f, ALCmdHandler h, ALSetParam s, s32 type); + +#define AL_MAX_ADPCM_STATES 3 /* Depends on number of subframes + * per frame and loop length + */ +typedef struct { + ALFilter filter; + ADPCM_STATE *state; + ADPCM_STATE *lstate; + ALRawLoop loop; + struct ALWaveTable_s *table; + s32 bookSize; + ALDMAproc dma; + void *dmaState; + s32 sample; + s32 lastsam; + s32 first; + s32 memin; +} ALLoadFilter; + +void alLoadNew(ALLoadFilter *f, ALDMANew dma, ALHeap *hp); +Acmd *alAdpcmPull(void *f, s16 *outp, s32 byteCount, s32 sampleOffset, Acmd *p); +Acmd *alRaw16Pull(void *f, s16 *outp, s32 byteCount, s32 sampleOffset, Acmd *p); +s32 alLoadParam(void *filter, s32 paramID, void *param); + +typedef struct ALResampler_s { + ALFilter filter; + RESAMPLE_STATE *state; + f32 ratio; + s32 upitch; + f32 delta; + s32 first; + ALParam *ctrlList; + ALParam *ctrlTail; + s32 motion; +} ALResampler; + +typedef struct { + s16 fc; + s16 fgain; + union { + s16 fccoef[16]; + s64 force_aligned; + } fcvec; + POLEF_STATE *fstate; + s32 first; +} ALLowPass; + +typedef struct { + u32 input; + u32 output; + s16 ffcoef; + s16 fbcoef; + s16 gain; + f32 rsinc; + f32 rsval; + s32 rsdelta; + f32 rsgain; + ALLowPass *lp; + ALResampler *rs; +} ALDelay; + +typedef s32 (*ALSetFXParam)(void *, s32, void *); +typedef struct { + struct ALFilter_s filter; + s16 *base; + s16 *input; + u32 length; + ALDelay *delay; + u8 section_count; + ALSetFXParam paramHdl; +} ALFx; + +void alFxNew(ALFx *r, ALSynConfig *c, ALHeap *hp); +Acmd *alFxPull(void *f, s16 *outp, s32 out, s32 sampleOffset, Acmd *p); +s32 alFxParam(void *filter, s32 paramID, void *param); +s32 alFxParamHdl(void *filter, s32 paramID, void *param); + +#define AL_MAX_MAIN_BUS_SOURCES 1 +typedef struct ALMainBus_s { + ALFilter filter; + s32 sourceCount; + s32 maxSources; + ALFilter **sources; +} ALMainBus; + +void alMainBusNew(ALMainBus *m, void *ptr, s32 len); +Acmd *alMainBusPull(void *f, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p); +s32 alMainBusParam(void *filter, s32 paramID, void *param); + +#define AL_MAX_AUX_BUS_SOURCES 8 +#define AL_MAX_AUX_BUS_FX 1 +typedef struct ALAuxBus_s { + ALFilter filter; + s32 sourceCount; + s32 maxSources; + ALFilter **sources; + ALFx fx[AL_MAX_AUX_BUS_FX]; +} ALAuxBus; + +void alAuxBusNew(ALAuxBus *m, void *ptr, s32 len); +Acmd *alAuxBusPull(void *f, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p); +s32 alAuxBusParam(void *filter, s32 paramID, void *param); + +void alResampleNew(ALResampler *r, ALHeap *hp); +Acmd *alResamplePull(void *f, s16 *outp, s32 out, s32 sampleOffset, Acmd *p); +s32 alResampleParam(void *f, s32 paramID, void *param); + +typedef struct ALSave_s { + ALFilter filter; + s32 dramout; + s32 first; +} ALSave; + +void alSaveNew(ALSave *r); +Acmd *alSavePull(void *f, s16 *outp, s32 outCount, s32 sampleOffset, Acmd *p); +s32 alSaveParam(void *f, s32 paramID, void *param); + +typedef struct ALEnvMixer_s { + ALFilter filter; + ENVMIX_STATE *state; + s16 pan; + s16 volume; + s16 cvolL; + s16 cvolR; + s16 dryamt; + s16 wetamt; + u16 lratl; + s16 lratm; + s16 ltgt; + u16 rratl; + s16 rratm; + s16 rtgt; + s32 delta; + s32 segEnd; + s32 first; + ALParam *ctrlList; + ALParam *ctrlTail; + ALFilter **sources; + s32 motion; +} ALEnvMixer; + +void alEnvmixerNew(ALEnvMixer *e, ALHeap *hp); +Acmd *alEnvmixerPull(void *f, s16 *outp, s32 out, s32 sampleOffset, Acmd *p); +s32 alEnvmixerParam(void *filter, s32 paramID, void *param); + + +/* + * heap stuff + */ +typedef struct { + s32 magic; /* check structure integrety */ + s32 size; /* size of this allocated block */ + u8 *file; /* file that this alloc was called from */ + s32 line; /* line that it was called from */ + s32 count; /* heap call number */ + s32 pad0; + s32 pad1; + s32 pad2; /* Make it 32 bytes */ +} HeapInfo; + +#define AL_CACHE_ALIGN 15 + +/* + * synth stuff + */ + +typedef struct PVoice_s { + ALLink node; + struct ALVoice_s *vvoice; + ALFilter *channelKnob; + ALLoadFilter decoder; + ALResampler resampler; + ALEnvMixer envmixer; + s32 offset; +} PVoice; + +/* + * prototypes for private driver functions + */ +ALParam *__allocParam(void); +void __freeParam(ALParam *param); +void _freePVoice(ALSynth *drvr, PVoice *pvoice); +void _collectPVoices(ALSynth *drvr); + +s32 _timeToSamples(ALSynth *ALSynth, s32 micros); +ALMicroTime _samplesToTime(ALSynth *synth, s32 samples); + +#endif + diff --git a/src/ovl0/ovl0_5.h b/src/ovl0/ovl0_5.h deleted file mode 100644 index 7170fd254..000000000 --- a/src/ovl0/ovl0_5.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef VEC_UTILS_H -#define VEC_UTILS_H - -Vector *lbvector_Diff(Vector *, Vector *, Vector *); -Vector *lbvector_Rotate(Vector *arg0, s32 axis, f32 angle); - -#define AXIS_X 1 -#define AXIS_Y 2 -#define AXIS_Z 4 - -f32 vec3_dot_product(Vector *, Vector *); -f32 lbvector_Angle(Vector *, Vector *); - -extern f32 vec3_mag_square(Vector *); -#define LBVECTOR_MAG(x, y, z) sqrtf(((x)*(x))+((y)*(y))+((z)*(z))) -#define VEC_MAG_2(v) ((v->x * v->x) + (v->y * v->y) + (v->z * v->z)) -#define VEC_DOT(v, w) ((v->x * w->x) + (v->y * w->y) + (v->z * w->z)) - -#define VEC_DOT_FIRST_ARG_NEGATE(v, w) ((-v->x * w->x) + (-v->y * w->y) + (-v->z * w->z)) - -#define VEC_SUB(result, a, b)\ -result.x = a.x - b.x;\ -result.y = a.y - b.y;\ -result.z = a.z - b.z; - -#define VECPTR_SUB(result, a, b)\ -result.x = a->x - b->x;\ -result.y = a->y - b->y;\ -result.z = a->z - b->z; - -#define VEC_ADD(result, a, b)\ -result.x = a.x + b.x;\ -result.y = a.y + b.y;\ -result.z = a.z + b.z; - - -#define VEC_MAG_SQUARE(x, y, z)\ -(x*x)+(y*y)+(z*z) - -#define VEC_MAG_SQUARE(v)\ -(v.x*v.x)+(v.y*v.y)+(v.z*v.z) - -#define IS_ZERO_VECTOR(v) (v.x == 0.0f && v.y == 0.0f && v.z == 0.0f) - -#endif \ No newline at end of file diff --git a/src/ovl1/ovl1.c b/src/ovl1/ovl1.c index f8d6b9870..5642557df 100644 --- a/src/ovl1/ovl1.c +++ b/src/ovl1/ovl1.c @@ -1,119 +1,91 @@ -#include -#include +#include "common.h" -#include "unk_structs/D_800D6A08.h" +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009B550.s") -extern s32 D_800D6AE4; -extern s16 D_800D6AEA; -extern s32 D_800D6AEC; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B550_ovl1.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009B5E8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B5E8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009B69C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B69C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009B6F0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B6F0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009B72C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B72C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009B768.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B768.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009B99C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009B99C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BA68.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BA68.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BA74.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BA74.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BC4C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BC4C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BD3C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BD3C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BE04.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BE04.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BE54.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BE54.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BF7C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BF7C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BFA8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BFA8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009BFD4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009BFD4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009C0E4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C0E4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009C154.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C154.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009C18C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C18C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009C1C8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C1C8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009C350.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C350.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009C44C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C44C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009C4E0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009C4E0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009E834.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009E834.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_8009E8F4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_8009E8F4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A043C.s") -extern Gfx* gDisplayListHeads[4]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A0460.s") -void func_800A043C(u32 arg0, u32 arg1) { - func_8009E8F4(arg0, arg1, &gDisplayListHeads[0]); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A0480.s") -void func_800A0460(u32 arg0) { - func_800A043C(arg0, 3); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A04A4.s") -extern u32 D_800D6A14[]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A04B8.s") -void func_800A0480(s32 arg0, u32 arg1) { - if (arg0 > 0) { - if (arg0 < 9) { - D_800D6A14[arg0] = arg1; - } - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A0558.s") -extern s8 D_800BE3E0, D_800BE3E4; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A09AC.s") -void func_800A04A4(u32 arg0, u32 arg1) { - D_800BE3E0 = arg0 & 0xFF; - D_800BE3E4 = arg1 & 0xFF; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A194C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A04B8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A19EC.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A0558.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A1F30.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A09AC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A2024.s") -extern u16 D_800D6AE2; -extern u16 D_800BE3E8, D_800D6AE8; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A194C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A206C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A19EC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A2080.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A1F30.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A22A8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2024.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A22D4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A206C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A2300.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2080.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A238C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A22A8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A2440.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A22D4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A24C4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2300.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A238C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2440.s") - - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A24C4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1/func_800A2550.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1/func_800A2550.s") diff --git a/src/ovl1/ovl1_1.c b/src/ovl1/ovl1_1.c index 12daf4ee0..d195b1393 100644 --- a/src/ovl1/ovl1_1.c +++ b/src/ovl1/ovl1_1.c @@ -1,170 +1,130 @@ -#include -#include -#include -#include "D_8004A7C4.h" -#include "types.h" -#include "ovl0/ovl0_4.h" -#include "ovl0/ovl0_2.h" -#include "ovl0/ovl0_2_5.h" -#include "ovl0/ovl0_6.h" -#include "save_file.h" -u8 ovl1_TamperCheck(void); - -void func_800A6B18(void) ; - - -void load_overlay(u32); - -extern s32 D_800D7288; -extern s32 gGameState; -extern u32 gCurrentLevel; -extern u32 gCurrentWorld; -extern s32 D_800D6B74; -extern s32 D_800D6B60; -extern u32 D_800D6B68; -extern u32 D_800D6B78; -extern u32 D_800BE500; -extern u32 D_800D6B98; -extern s32 D_800BE504, D_800D6B9C; -extern u8 D_800D6B84; -extern u32 D_800BE530; -extern s32 D_800D6F38, D_800D6F3C; -extern u32 D_800BE51C; -extern u32 D_800BE4FC, D_800BE518; -extern u32 D_800BE534; -extern u32 D_800BE520; -extern u32 D_800BE508, D_800BE50C; -extern u32 D_800BE538; -extern u32 D_800BE53C, D_800BE524; -extern u32 D_800BE510; -extern s32 D_800D6BA8; -extern u32 D_800D71E8; - -extern s32 D_800D6B88; -extern s32 gKirbyLives; -extern f32 gKirbyHp; -extern s32 D_800D6E54; -extern f32 D_800D6E58; -extern f32 D_800D6E5C; -extern s32 gKirbyStars; -extern s32 D_800D6B7C; -extern s32 D_800D6B80; -extern s32 D_800D6B44; -extern s32 D_800D6F50; -extern s32 D_800EC9FC; -void func_80154D60_ovl1(u32, u32); - -void load_overlay(u32 ovl); - -void crash_screen_print_gobj_info(struct GObj *gobj) { - crash_screen_printf("gobj id:%d\n", gobj->objId); - crash_screen_printf("df:%x\n", gobj->unk2C); +#include "common.h" +#include "GObj.h" +#include "main/dma.h" +#include "main/object_manager.h" +#include "main/crash_screen.h" + +void crash_screen_print_gobj_info(GObj *o) { + crash_screen_printf("gobj id:%d\n", o->objId); + crash_screen_printf("df:%x\n", o->onDraw); } -extern u32 D_8003DE54; -extern struct GObjProcess *D_8004A7D0; -extern u32 D_80048D88, D_80048D8C, D_80048D90; - OSThread *crash_screen_print_page_3(void) { - OSThread *sp1C; - u8 temp_v1; + OSThread *retThread = NULL; - sp1C = NULL; switch (D_8003DE54) { case 0: crash_screen_printf("SYS\n"); break; case 1: - // B* function crash_screen_printf("BF\n"); - if (D_8004A7C4 != NULL) { - crash_screen_printf("addr:%x\n", D_8004A7C4->unk14); - crash_screen_print_gobj_info(D_8004A7C4); + if (omCurrentObj != NULL) { + crash_screen_printf("addr:%x\n", omCurrentObj->onUpdate); + crash_screen_print_gobj_info(omCurrentObj); } break; case 2: crash_screen_printf("GP\n"); - if (D_8004A7C4 != NULL) { - crash_screen_printf("gobj:%x\n", (u32) D_8004A7C4); - if (D_8004A7D0 != NULL) { - crash_screen_printf("gp:%x\n", (u32) D_8004A7D0); - switch (D_8004A7D0->kind) { + if (omCurrentObj != NULL) { + crash_screen_printf("gobj:%x\n", (u32)omCurrentObj); + if (omCurrentProc != NULL) { + crash_screen_printf("gp:%x\n", (u32)omCurrentProc); + switch (omCurrentProc->kind) { case 0: - crash_screen_printf("gobjthread:%x\n", D_8004A7D0->payload.thread); - crash_screen_printf("stack:%x\n", D_8004A7D0->payload.thread->objStack); - crash_screen_printf("thread pc:%x\n", D_8004A7D0->payload.thread->thread.context.pc); - crash_screen_printf("id:%d\n", D_8004A7D0->payload.thread->thread.id); - crash_screen_printf("ptr:%x\n", D_8004A7D0->entryPoint); - sp1C = &D_8004A7D0->payload.thread->thread; + crash_screen_printf("gobjthread:%x\n", omCurrentProc->payload.thread); + crash_screen_printf("stack:%x\n", omCurrentProc->payload.thread->objStack); + crash_screen_printf("thread pc:%x\n", omCurrentProc->payload.thread->thread.context.pc); + crash_screen_printf("id:%d\n", omCurrentProc->payload.thread->thread.id); + crash_screen_printf("ptr:%x\n", omCurrentProc->entryPoint); + retThread = &omCurrentProc->payload.thread->thread; break; case 1: - crash_screen_printf("func:%x\n", D_8004A7D0->payload.callback); + crash_screen_printf("func:%x\n", omCurrentProc->payload.thread); break; } } - crash_screen_print_gobj_info(D_8004A7C4); + crash_screen_print_gobj_info(omCurrentObj); } break; case 3: crash_screen_printf("DFC\n"); - if (D_8004A7C8 != 0) { - crash_screen_printf("addr:%x\n", D_8004A7C8->unk2C); + if (D_8004A7C8 != NULL) { + crash_screen_printf("addr:%x\n", D_8004A7C8->onDraw); crash_screen_print_gobj_info(D_8004A7C8); } break; case 4: crash_screen_printf("DFO\n"); - if (D_8004A7C8 != 0) { - crash_screen_printf("cam addr:%x\n", D_8004A7C8->unk2C); + if (D_8004A7C8 != NULL) { + crash_screen_printf("cam addr:%x\n", D_8004A7C8->onDraw); } if (D_8004A7CC != NULL) { - crash_screen_printf("disp addr:%x\n", D_8004A7CC->unk2C); + crash_screen_printf("disp addr:%x\n", D_8004A7CC->onDraw); crash_screen_print_gobj_info(D_8004A7CC); } break; } - crash_screen_printf("s: %x\n", D_80048D88); - // add these in when this and the giant switch case function are matching - crash_screen_printf("t: %x\n", D_80048D8C); - crash_screen_printf("l: %x\n", D_80048D90); - return sp1C; -} - - -extern u32 D_800BE4F8; -extern u32 D_800D6B48; -extern u32 D_800D6F54; + crash_screen_printf("s: %x\n", dmaVPKDevAddr); + crash_screen_printf("t: %x\n", dmaVPKVramAddr); + crash_screen_printf("l: %x\n", dmaVPKLen); + return retThread; +} -extern void *D_800A2904; // struct +#ifdef MIPS_TO_C -extern u32 D_800D6B18; -extern u8 D_800D6B00[], D_800BE3F0[]; void func_800A2B9C(void) { - int i; + u8 *var_v0; + u8 *var_v1; + u8 temp_a0; D_800D6B18 = 1; - for (i = 0; i < 16; i++) { - if (D_800D6B00[i] != D_800BE3F0[i]) { + var_v1 = &D_800BE3F0; + var_v0 = &D_800D6B00; + do { + temp_a0 = *var_v1; + var_v1 += 1; + if (*var_v0 != temp_a0) { D_800D6B18 = 0; } - D_800D6B00[i] = D_800BE3F0[i]; - } - set_hard_rng_seed(0x3039); - func_80002B88_ovl1(); + var_v0 += 1; + var_v0->unk-1 = temp_a0; + } while (var_v0 != &D_800D6B10); + set_hard_rng_seed(0x3039, &D_800D6B18, &D_800D6B10); + func_80002B88(); gGameState = 1; D_800BE4F8 = 0; D_800D6F3C = 0; - D_800D6B48 = D_800D6B44 = -1; + D_800D6B44 = -1; + D_800D6B48 = -1; D_800D6F54 = -1; func_800BB24C(); - func_800208A0_ovl1(2); + auSetReverbType(2); func_800A74B0(); - func_80022A38_ovl1(&D_800A2904); + func_80022A38(&crash_screen_print_page_3); func_800046D0(0x3C); func_800B8700(); } +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A2B9C.s") +#endif + +#ifdef MIPS_TO_C + +void func_800A2C80(void) { + func_800BB3F0(); + func_80002B88(); + auSetBGMVolume(0, 0x7800); + func_80020CC4(0x7800); + func_800A41B0(1.0f); + func_80004674(0x10, 2); + gGameTampered = 0; + func_800BB418(); +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A2C80.s") +#endif -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2C80.s") +#ifdef MIPS_TO_C void func_800A2CE4(void) { D_800D6B88 = D_800EC9FC; @@ -179,75 +139,373 @@ void func_800A2CE4(void) { D_800D6B44 = -1; D_800D6F50 = 0; } +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A2CE4.s") +#endif -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2D5C.s") +#ifdef MIPS_TO_C -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2D68.s") +void func_800A2D5C(void) { + D_800D6B9C = 0; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A2D5C.s") +#endif + +#ifdef MIPS_TO_C + +void func_800A2D68(void) { + ? *var_v0; + ? *var_v0_2; + ? *var_v1; + + D_800BE518 = 0; + D_800BE4FC = 0; + D_800BE51C = 0; + D_800BE508 = 0; + D_800BE520 = 0; + D_800BE50C = 0; + D_800BE524 = 0.0f; + D_800BE510 = D_800BE524; + D_800D6F4C = 0; + D_800D6E64 = 0; + D_800D6E48 = 0; + var_v0 = &D_800D6D10; + do { + var_v0 += 4; + var_v0->unk-4 = 0; + } while (var_v0 < &D_800D6E10); + var_v1 = &D_800D6E30; + var_v0_2 = &D_800D6E20; + do { + var_v1 += 4; + var_v0_2->unk1 = 0; + var_v1->unk-3 = 0; + var_v0_2->unk2 = 0; + var_v1->unk-2 = 0; + var_v0_2->unk3 = 0; + var_v1->unk-1 = 0; + var_v0_2 += 4; + var_v0_2->unk-4 = 0; + var_v1->unk-4 = 0; + } while (var_v1 != &D_800D6E40); + D_800D6B48 = 0x22; + func_8011C87C(&D_800D6E40, &D_800BE51C, &D_800BE520, &D_800BE524); + D_800BE52C = D_800D6B98; + D_800BE500 = D_800D6B98; + D_800BE530 = D_800D6B9C; + D_800BE504 = D_800D6B9C; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A2D68.s") +#endif + +#ifdef MIPS_TO_C + +void func_800A2E98(void) { + ? *var_v0; + ? *var_v0_2; + ? *var_v0_3; + s32 temp_f18; + + D_800D6E88 = gKirbyLives; + D_800D6E8C = gKirbyHp; + D_800D6E90 = D_800D6E54; + D_800D6E98 = gKirbyStars; + D_800D6E5C = 0.0f; + D_800D6E58 = D_800D6E5C; + temp_f18 = D_800D6E58; + D_800D6E9C = temp_f18; + D_800D6E94 = temp_f18; + D_800D6B54 = 0; + D_800D7090 = -1; + func_8011C8D0(-1, &D_800D6E9C); + D_800BE4F8 = 1; + D_800BE544 = -0x1E; + var_v0 = &D_800D7098; + do { + var_v0 += 4; + var_v0->unk-4 = 0; + } while (var_v0 < &D_800D70D8); + var_v0_2 = &D_800D70D8; + do { + var_v0_2 += 4; + var_v0_2->unk-4 = 0.0f; + } while (var_v0_2 < &D_800D7118); + var_v0_3 = &D_800D7118; + do { + var_v0_3 += 4; + var_v0_3->unk-4 = -1; + } while (var_v0_3 < &D_800D7158); + D_800D6E10 = 0; + D_800D7088 = 0; + D_800EC9E4 = 0.0f; + D_800D6E40 = 0; + D_800D6E44 = 0; + D_800D6E1C = 0; + D_800D6E18 = 0; + D_800D6E14 = 0; + D_800D6E78 = 0; + D_800D6E68 = 0; + D_800D6E7C = 0; + D_800D6E6C = 0; + D_800D6E80 = 0; + D_800D6E70 = 0; + D_800D6E84 = 0; + D_800D6E74 = 0; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A2E98.s") +#endif -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A2E98.s") +#ifdef MIPS_TO_C void func_800A3058(void) { - u32 i; + s8 *var_v0; + s8 temp_t6; - switch (osTvType) { - default: - load_overlay(2); - func_80151CEC_ovl4(5); - case 2: - case 1: - func_80004624(); + if ((osTvType != 1) && (osTvType != 2)) { + load_overlay(2); + func_80151CEC_ovl4(5); } - func_80004624(); - - for (i = 0; i < 4; i++) { - if (D_80048E9C[i] != -1) { - return; + func_80004624(); + var_v0 = &D_80048E9C; +loop_4: + temp_t6 = *var_v0; + var_v0 += 1; + if (temp_t6 == -1) { + if (var_v0 == &gControllers) { + load_overlay(2); + func_80151CEC_ovl4(4); + } else { + goto loop_4; } } - load_overlay(2); - func_80151CEC_ovl4(4); } +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A3058.s") +#endif + +#ifdef MIPS_TO_C void func_800A30E8(void) { - load_overlay(19); + load_overlay(0x13); tamper_check_ovl20(); load_overlay(5); load_overlay(6); - load_overlay(17); + load_overlay(0x11); } +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A30E8.s") +#endif + +#ifdef MIPS_TO_C void load_menu_overlays(void) { load_overlay(2); load_overlay(3); } +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/load_menu_overlays.s") +#endif -extern u32 D_800BE4F8; -extern u32 D_800D6B8C; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3150.s") +#ifdef MIPS_TO_C + +void func_800A3150(s32 arg0) { + D_800D6F38 = 0; + D_800D6F3C = arg0; + D_800D6B8C = D_800D6B88; + D_800D6B88 = -1; + func_800A2C80(); + func_800A2CE4(); + func_800A2D5C(); + func_800A2D68(); + load_overlay(0x12); + func_800BBBA0(); + while (1) { + func_800A30E8(); + func_800A2E98(); + func_800F6AD4(1); + if ((D_800D6F38 != 0) && (D_800BE4F8 != 0)) { + auStopAllSounds(); + + } else { + break; + } + } + D_800D6B88 = D_800D6B8C; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A3150.s") +#endif void func_800A3228(void) { +} +#ifdef MIPS_TO_C + +void func_800A3230(void) { + s32 var_s0; + void *temp_v0; + + if (D_800BE500 == 0) { + var_s0 = 0; + do { + temp_v0 = &D_800BE400 + (D_800BE504 * 6) + var_s0; + if ((D_800BE508 == temp_v0->unk0) && (D_800BE534 == temp_v0->unk1) && (check_cutscene_watched(temp_v0->unk2) == 0)) { + func_800A74D8(); + set_cutscene_watched((&D_800BE400 + (D_800BE504 * 6) + var_s0)->unk2, D_800D6B88); + func_800B9C50(D_800D6B88); + load_overlay(4); + func_80154D60_ovl6((&D_800BE400 + (D_800BE504 * 6) + var_s0)->unk2, 2); + } + var_s0 += 3; + } while (var_s0 != 6); + } } +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A3230.s") +#endif -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3230.s") +#ifdef MIPS_TO_C -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A336C.s") +void func_800A336C(void) { + if ((D_800BE500 >= 0) && (D_800BE500 < 5) && (check_cutscene_watched(*(&D_800BE414 + (D_800BE500 * 4))) == 0)) { + set_cutscene_watched(*(&D_800BE414 + (D_800BE500 * 4)), D_800D6B88); + func_800B9C50(D_800D6B88); + load_overlay(4); + func_80154D60_ovl6(*(&D_800BE414 + (D_800BE500 * 4)), 2); + } +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A336C.s") +#endif +#ifdef MIPS_TO_C + +void func_800A3408(void) { + if ((gCurrentWorld == 1) && (gCurrentLevel == 1)) { + load_overlay(0x12); + if (func_80227308_ovl18(0) != 0) { + D_800BE4F4 = gGameState; + do { + gGameState = 0xE; + func_800A3150(4); + load_overlay(0x12); + } while (func_80227308_ovl18(1) == 1); + func_800A2CE4(); + func_800B96A0(D_800D6B88, 0); + gGameState = D_800BE4F4; + } + } +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A3408.s") +#endif -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3408.s") +#ifdef MIPS_TO_C -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A34C8.s") +void func_800A34C8(void) { + s32 *var_s0; + s32 *var_v1; + s32 temp_t5; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s") + var_v1 = &D_800D6B6C; + D_800D6B6C = 2; + gKirbyLives = 1; + gKirbyHp = 6.0f; + D_800D6E54 = 0; + D_800D6E58 = 0.0f; + D_800D6E5C = 0.0f; + gKirbyStars = 0; + D_800D6B7C = 0; + D_800D6B80 = 0; + D_800D6B44 = -1; + if (D_800BE438 != -1) { + var_s0 = &D_800BE438; +loop_2: + func_800A30E8(); + func_800A2D5C(); + D_800D6B98 = var_s0->unk0; + D_800D6B9C = var_s0->unk4; + func_800A2D68(); + D_800BE4FC = 1; + D_800BE518 = 1; + D_800D6F3C = 0; + D_800BE534 = var_s0->unk8; + func_800BBBA0(); + func_800A2C80(); + func_800A2E98(); + func_800F6AD4(1); + func_800A74D8(); + if ((D_800BE4F8 == 6) || (D_800D6B6C == 1)) { + D_800D6B6C = 1; + } else { + temp_t5 = var_s0->unkC; + var_s0 += 0xC; + if (temp_t5 == -1) { -u16 func_800F8560(void); -s32 func_80151CEC_ovl4(s32 arg0); + } else { + goto loop_2; + } + } + var_v1 = &D_800D6B6C; + } + if ((*var_v1 == 2) && (gKirbyHp == 6.0f)) { + *var_v1 = 3; + } + gGameState = 0x1A; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A34C8.s") +#endif + +#ifdef MIPS_TO_C + +void func_800A36C0(void) { + ? sp70; + s32 sp2C; + s32 *temp_t6; + s32 *var_s0; + void *temp_t7; + + M2C_MEMCPY_ALIGNED(&sp2C, &D_800BE498, 0x3C); + temp_t6 = &sp2C + 0x3C; + temp_t7 = &D_800BE498 + 0x3C; + var_s0 = &sp2C; + temp_t6->unk0 = temp_t7->unk0; + temp_t6->unk4 = temp_t7->unk4; +loop_1: + load_overlay(4); + var_s0 += 4; + if (func_80154D60_ovl6(*var_s0, 0x15) != 3) { + if (var_s0 != &sp70) { + continue; + } + } + D_800D6B68 = gGameState; + gGameState = 0x17; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A36C0.s") +#endif + +#ifdef MIPS_TO_C -// https://decomp.me/scratch/iuJKf -#ifdef NON_MATCHING void game_tick(s32 arg0) { - s32 tmpState; + s32 temp_t0; + s32 temp_t0_2; + s32 temp_t1; + s32 temp_t1_2; + s32 temp_t2; + s32 temp_t3; + s32 temp_t6; + s32 temp_t6_2; + s32 temp_t7; + s32 temp_t9; + s32 temp_v0; + s32 temp_v1; func_800BE320(&D_800D7288); func_800A2B9C(); @@ -256,106 +514,108 @@ void game_tick(s32 arg0) { func_800A2C80(); func_800A3058(); while (1) { + func_800A2C80(); - switch (gGameState) { /* switch 1 */ - default: continue; /* switch 1 */ - case 1: /* switch 1 */ + switch (gGameState) { /* switch 1 */ + default: /* switch 1 */ + continue; + case 1: /* switch 1 */ load_overlay(2); func_80151CEC_ovl4(0); gGameState = 2; continue; - case 2: /* switch 1 */ + case 2: /* switch 1 */ if (D_800D6B74 == 1) { load_overlay(4); - func_80154D60_ovl1(0, 1); + func_80154D60_ovl6(0, 1); } gGameState = 3; D_800D6B60 = 3; continue; - case 3: /* switch 1 */ + case 3: /* switch 1 */ load_overlay(2); if (func_80151CEC_ovl4(1) == 2) { gGameState = 4; } else { func_800A3228(); - tmpState = gGameState; + temp_t2 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t2; } continue; - case 4: /* switch 1 */ + case 4: /* switch 1 */ func_800A3150(5); gGameState = 5; D_800D6B60 = 5; continue; - case 5: /* switch 1 */ + case 5: /* switch 1 */ load_overlay(2); if (func_80151CEC_ovl4(1) == 2) { gGameState = 6; } else { func_800A3228(); - tmpState = gGameState; + temp_t6 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t6; } continue; - case 6: /* switch 1 */ + case 6: /* switch 1 */ func_800A3150(6); gGameState = 7; D_800D6B60 = 7; continue; - case 7: /* switch 1 */ + case 7: /* switch 1 */ load_overlay(2); if (func_80151CEC_ovl4(1) == 2) { gGameState = 8; } else { func_800A3228(); - tmpState = gGameState; + temp_t0 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t0; } continue; - case 8: /* switch 1 */ + case 8: /* switch 1 */ func_800A3150(3); gGameState = 9; D_800D6B60 = 9; continue; - case 9: /* switch 1 */ + case 9: /* switch 1 */ load_overlay(2); if (func_80151CEC_ovl4(1) == 2) { D_800D6B74 = 1; gGameState = 2; } else { func_800A3228(); - tmpState = gGameState; + temp_t3 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t3; } continue; - case 10: /* switch 1 */ + case 10: /* switch 1 */ load_menu_overlays(); func_800A2CE4(); func_800B87E0(); - func_80158048_ovl1(); + func_80158048_ovl4(); func_800B8AD4(D_800D6B88); if (gGameState == 0xB) { func_800A3408(); } continue; - case 11: /* switch 1 */ + case 11: /* switch 1 */ if (check_cutscene_watched(1) == 0) { load_overlay(4); set_cutscene_watched(1, D_800D6B88); func_800B9C50(D_800D6B88); - func_80154D60_ovl1(1, 2); + func_80154D60_ovl6(1, 2); } load_menu_overlays(); func_800A2D5C(); - func_80159A54_ovl1(); + func_80159A54_ovl4(); if (D_800D6B78 != 0) { - tmpState = gGameState; + temp_t6_2 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t6_2; } else { D_800BE500 = D_800D6B98; if (D_800BE500 == 6) { @@ -368,10 +628,10 @@ void game_tick(s32 arg0) { } } continue; - case 12: /* switch 1 */ + case 12: /* switch 1 */ load_menu_overlays(); func_800A2D68(); - func_8015531C_ovl1(); + func_8015531C_ovl4(); if (D_800D6B78 == 0) { D_800BE530 = D_800D6B9C; D_800BE504 = D_800D6B9C; @@ -381,38 +641,38 @@ void game_tick(s32 arg0) { } D_800D6F38 = 0; continue; - case 14: /* switch 1 */ + case 14: /* switch 1 */ gGameState = 0xF; continue; - case 15: /* switch 1 */ + case 15: /* switch 1 */ func_800A30E8(); D_800D6F3C = 0; func_800A2E98(); func_800F6AD4(0); - switch (D_800BE4F8) { /* switch 2 */ - case 6: /* switch 2 */ + switch (D_800BE4F8) { /* switch 2 */ + case 6: /* switch 2 */ gGameState = 0x11; - if (--gKirbyLives > 0) { - switch (func_800F8560()) { /* switch 4; irregular */ - case 2: /* switch 4 */ + temp_t1 = gKirbyLives - 1; + gKirbyLives = temp_t1; + if (temp_t1 > 0) { + temp_v0 = func_800F8560(); + switch (temp_v0) { /* switch 4; irregular */ + case 2: /* switch 4 */ gKirbyHp = 6.0f; D_800D6E54 = 0; func_800A74D8(); gGameState = 0xC; D_800D6B84 = 0; break; - default: /* switch 4 */ - case 9: /* switch 4 */ + default: /* switch 4 */ + case 9: /* switch 4 */ gKirbyHp = 6.0f; D_800D6E54 = 0; D_800BE4FC = D_800BE518; - D_800BE534 = D_800BE51C; D_800BE508 = D_800BE51C; - D_800BE538 = D_800BE520; D_800BE50C = D_800BE520; - D_800BE53C = D_800BE524; D_800BE510 = D_800BE53C; gGameState = 0xF; @@ -421,18 +681,17 @@ void game_tick(s32 arg0) { } func_800A74D8(); break; - case 2: /* switch 2 */ - func_80020C88_ovl1(); + case 2: /* switch 2 */ + auStopAllSounds(); func_800A3230(); break; - case 3: /* switch 2 */ - if ((gCurrentLevel == D_800D6B9C + 1)) { - D_800D6B9C++; - if ((gCurrentWorld == (D_800D6B98 + 1))) { - gCurrentLevel++; - func_800B9C50(D_800D6B88); - D_800D6B80 = 1; - } + case 3: /* switch 2 */ + temp_v1 = D_800D6B9C + 1; + if ((gCurrentLevel == temp_v1) && (gCurrentWorld == (D_800D6B98 + 1))) { + D_800D6B9C = temp_v1; + gCurrentLevel += 1; + func_800B9C50(D_800D6B88); + D_800D6B80 = 1; } func_800A74D8(); if (func_800F8560() != 9) { @@ -443,15 +702,15 @@ void game_tick(s32 arg0) { D_800D6B84 = 0; } break; - case 4: /* switch 2 */ - switch (D_800BE500) { /* switch 3 */ - case 0: /* switch 3 */ - case 1: /* switch 3 */ - case 2: /* switch 3 */ - case 3: /* switch 3 */ - case 4: /* switch 3 */ + case 4: /* switch 2 */ + switch (D_800BE500) { /* switch 3 */ + case 0: /* switch 3 */ + case 1: /* switch 3 */ + case 2: /* switch 3 */ + case 3: /* switch 3 */ + case 4: /* switch 3 */ if ((gCurrentWorld == (D_800D6B98 + 1)) && (gCurrentWorld < 7)) { - gCurrentWorld++; + gCurrentWorld += 1; gCurrentLevel = 1; D_800D6B7C = 1; func_800B9C50(D_800D6B88); @@ -464,13 +723,13 @@ void game_tick(s32 arg0) { gGameState = 0xC; } break; - case 5: /* switch 3 */ + case 5: /* switch 3 */ func_800A74D8(); if (ovl1_TamperCheck() == 0) { gGameState = 0xB; } else { if ((gCurrentWorld == (D_800D6B98 + 1)) && (gCurrentWorld < 7)) { - gCurrentWorld++; + gCurrentWorld += 1; gCurrentLevel = 1; func_800B9D60(D_800D6B88, 5); } @@ -481,32 +740,32 @@ void game_tick(s32 arg0) { if (check_cutscene_watched(0xD) == 0) { D_800BE500 = 6; D_800D6B98 = 6; - // dereference? - D_800BE504 = 0; D_800BE508 = 0; + D_800BE504 = 0; D_800D6B9C = 0; load_overlay(4); set_cutscene_watched(0xD, D_800D6B88); func_800B9C50(D_800D6B88); - func_80154D60_ovl1(0xD, 2); + func_80154D60_ovl6(0xD, 2); func_800A2D68(); func_800A2E98(); gGameState = 0xF; } } } - break; + break; } break; - case 7: /* switch 2 */ + case 7: /* switch 2 */ if ((gCurrentWorld == (D_800D6B98 + 1)) && (gCurrentWorld < 8)) { - gCurrentWorld = 8; gCurrentLevel = 1; + gCurrentWorld = 8; + gCurrentLevel = 1; func_800B9D60(D_800D6B88, 6); } func_800A74D8(); gGameState = 0x13; break; - case 0: /* switch 2 */ + case 0: /* switch 2 */ func_800A74D8(); if (D_800BE500 != 6) { gGameState = 0xC; @@ -515,37 +774,37 @@ void game_tick(s32 arg0) { } D_800D6B84 = 0; break; - default: /* switch 2 */ + default: /* switch 2 */ gGameState = 1; break; - } // switch 2 + } func_800B9C50(D_800D6B88); continue; - case 16: /* switch 1 */ - case 17: /* switch 1 */ + case 16: /* switch 1 */ + case 17: /* switch 1 */ load_menu_overlays(); - func_80159EFC_ovl1(); + func_80159EFC_ovl4(); gGameState = 1; continue; - case 21: /* switch 1 */ + case 21: /* switch 1 */ load_overlay(4); - func_80154D60_ovl1(D_800D71E8, 0x15); - tmpState = gGameState; + func_80154D60_ovl6(D_800D71E8, 0x15); + temp_t7 = gGameState; gGameState = 0x17; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t7; continue; - case 34: /* switch 1 */ + case 34: /* switch 1 */ func_800A36C0(); continue; - case 18: /* switch 1 */ + case 18: /* switch 1 */ load_overlay(4); set_cutscene_watched(0x11, D_800D6B88); set_cutscene_watched(0x13, D_800D6B88); func_800B9C50(D_800D6B88); - func_80154D60_ovl1(0xE, 2); + func_80154D60_ovl6(0xE, 2); gGameState = 1; continue; - case 19: /* switch 1 */ + case 19: /* switch 1 */ load_overlay(4); set_cutscene_watched(0xD, D_800D6B88); set_cutscene_watched(0x11, D_800D6B88); @@ -553,460 +812,77 @@ void game_tick(s32 arg0) { set_cutscene_watched(0x13, D_800D6B88); set_cutscene_watched(0x10, D_800D6B88); func_800B9C50(D_800D6B88); - func_80154D60_ovl1(0xF, 0xA); + func_80154D60_ovl6(0xF, 0xA); gGameState = 1; continue; - case 33: /* switch 1 */ + case 33: /* switch 1 */ func_800A34C8(); continue; - case 27: /* switch 1 */ + case 27: /* switch 1 */ load_menu_overlays(); - func_8017F594_ovl1(); + func_8017F594_ovl5(); continue; - case 28: /* switch 1 */ + case 28: /* switch 1 */ load_menu_overlays(); - func_8017CC3C_ovl1(); + func_8017CC3C_ovl5(); continue; - case 25: /* switch 1 */ + case 25: /* switch 1 */ load_menu_overlays(); - func_801822AC_ovl1(); - tmpState = gGameState; + func_801822AC_ovl5(); + temp_t0_2 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t0_2; continue; - case 23: /* switch 1 */ + case 23: /* switch 1 */ load_menu_overlays(); - func_801802A8_ovl1(); + func_801802A8_ovl5(); continue; - case 22: /* switch 1 */ + case 22: /* switch 1 */ load_menu_overlays(); - func_8017ECA4_ovl1(); - tmpState = gGameState; + func_8017ECA4_ovl5(); + temp_t9 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; + D_800D6B68 = temp_t9; continue; - case 26: /* switch 1 */ + case 26: /* switch 1 */ load_menu_overlays(); - func_80182FE8_ovl1(); + func_80182FE8_ovl5(); continue; - case 24: /* switch 1 */ + case 24: /* switch 1 */ load_menu_overlays(); - func_80185EEC_ovl1(); - tmpState = gGameState; + func_80185EEC_ovl5(); + temp_t1_2 = gGameState; gGameState = 0xA; - D_800D6B68 = tmpState; - continue; - case 29: /* switch 1 */ - load_menu_overlays(); - func_80177A30_ovl1(); + D_800D6B68 = temp_t1_2; continue; - case 30: /* switch 1 */ + case 29: /* switch 1 */ load_menu_overlays(); - func_8016FAB0_ovl1(); + func_80177A30_ovl5(); continue; - case 31: /* switch 1 */ + case 30: /* switch 1 */ load_menu_overlays(); - func_80165370_ovl1(); + func_8016FAB0_ovl5(); continue; - // fake case - case 32: + case 31: /* switch 1 */ load_menu_overlays(); - func_80179D48_ovl1(); + func_80165370_ovl5(); continue; } + load_menu_overlays(); + func_80179D48_ovl5(); } } #else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A377C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/game_tick.s") #endif +#ifdef MIPS_TO_C -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A41B0.s") - -void print_error_stub(char* arg0, ...) { - -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A428C.s") - -extern u32 *D_800BE5CC, *D_800BE5C4; -extern u32 *D_800BE5C8; - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4414.s") - - -// executes the virtual function at index arg0 -void call_virtual_function(u32 arg0, u32 arg1, VTABLE callback) { - // __thiscall? But rarely any of these functions use D_8004A7C4... - if (arg0 < arg1) callback[arg0](D_8004A7C4); -} - -extern f32 D_800D5C30; -f32 vec3_dot_product(Vector *arg0, Vector *arg1) { - f32 dotProduct; - f32 dotProductMag; - - dotProduct = (arg0->x * arg1->x) + (arg0->y * arg1->y) + (arg0->z * arg1->z); - dotProductMag = ABSF(dotProduct); - if (D_800D5C30 < dotProductMag) { // denorm check; D_800D5C30 = 0.00001f - return dotProduct; - } - return 0.0f; -} - -f32 vec3_mag_square(Vector *arg0) { - f32 x = arg0->x; - f32 y = arg0->y; - f32 z = arg0->z; - return (x * x) + (y * y) + (z * z); -} - -f32 vec3_dist_square(Vector *v1, Vector *v2) { - f32 x2 = v2->x - v1->x; - f32 y2 = v2->y - v1->y; - f32 z2 = v2->z - v1->z; - return (x2 * x2) + (y2 * y2) + (z2 * z2); -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4598.s") - -// copy of HS64_MkRotationMtxF??? -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A465C.s") - -void func_800A4794(Vector *arg0, struct UnkStruct8004A7C4_3C *arg1) { - Mat4 finalMtx; - Mat4 intermediateMtx; - - if (arg1 == 0) { - arg1 = D_8004A7C4->unk3C; - } - guMtxIdentF(&finalMtx); - do { - if ((arg1->scaleVec.x != 1.0f) || (arg1->scaleVec.y != 1.0f) || (arg1->scaleVec.z != 1.0f)) { - HS64_MkScaleMtxF(&intermediateMtx, arg1->scaleVec.x, arg1->scaleVec.y, arg1->scaleVec.z); - guMtxCatF(&finalMtx, &intermediateMtx, &finalMtx); - } - if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { - HS64_MkRotationMtxF(&intermediateMtx, arg1->angleVec.x, arg1->angleVec.y, arg1->angleVec.z); - guMtxCatF(&finalMtx, &intermediateMtx, &finalMtx); - } - if ((arg1->posVec.x != 0.0f) || (arg1->posVec.y != 0.0f) || (arg1->posVec.z != 0.0f)) { - HS64_MkTranslateMtxF(&intermediateMtx, arg1->posVec.x, arg1->posVec.y, arg1->posVec.z); - guMtxCatF(&finalMtx, &intermediateMtx, &finalMtx); - } - arg1 = arg1->unk14; - } while ((u32)arg1 != 1); // why? - arg0->x = finalMtx[3][0]; - arg0->y = finalMtx[3][1]; - arg0->z = finalMtx[3][2]; -} - -void func_800A4958(Vector *dst, struct UnkStruct8004A7C4_3C *arg1, Vector *src) { - Mat4 sp90; - Mat4 sp50; - - if (arg1 == 0) { - arg1 = D_8004A7C4->unk3C; - } - guMtxIdentF(&sp90); - do { - if ((arg1->scaleVec.x != 1.0f) || (arg1->scaleVec.y != 1.0f) || (arg1->scaleVec.z != 1.0f)) { - HS64_MkScaleMtxF(&sp50, arg1->scaleVec.x, arg1->scaleVec.y, arg1->scaleVec.z); - guMtxCatF(&sp90, &sp50, &sp90); - } - if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { - HS64_MkRotationMtxF(&sp50, arg1->angleVec.x, arg1->angleVec.y, arg1->angleVec.z); - guMtxCatF(&sp90, &sp50, &sp90); - } - if ((arg1->posVec.x != 0.0f) || (arg1->posVec.y != 0.0f) || (arg1->posVec.z != 0.0f)) { - HS64_MkTranslateMtxF(&sp50, arg1->posVec.x, arg1->posVec.y, arg1->posVec.z); - guMtxCatF(&sp90, &sp50, &sp90); - } - arg1 = arg1->unk14; - } while ((u32)arg1 != 1); // why - guMtxXFMF(sp90, - src->x, - src->y, - src->z, - - &dst->x, - &dst->y, - &dst->z - ); -} - -void func_800A4B34(Vector *dst, struct UnkStruct8004A7C4_3C *arg1) { - Vector tmp; - Mat4 sp7C; - Mat4 sp3C; - - if (arg1 == 0) { - arg1 = D_8004A7C4->unk3C; - } - guMtxIdentF(&sp7C); - do { - if ((arg1->scaleVec.x != 1.0f) || (arg1->scaleVec.y != 1.0f) || (arg1->scaleVec.z != 1.0f)) { - HS64_MkScaleMtxF(&sp3C, 1.0f / arg1->scaleVec.x, 1.0f / arg1->scaleVec.y, 1.0f / arg1->scaleVec.z); - guMtxCatF(&sp3C, &sp7C, &sp7C); - } - if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { - func_800A465C(&sp3C, -arg1->angleVec.x, -arg1->angleVec.y, -arg1->angleVec.z); - guMtxCatF(&sp3C, &sp7C, &sp7C); - } - if ((arg1->posVec.x != 0.0f) || (arg1->posVec.y != 0.0f) || (arg1->posVec.z != 0.0f)) { - HS64_MkTranslateMtxF(&sp3C, -arg1->posVec.x, -arg1->posVec.y, -arg1->posVec.z); - guMtxCatF(&sp3C, &sp7C, &sp7C); - } - arg1 = arg1->unk14; - } while ((u32) arg1 != 1); - - tmp.x = dst->x; - tmp.y = dst->y; - tmp.z = dst->z; - - dst->x = ((sp7C[0][0] * tmp.x) + (sp7C[1][0] * tmp.y) + (sp7C[2][0] * tmp.z)) - + sp7C[3][0]; - dst->y = ((sp7C[0][1] * tmp.x) + (sp7C[1][1] * tmp.y) + (sp7C[2][1] * tmp.z)) - + sp7C[3][1]; - dst->z = ((sp7C[0][2] * tmp.x) + (sp7C[1][2] * tmp.y) + (sp7C[2][2] * tmp.z)) - + sp7C[3][2]; -} - -// rodata floats -#ifdef NON_MATCHING -extern f32 asinf(f32); -extern f32 atan2f(f32, f32); -extern const f32 D_800D5C3C, D_800D5C40; -void func_800A4DB8(Vector *arg0, struct UnkStruct8004A7C4_3C *arg1) { - Mat4 sp80; - Mat4 sp40; - - if (arg1 == 0) { - arg1 = D_8004A7C4->unk3C; - } - guMtxIdentF(&sp80); - do { - if ((arg1->angleVec.x != 0.0f) || (arg1->angleVec.y != 0.0f) || (arg1->angleVec.z != 0.0f)) { - HS64_MkRotationMtxF(&sp40, arg1->angleVec.x, arg1->angleVec.y, arg1->angleVec.z); - guMtxCatF(&sp80, &sp40, &sp80); - } - arg1 = arg1->unk14; - } while ((u32)arg1 != 1); - - arg0->y = asinf(-sp80[0][2]); - - if ((arg0->y == D_800D5C3C) || (arg0->y == D_800D5C40)) { - arg0->x = (arg0->y == D_800D5C3C) ? atan2f(sp80[1][0], sp80[1][1]) : atan2f(-sp80[1][0], sp80[1][1]); - arg0->z = 0.0f; - } else { - arg0->x = atan2f(sp80[1][2], sp80[2][2]); - arg0->z = atan2f(sp80[0][1], sp80[0][0]); - } - func_800A4598(arg0); +void func_800A41B0(f32 arg0) { + D_800D6B10 = arg0; + D_800D6B14 = 1.0f / arg0; + func_800075DC(arg0 & 0xFFFF, 1); } #else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4DB8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1/func_800A41B0.s") #endif - -s32 func_800A4F48(s32 arg0, Vector *arg1, f32 arg2, f32 arg3); -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A4F48.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A509C.s") - -void copy_controller_inputs_to_kirby_controller(void) { - if (!kirby_in_inactionable_state()) { - gKirbyController.buttonHeld = gPlayerControllers->buttonHeld; - gKirbyController.buttonPressed = gPlayerControllers->buttonPressed; - gKirbyController.buttonHeldLong = gPlayerControllers->buttonHeldLong; - gKirbyController.buttonReleased = gPlayerControllers->buttonReleased; - gKirbyController.stickX = gPlayerControllers->stickX; - gKirbyController.stickY = gPlayerControllers->stickY; - } else { - gKirbyController.buttonHeld = 0; - gKirbyController.buttonPressed = 0; - gKirbyController.buttonHeldLong = 0; - gKirbyController.buttonReleased = 0; - gKirbyController.stickX = 0; - gKirbyController.stickY = 0; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A52F0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5404.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5468.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A54FC.s") - - - -s32 func_800A5560(u32 cont) { - s32 v1; - - if (cont >= 4) { - cont = 3; - } - - v1 = gPlayerControllers[cont].stickX; - - if (v1 > 0) { - if (v1 < 8) { - v1 = 8; - } - if (v1 >= 0x49) { - v1 = 0x48; - } - v1 -= 8; - } - else if (v1 < 0) { - if (v1 >= -7) { - v1 = -8; - } - if (v1 < -0x48) { - v1 = -0x48; - } - v1 += 8; - } - return v1; -} - -s32 func_800A55E0(u32 cont) { - s32 v1; - - if (cont >= 4) { - cont = 3; - } - v1 = gPlayerControllers[cont].stickY; - if (v1 > 0) { - if (v1 < 8) { - v1 = 8; - } - if (v1 >= 0x49) { - v1 = 0x48; - } - v1 -= 8; - } - else if (v1 < 0) { - if (v1 >= -7) { - v1 = -8; - } - if (v1 < -0x48) { - v1 = -0x48; - } - v1 = v1 + 8; - } - return v1; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5660.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A56F4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5744.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A57A0.s") - -extern s32 D_800D6B24; -extern s16 D_800D6B30; -extern s16 D_800D6B2C, D_800D6B2E; -extern u8 D_800D6B2B; -void func_800A57C8(s32 arg0) { - finish_current_thread(1); - while (1) { - D_800D6B2E += D_800D6B2C; - if (D_800D6B2E <= 0) { - D_800D6B2E = 0; - break; - } else if (D_800D6B2E >= 0xFF) { - D_800D6B2E = 0xFF; - break; - } else { - finish_current_thread(1); - } - } - D_800D6B30 += 1; - switch (D_800D6B2B) { - case 0: - D_800D6B24 = 0; - finish_current_thread(1); - func_8000A29C_ovl1(D_8004A7C4); - finish_current_thread(1); - break; - case 1: - finish_current_thread(1); - break; - case 2: - finish_current_thread(1); - func_800067B8_ovl1(); - finish_current_thread(1); - D_800D6B24 = 0; - break; - default: - break; - } -} - - -extern s32 D_800D6B3C, D_800D6B40, D_800D6B34, D_800D6B38; -extern u8 D_800D6B28, D_800D6B29, D_800D6B2A, D_800D6B2B; -extern Gfx *gDisplayListHeads[]; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A58E4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5A14.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5AD8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5B14.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5B3C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5B64.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5BDC.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5C60.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5D24.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5D88.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A5F94.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6208.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A62D8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6534.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6820.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A699C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6A18.s") - -void func_800A6B18(void) { - -} - -extern void *D_800BE8A0[]; -void load_overlay(u32 arg0) { - while (arg0 >= 0x14) { - // ...were they going to do anything to remedy this issue? - } - dma_overlay_load(D_800BE8A0[arg0]); -} - -// some sort of integrity check -u8 ovl1_TamperCheck(void) { - s32 buf[4]; - - dma_read(0x00000F10, &buf, 0x10); - if (buf[0] != 0x04080040) { - return 0; - } else if (buf[1] != 0x02081040) { - return 0; - } - else return 1; -} - diff --git a/src/ovl1/ovl1_10.c b/src/ovl1/ovl1_10.c index b3a67a1ce..a23f38fcf 100644 --- a/src/ovl1/ovl1_10.c +++ b/src/ovl1/ovl1_10.c @@ -1,804 +1,55 @@ -#include -#include -#include "ovl1/ovl1_6.h" -#include "D_8004A7C4.h" -#include "ovl0/ovl0_2.h" // D_80048E9C +#include "common.h" -extern OSMesgQueue D_800ED4C8; -extern u64 D_800ECF50[0x3D0]; -extern OSThread D_800ECD70; -void func_800BAD0C(void *); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BA7A0.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BA90C.s") -void func_800BA7A0(u8 *arg0, void *arg1, ? arg2) { - u16 *temp_t0; - u16 *temp_v0; - u16 temp_t3; - u16 temp_v1; - u16 var_a3; - u32 temp_t6; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAA04.s") - var_a3 = arg1->unk2; - if (var_a3 == 0) { - do { - temp_v0 = arg1->unk10; - temp_v1 = *temp_v0; - temp_t6 = temp_v1 >> 0xD; - switch (temp_t6) { - case 0: - var_a3 = arg1->unk2; - arg1->unk10 = *(&D_800D5238 + (arg1->unk0 * 4)); - break; - case 1: - arg1->unk2 = temp_v1 & 0x1FFF; - arg1->unk10 = temp_v0 + 2; - if (*arg0 == 0) { - func_800047F0(arg2); - func_800047B0(arg2); - arg1->unk1 = 1; - *arg0 = 1; - } - var_a3 = arg1->unk2; - break; - case 2: - arg1->unk2 = temp_v1 & 0x1FFF; - arg1->unk10 = temp_v0 + 2; - if (*arg0 != 0) { - func_800047D0(arg2); - arg1->unk1 = 0; - *arg0 = 0; - } - var_a3 = arg1->unk2; - break; - case 3: - temp_t0 = temp_v0 + 2; - arg1->unk4 = temp_v1 & 0x1FFF; - arg1->unk10 = temp_t0; - arg1->unkC = temp_t0; - var_a3 = arg1->unk2; - break; - case 4: - temp_t3 = arg1->unk4 - 1; - arg1->unk4 = temp_t3; - if (temp_t3 & 0xFFFF) { - var_a3 = arg1->unk2; - arg1->unk10 = arg1->unkC; - } else { - var_a3 = arg1->unk2; - arg1->unk10 = arg1->unk10 + 2; - } - break; - } - } while (var_a3 == 0); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/0.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAA64.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAAE4.s") -void func_800BA90C(s32 arg0, void *arg1) { - u16 *temp_t6_2; - u16 *temp_v1; - u16 temp_a0; - u16 temp_t1; - u16 temp_t3; - u16 temp_t9; - u16 var_v0; - u32 temp_t6; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAB68.s") - var_v0 = arg1->unk2; - if (var_v0 == 0) { - do { - temp_v1 = arg1->unk10; - temp_a0 = *temp_v1; - temp_t6 = temp_a0 >> 0xD; - switch (temp_t6) { - case 0: - var_v0 = arg1->unk2; - arg1->unk10 = *(&D_800D5238 + (arg1->unk0 * 4)); - break; - case 1: - temp_t1 = temp_a0 & 0x1FFF; - arg1->unk2 = temp_t1; - arg1->unk10 = temp_v1 + 2; - arg1->unk1 = 1; - var_v0 = temp_t1 & 0xFFFF; - break; - case 2: - temp_t3 = temp_a0 & 0x1FFF; - arg1->unk2 = temp_t3; - arg1->unk10 = temp_v1 + 2; - arg1->unk1 = 0; - var_v0 = temp_t3 & 0xFFFF; - break; - case 3: - temp_t6_2 = temp_v1 + 2; - arg1->unk4 = temp_a0 & 0x1FFF; - arg1->unk10 = temp_t6_2; - arg1->unkC = temp_t6_2; - var_v0 = arg1->unk2; - break; - case 4: - temp_t9 = arg1->unk4 - 1; - arg1->unk4 = temp_t9; - if (temp_t9 & 0xFFFF) { - var_v0 = arg1->unk2; - arg1->unk10 = arg1->unkC; - } else { - var_v0 = arg1->unk2; - arg1->unk10 = arg1->unk10 + 2; - } - break; - } - } while (var_v0 == 0); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/1.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAC0C.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c -void func_800BAA04(void *arg0, void *arg1) { - void *temp_a2; - void *temp_v0; - void *temp_v1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAD0C.s") - temp_v1 = arg1->unk4; - temp_v0 = arg0->unk4->unk8; - arg1->unk0->unk10 = 0; - if (temp_v1 != NULL) { - temp_a2 = arg1->unk8; - if (temp_a2->unk4 == NULL) { - arg0->unk4 = arg1->unk4; - } else { - temp_a2->unk4 = temp_v1; - temp_v1->unk8 = arg1->unk8; - } - arg1->unk4 = temp_v0->unk4; - temp_v0->unk4 = arg1; - arg1->unk8 = temp_v0; - arg0->unk4->unk8 = arg1; - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/2.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAEB0.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c -s32 func_800BAA64(void *arg0) { - u16 *var_v0; - u16 var_v1; - u32 temp_t7; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BAF50.s") - var_v1 = arg0->unk2; - var_v0 = arg0->unk10; - if (var_v1 == 0) { -loop_1: - temp_t7 = *var_v0 >> 0xD; - switch (temp_t7) { - case 0: - return 1; - case 1: - case 2: - var_v1 = 1; - default: -block_9: - if (var_v1 != 0) { - /* Duplicate return node #10. Try simplifying control flow for better match */ - return 0; - } - goto loop_1; - case 3: - var_v0 += 2; - goto block_9; - case 4: - if (arg0->unk4 == 1) { - var_v0 += 2; - } else { - var_v0 = arg0->unkC; - } - goto block_9; - } - } else { - return 0; - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/3.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB028.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB08C.s") -void func_800BAAE4(void *arg0) { - s32 temp_v0; - void *temp_a0; - void *var_s0; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB12C.s") - var_s0 = arg0->unk4; - if (var_s0 != NULL) { -loop_1: - temp_a0 = var_s0->unk0; - if (temp_a0->unk10 != 0) { - temp_v0 = temp_a0->unk8; - if ((temp_v0 == 0) || ((temp_v0 < 0) && (func_800BAA64(temp_a0) != 0))) { - func_800BAA04(arg0, var_s0); - var_s0 = arg0->unk4; - } else { - var_s0 = var_s0->unk4; - } - if (var_s0 != NULL) { - goto loop_1; - } - } - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/4.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB198.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB24C.s") -s32 func_800BAB68(u8 *arg0, void *arg1, s32 arg2) { - u8 temp_v0; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB364.s") - if (arg1->unk10 == 0) { - func_800047F0(arg2, arg0); - func_800047D0(arg2); - if (*arg0 != 0) { - *arg0 = 0; - } - return 1; - } - temp_v0 = *arg0; - if (arg1->unk1 != temp_v0) { - if (temp_v0 != 0) { - func_800047D0(arg2, arg0); - *arg0 = 0; - } else { - func_800047B0(arg2, arg0); - *arg0 = 1; - } - } - return 0; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/5.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB394.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/alSynRemovePlayer.s") -void func_800BAC0C(void *arg0) { - OSMesgQueue *temp_a0; - s32 var_s0; - s32 var_s0_2; - u32 temp_t6; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB3F0.s") - temp_t6 = arg0->unk0; - switch (temp_t6) { - case 0: - func_800BB08C(arg0->unkC, arg0->unk10, arg0->unk14); - break; - case 2: - func_800BB198(arg0->unkC, arg0->unk10); - break; - case 1: - func_800BB12C(arg0->unkC); - break; - case 3: - var_s0 = 0; - do { - func_800BB12C(var_s0); - var_s0 += 1; - } while (var_s0 != 4); - break; - case 4: - D_800ED4C0 = 1; - break; - case 5: - D_800ED4C0 = 0; - var_s0_2 = 0; - do { - func_800BB12C(var_s0_2); - var_s0_2 += 1; - } while (var_s0_2 != 4); - break; - } - temp_a0 = arg0->unk8; - if (temp_a0 != NULL) { - osSendMesg(temp_a0, arg0->unk4, 0); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/6.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB418.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB440.s") -void func_800BAD0C(void *arg0) { - ? sp78; - ? sp58; - void *sp54; - ? *var_s2; - s32 temp_v0; - s32 temp_v0_2; - s32 var_s3; - void *temp_s0; - void *temp_s0_2; - void *temp_s1; - void *var_s1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB468.s") - func_800009E8(&sp78, &D_800ED4C8, &sp58, 8); -loop_1: - osRecvMesg(&D_800ED4C8, &sp54, 1); - var_s3 = 0; - var_s2 = &D_800ED4A0; - if (sp54 == 1) { - do { - if (var_s2->unk4->unk0->unk10 != 0) { - func_800BAAE4(var_s2); - temp_s1 = var_s2->unk4; - temp_s0 = temp_s1->unk0; - if (func_800BAB68(var_s2, temp_s0, var_s3) == 0) { - func_800BA7A0(var_s2, temp_s0, var_s3); - temp_v0 = temp_s0->unk8; - temp_s0->unk2 = temp_s0->unk2 - 1; - if (temp_v0 > 0) { - temp_s0->unk8 = temp_v0 - 1; - } - var_s1 = temp_s1->unk4; - if (var_s1 != NULL) { -loop_7: - temp_s0_2 = var_s1->unk0; - if (temp_s0_2->unk10 != 0) { - func_800BA90C(var_s2, temp_s0_2); - temp_v0_2 = temp_s0_2->unk8; - temp_s0_2->unk2 = temp_s0_2->unk2 - 1; - if (temp_v0_2 > 0) { - temp_s0_2->unk8 = temp_v0_2 - 1; - } - var_s1 = var_s1->unk4; - if (var_s1 != NULL) { - goto loop_7; - } - } - } - } - } - var_s3 += 1; - var_s2 += 8; - } while (var_s3 != 4); - goto loop_1; - } - func_800BAC0C(sp54); - goto loop_1; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/7.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB498.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB4BC.s") -s32 func_800BAEB0(void *arg0, s32 arg1, s32 arg2) { - s32 temp_v1_2; - void *temp_v1; - void *var_v0; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB4E4.s") - var_v0 = arg0->unk4; - if (var_v0 != NULL) { -loop_1: - temp_v1 = var_v0->unk0; - if (temp_v1 != NULL) { - if ((temp_v1->unk10 != 0) && (arg1 == temp_v1->unk0)) { - if (arg2 != 0) { - temp_v1_2 = temp_v1->unk8; - if ((temp_v1_2 > 0) && (temp_v1_2 < arg2)) { - temp_v1->unk8 = arg2; - return 1; - } - goto block_10; - } - temp_v1->unk4 = 0; - temp_v1->unk2 = 0; - temp_v1->unk10 = *(&D_800D5238 + (arg1 * 4)); - return 1; - } -block_10: - var_v0 = var_v0->unk4; - if (var_v0 == NULL) { - /* Duplicate return node #11. Try simplifying control flow for better match */ - return 0; - } - goto loop_1; - } - return 0; - } - return 0; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/8.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB510.s") -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void *func_800BAF50(void *arg0, s32 arg1) { - void *temp_a1; - void *temp_t1; - void *temp_v0; - void *temp_v1; - void *var_a2; - - temp_v0 = arg0->unk4; - temp_v1 = temp_v0->unk8; - var_a2 = temp_v0; - if (temp_v0 != NULL) { -loop_2: - temp_a1 = var_a2->unk0; - if (temp_a1->unk10 != 0) { - if (*(&D_800D5274 + arg1) >= *(&D_800D5274 + temp_a1->unk0)) { - if (var_a2 == temp_v0) { - temp_v1->unk8->unk4 = temp_v1->unk4; - arg0->unk4 = temp_v1; - temp_v1->unk4 = var_a2; - var_a2->unk8 = temp_v1; - return temp_v1->unk0; - } - if (var_a2 != temp_v1) { - temp_v1->unk8->unk4 = temp_v1->unk4; - arg0->unk4->unk8 = temp_v1->unk8; - temp_t1 = var_a2->unk8; - temp_v1->unk8 = temp_t1; - temp_t1->unk4 = temp_v1; - temp_v1->unk4 = var_a2; - var_a2->unk8 = temp_v1; - return temp_v1->unk0; - } - return temp_v1->unk0; - } - var_a2 = var_a2->unk4; - if (var_a2 == NULL) { - /* Duplicate return node #11. Try simplifying control flow for better match */ - return NULL; - } - goto loop_2; - } - return temp_a1; - } - return NULL; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/9.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB028(void *arg0) { - OSMesg sp34; - OSMesgQueue sp1C; - - osCreateMesgQueue(&sp1C, &sp34, 1); - arg0->unk4 = 1; - arg0->unk8 = &sp1C; - osSendMesg(&D_800ED4C8, arg0, 0); - osRecvMesg(&sp1C, NULL, 1); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/10.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB08C(s32 arg0, s32 arg1, s32 arg2) { - void *sp1C; - void *temp_a0; - void *temp_v0; - - if (D_800ED4C0 != 0) { - temp_a0 = (arg0 * 8) + &D_800ED4A0; - sp1C = temp_a0; - if (func_800BAEB0(temp_a0) == 0) { - temp_v0 = func_800BAF50(temp_a0, arg1); - if (temp_v0 != NULL) { - if (arg2 == 0) { - temp_v0->unk8 = -1; - } else { - temp_v0->unk8 = arg2; - } - temp_v0->unk1 = 0; - temp_v0->unk2 = 0; - temp_v0->unk4 = 0; - temp_v0->unkC = 0; - temp_v0->unk0 = arg1; - temp_v0->unk10 = *(&D_800D5238 + (arg1 * 4)); - } - } - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/11.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB12C(s32 arg0) { - void *temp_v1; - void *var_v0; - - func_800047F0(); - func_800047D0(arg0); - temp_v1 = (arg0 * 8) + &D_800ED4A0; - if (temp_v1->unk0 != 0) { - temp_v1->unk0 = 0; - } - var_v0 = temp_v1->unk4; - if (var_v0 != NULL) { - do { - var_v0->unk0->unk10 = 0; - var_v0 = var_v0->unk4; - } while (var_v0 != NULL); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/12.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB198(s32 arg0, s32 arg1) { - void **temp_v1; - void **var_s0; - void *temp_s1; - void *temp_v0; - - temp_s1 = (arg0 * 8) + &D_800ED4A0; - temp_v1 = temp_s1->unk4; - var_s0 = temp_v1; - if ((*temp_v1)->unk10 != 0) { - if (temp_v1 != NULL) { -loop_2: - temp_v0 = var_s0->unk0; - if (temp_v0->unk10 != 0) { - if (arg1 == temp_v0->unk0) { - func_800BAA04(temp_s1, var_s0); - var_s0 = temp_s1->unk4; - } else { - var_s0 = var_s0->unk4; - } - if (var_s0 != NULL) { - goto loop_2; - } - } - } - func_800BAB68(temp_s1, *temp_s1->unk4, arg0); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/13.s") -#endif - -typedef struct { - u32 _000; - u32 _004; - u32 *_008; -} UnkStruct800ED4A0_004; -typedef struct { - u32 _000; - UnkStruct800ED4A0_004 *_004; -} UnkStruct800ED4A0; extern UnkStruct800ED4A0 D_800ED4A0[]; -typedef struct { - u32 _000[3][5]; -} UnkStruct800ED320; extern UnkStruct800ED320 D_800ED320[]; -typedef struct { - u32 _000[3][3]; -} UnkStruct800ED410; extern UnkStruct800ED410 D_800ED410[]; - - -extern u32 D_800ED4C0; -extern u32 *D_800ED4C4; -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c -void func_800BB24C(void) { - // ? **temp_t6; - // ? **var_a0; - // ? **var_t0; - // ? **var_v0; - // ? *var_a3; - UnkStruct800ED4A0 *var_t1; - // ? *var_v1; - s32 i, j; - UnkStruct800ED410 *a0; - - // end of stack, start of something else, zeros? - // entry size: 0x3C - // total size; 0x96F0 - // entries: 644 - // D_800ED320 = &D_800ED320; - // start of region of pointers to something - // entry size: 0x24 - // var_t0 = &D_800ED410; - - // region where something is actually written every frame - // entry size: 0x8 - - for (i = 0; i < 644; i++) { - D_800ED4A0[i]._000[0][0] = 0; - D_800ED4A0[i]._000[0][1] = &D_800ED410[i]; - // var_v0 = D._000_800ED410; - D_800ED410[i]._000[0][2] = &D_800ED320[i]; - // var_v1 = D_800ED320; - D_800ED320[i][0][3] = 0; - D_800ED320[i][0][4] = 0; - a0 = &D_800ED410[i]; - for (j = 1; j < 4; j++) { - a0->_004 = &D_800ED410[i]; - D_800ED410[i][j][0] = &D_800ED320[i]; - D_800ED410[i][j][2] = &D_800ED320[i]; - // var_v0 += 0xC; - - D_800ED320[i][j][3] = 0; - D_800ED320[i][j][4] = 0; - // var_v1 += 0x14; - a0 = a0->_004; - } - D_800ED410[i]._004 = 0; - D_800ED4A0[i]._004->_008 = &D_800ED410[i]; - // D_800ED320 += 0x3C; - // D_800ED410 += 0x24; - // D_800ED4A0 += 8; - // } while (var_a3 != &D_800ED410); - } - D_800ED4C0 = 1; - D_800ED4C4 = D_80048E9C; - osCreateThread(&D_800ECD70, 100000000, func_800BAD0C, NULL, &D_800ECF50[0x3D0], 0x34); - D_800ECF50[0] = 0xFEDCBA98; // canary is never checked - osStartThread(&D_800ECD70); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/14.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB364(s32 arg0, s32 arg1, s32 arg2) { - s32 sp2C; - s32 sp28; - s32 sp24; - s32 sp18; - - sp24 = arg0; - sp18 = 0; - sp28 = arg1; - sp2C = arg2; - func_800BB028(&sp18); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/15.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB394(s32 arg0) { - s32 sp24; - s32 sp18; - - sp24 = arg0; - sp18 = 1; - func_800BB028(&sp18); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/16.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB3C0(s32 arg0, s32 arg1) { - s32 sp2C; - s32 sp28; - s32 sp1C; - - sp28 = arg0; - sp1C = 2; - sp2C = arg1; - func_800BB028(&sp1C); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/17.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB3F0(void) { - s32 sp1C; - - sp1C = 3; - func_800BB028(&sp1C); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/18.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB418(void) { - s32 sp1C; - - sp1C = 4; - func_800BB028(&sp1C); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/19.s") -#endif - -#ifdef MIPS_TO_C -void func_800BB440(void) { - s32 sp1C; - - sp1C = 5; - func_800BB028(&sp1C); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/20.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB468(s32 arg0, ? arg1) { - func_800BB364(D_800ED4C4, arg0, arg1); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/21.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB498(void) { - func_800BB394(D_800ED4C4); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/22.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c - -void func_800BB4BC(s32 arg0) { - func_800BB3C0(D_800ED4C4, arg0); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_10//ovl1_10/23.s") -#endif - -void func_800BB4E4(s32 arg0, s32 arg1, s32 arg2) { - func_800BB364(D_80048E9C[arg0], arg1, arg2, arg0); -} - -void func_800BB510(s32 arg0) { - func_800BB394(D_80048E9C[arg0], arg0); -} - -void func_800BB53C(s32 arg0, s32 arg1) { - func_800BB3C0(D_80048E9C[arg0], arg1, arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_10/func_800BB53C.s") diff --git a/src/ovl1/ovl1_11.c b/src/ovl1/ovl1_11.c index 383724194..455db5be0 100644 --- a/src/ovl1/ovl1_11.c +++ b/src/ovl1/ovl1_11.c @@ -1,81 +1,9 @@ -#include -#include -#include "D_8004A7C4.h" -#include "ovl1_6.h" -#include "ovl0/ovl0_2_5.h" +#include "common.h" -extern Gfx *gDisplayListHeads[4]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_11/func_800BB580.s") -void func_800BB580(s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_11/func_800BB588.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_11/func_800BB6B0.s") - -extern s32 D_800D6B24; -extern u8 D_800D6B2B; -extern s16 D_800D6B30; - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_11/func_800BB588.s") - - -u32 func_800AB0F4(struct GObj *); - -// regalloc on gDisplayListHeads[1] -#ifdef NON_MATCHING -void func_800BB6B0(struct GObj *arg0) { - s32 tmp_2; - tmp_2 = arg0->objId; - - gDPPipeSync(gDisplayListHeads[0]++); - gSPClearGeometryMode(gDisplayListHeads[0]++, G_ZBUFFER); - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[tmp_2]); - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); - - switch (func_800AB0F4(arg0)) { - case 19: - func_800143A4_ovl1(arg0); - break; - case 27: - case 29: - func_8001585C_ovl1(arg0); - break; - case 20: case 22: case 24: - case 26: - gDPPipeSync(gDisplayListHeads[1]++); - gSPClearGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); - gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[tmp_2]); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); - - // possibly draws something? - func_80014AD4_ovl1(arg0); - - gDPPipeSync(gDisplayListHeads[1]++); - gSPSetGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); - break; - case 28: case 30: - gDPPipeSync(gDisplayListHeads[1]++); - gSPClearGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); - gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[tmp_2]); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); - - func_80015BCC_ovl1(arg0); - - gDPPipeSync(gDisplayListHeads[1]++); - gSPSetGeometryMode(gDisplayListHeads[1]++, G_ZBUFFER); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); - break; - default: break; - } - - gDPPipeSync(gDisplayListHeads[0]++); - gSPSetGeometryMode(gDisplayListHeads[0]++, G_ZBUFFER); - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_11/func_800BB6B0.s") -#endif - -struct GObj func_8000A180(s32,s32,s32,s32); - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_11/func_800BB98C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_11/func_800BB98C.s") diff --git a/src/ovl1/ovl1_12.c b/src/ovl1/ovl1_12.c index 5abe529cc..29f784569 100644 --- a/src/ovl1/ovl1_12.c +++ b/src/ovl1/ovl1_12.c @@ -1,111 +1,9 @@ -#include -#include +#include "common.h" -#include "ovl1_12.h" -extern struct UnkStruct800ED4E0 *D_8022B7C0, *D_8022AED8, *D_8022B428; -extern s32 D_800D6F3C; -extern s32 D_800ED4EC; -void func_800BBC6C(void); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_12/func_800BBBA0.s") -void func_800BBBA0(void) { - if ((D_800D6F3C < 0) || (D_800D6F3C >= 7)) { - D_800D6F3C = 0; - } - switch (D_800D6F3C) { - case 0: - D_800ED4EC = 0; - break; - case 3: - case 4: - D_800ED4E0[0] = &D_8022B7C0; - func_800BBC6C(); - func_800BB440(); - break; - case 5: - D_800ED4E0[0] = &D_8022AED8; - func_800BBC6C(); - func_800BB440(); - break; - case 6: - D_800ED4E0[0] = &D_8022B428; - func_800BBC6C(); - func_800BB440(); - default: - break; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_12/func_800BBC6C.s") -extern s32 gKirbyLives, gKirbyStars; -extern f32 gKirbyHp; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_12/func_800BBDC4.s") -extern u32 D_800BE4EC; -extern u32 D_800BE52C; -extern u32 D_800BE500; -extern u32 D_800BE530; -extern u32 D_800BE504; -extern u32 D_800BE534; -extern u32 D_800BE508; -extern u32 D_800BE538; -extern u32 D_800BE50C; -extern u32 D_800BE4FC; - -extern u32 D_800ED4F4; - -extern u8 D_800D6E20[]; -extern u32 D_800D6E30; -extern u32 D_800D6F38; - -extern u32 D_800D6E54; -extern u32 D_800D6E64; -extern u32 gHudDisplayMode; - -void func_800BBC6C(void) { - u32 i; - - D_800ED4EC = 0; - D_800ED4F4 = 0; - set_hard_rng_seed(D_800ED4E0[0]->unk0); - D_800BE4EC = D_800ED4E0[0]->unk4; - D_800BE500 = D_800BE52C = D_800ED4E0[0]->unk8; - D_800BE504 = D_800BE530 = D_800ED4E0[0]->unkC; - D_800BE508 = D_800BE534 = D_800ED4E0[0]->unk10; - D_800BE50C = D_800BE538 = D_800ED4E0[0]->unk14; - D_800BE4FC = D_800ED4E0[0]->unk1C; - gKirbyLives = D_800ED4E0[0]->unk20; - gKirbyHp = D_800ED4E0[0]->unk24; - D_800D6E54 = D_800ED4E0[0]->unk28; - gKirbyStars = D_800ED4E0[0]->unk2C; - D_800D6E64 = D_800ED4E0[0]->unk30; - gHudDisplayMode = D_800ED4E0[0]->unk34; - set_soft_rng_seed(D_800ED4E0[0]->unk38); - - for (i = 0; i < 16; i++) { - D_800D6E20[i] = D_800ED4E0[0]->unk40[i]; - } - - D_800D6F38 = D_800ED4E0[0]->unk3C; -} - -#include "ovl0/ovl0_2.h" -extern u32 D_800BE4F8; - - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_12/func_800BBDC4.s") - -void func_800BBF60(void) { - switch (D_800D6F3C) { - case 3: - case 4: - func_800BBDC4(); - return; - case 5: - func_800BBDC4(); - return; - case 6: - func_800BBDC4(); - break; - case 0: - default: - break; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_12/func_800BBF60.s") diff --git a/src/ovl1/ovl1_13.c b/src/ovl1/ovl1_13.c index 6a6577e41..4ee674470 100644 --- a/src/ovl1/ovl1_13.c +++ b/src/ovl1/ovl1_13.c @@ -1,404 +1,77 @@ -#include -#include -#include "D_8004A7C4.h" - -extern s32 D_800D6E8C; -extern f32 gKirbyHp; -extern f32 D_800E7B20[]; -extern void ovl1_TamperCheck(void); - -#ifdef NON_MATCHING -//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 -s32 change_kirby_hp(f32 arg0) { - if ((random_u16() & 3) == 3) { - if (!ovl1_TamperCheck) { - if (arg0 < 0.0f) { - arg0 *= 2; - } else { - arg0 = 0.0f; - } - } - } - if (D_800D6E8C == 0.0f) { - return 0; - } - gKirbyHp += arg0; - if (gKirbyHp <= 0.0f) { - gKirbyHp = 0.0f; - } - if (gKirbyHp > 6.0f) { - gKirbyHp = 6.0f; - } - D_800D6E8C = gKirbyHp; - D_800E7B20[0] = gKirbyHp; - return D_800D6E8C; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/change_kirby_hp.s") -#endif - -extern s32 D_800D6E90; - -void func_800BC0F0(s32 arg0) { - if (arg0 < 0) { - arg0 = 0; - } - if (arg0 >= 3) { - arg0 = 2; - } - D_800D6E90 = arg0 + 0x23; -} - -extern f32 D_800D6E58; -extern f32 D_800D6E5C; -extern s32 D_800D6E94; - -s32 func_800BC11C(f32 arg0) { - f32 temp_f12; - - D_800D6E58 = arg0; - if (D_800D6E58 < 0.0f) { - D_800D6E58 = 0.0f; - } - if (D_800D6E5C < D_800D6E58) { - D_800D6E58 = D_800D6E5C; - } - temp_f12 = (D_800D6E58 / D_800D6E5C) * 30.0f; - if (D_800D6E58 == D_800D6E5C) { - D_800D6E94 = 0x1E; - } else { - if (D_800D6E58 == 0.0f) { - D_800D6E94 = 0; - } else { - if (temp_f12 < 1.0f) { - D_800D6E94 = 1; - } else { - D_800D6E94 = temp_f12; - } - } - } - return D_800D6E94; -} - -extern f32 D_800D6E58; -extern f32 D_800D6E5C; -extern s32 D_800D6EB8; -extern s32 D_800D6EAC; -extern s32 D_800D6E94; - -void func_800BC1FC(s32 arg0) { - D_800D6E58 = arg0; - D_800D6E5C = D_800D6E58; - D_800D6EAC = D_800D6EB8 = 0; - D_800D6E94 = 0x1E; -} - -extern s32 gKirbyStars; - -void change_kirby_stars(s32 arg0) { - gKirbyStars += arg0; -} - -extern s32 gKirbyLives; -extern s32 D_800D6E88; - -void change_kirby_lives(s32 arg0) { - gKirbyLives += arg0; - if (gKirbyLives < 0) { - gKirbyLives = 0; - } - if (gKirbyLives > 100) { - gKirbyLives = 100; - } - D_800D6E88 = gKirbyLives; -} - -extern s32 D_800D6E54; -extern s32 D_8012E850; - -void func_800BC298(s32 arg0) { - if ((random_u16() & 3) == 2) { - if (func_800F88A0(arg0) == 0) { - D_8012E850 = D_800D6E90 = D_800D6E54 = 0; - return; - } - } - if (arg0 < 0) { - arg0 = 0; - } - if (arg0 >= 0x24) { - arg0 = 0x23; - } - D_800D6E90 = arg0; - D_800D6E54 = arg0; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC328.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC4C0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC664.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BC800.s") - -extern Gfx *gDisplayListHeads[4]; -extern s32 D_800E9AA0[]; - -void draw_pause_bg(s32 *arg0) { - Gfx* list = gDisplayListHeads[0]; - if (D_800E9AA0[*arg0] != 0) { - gDPPipeSync(list++); - gDPSetCycleType(list++, G_CYC_1CYCLE); - gDPSetRenderMode(list++, G_RM_OPA_SURF, CVG_DST_CLAMP | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_IN, G_BL_1MA)); - gDPSetPrimColor(list++, 0, 0, 0xF4, 0xD8, 0xA2, 0xFF); - gDPSetCombineLERP(list++, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE, 0, 0, 0, PRIMITIVE); - gDPFillRectangle(list++, 0, 0, 320, 182); - gDisplayListHeads[0] = list; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BCA5C.s") - -extern f32 gEntitiesNextPosXArray[]; -extern f32 gEntitiesNextPosYArray[]; -extern s32 D_800E9AA0[]; -extern s32 D_800E98E0[]; -extern s32 D_800E9FE0[]; -extern s32 D_800AD1A0; - -typedef struct { - u8 filler0[4]; -} struct_800ED500; - -typedef struct { - u8 filler0[0x13]; - u8 unk13; -} struct_800AC954; - -extern struct_800ED500 D_800ED500; - -#ifdef NON_MATCHING -//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 -void func_800BCEEC(s32 arg0) { - s32 temp; - struct_800AC954 *temp_v0; - - temp_v0 = func_800AC954(arg0, 0, &D_800ED500); - temp_v0->unk13 |= 4; - func_8000A5FC(arg0, &D_800AD1A0, 0xA, 0x80000000, 0xA); - func_800AF96C(1); - gEntitiesNextPosXArray[D_8004A7C4->objId] = 7.0f; - gEntitiesNextPosYArray[D_8004A7C4->objId] = 182.0f; - D_800E9FE0[D_8004A7C4->objId] = 0; - func_800AFA14(D_800E98E0[D_8004A7C4->objId] = D_800E9AA0[D_8004A7C4->objId] = D_800E9FE0[D_8004A7C4->objId], D_800E9FE0); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BCEEC.s") -#endif - -extern s32 gHudDisplayMode; -extern s32 D_800D5460[]; -extern s32 D_800ED510[]; - -#ifdef NON_MATCHING -void draw_lives_digit(s32 arg0, s32 arg1) { - s32 *phi_a0; - s32 *phi_v1; - s32 i; - - phi_a0 = (u16*)D_800ED510 + arg0 + 0xa00; - phi_v1 = 0x10 + func_800A8BAC(D_800D5460[gHudDisplayMode * 10 + arg1]); - - for (i = 0; i < 30; i ++) { - phi_a0[i * 0xa0 + 0] = phi_v1[i * 0xa + 0]; - phi_a0[i * 0xa0 + 1] = phi_v1[i * 0xa + 1]; - phi_a0[i * 0xa0 + 2] = phi_v1[i * 0xa + 2]; - phi_a0[i * 0xa0 + 3] = phi_v1[i * 0xa + 3]; - phi_a0[i * 0xa0 + 4] = phi_v1[i * 0xa + 4]; - phi_a0[i * 0xa0 + 5] = phi_v1[i * 0xa + 5]; - phi_a0[i * 0xa0 + 6] = phi_v1[i * 0xa + 6]; - phi_a0[i * 0xa0 + 7] = phi_v1[i * 0xa + 7]; - phi_a0[i * 0xa0 + 8] = phi_v1[i * 0xa + 8]; - - - phi_a0[(i + 1) * 0xa0 + 0] = phi_v1[(i + 1) * 0xa + 0]; - phi_a0[(i + 1) * 0xa0 + 1] = phi_v1[(i + 1) * 0xa + 1]; - phi_a0[(i + 1) * 0xa0 + 2] = phi_v1[(i + 1) * 0xa + 2]; - phi_a0[(i + 1) * 0xa0 + 3] = phi_v1[(i + 1) * 0xa + 3]; - phi_a0[(i + 1) * 0xa0 + 4] = phi_v1[(i + 1) * 0xa + 4]; - phi_a0[(i + 1) * 0xa0 + 5] = phi_v1[(i + 1) * 0xa + 5]; - phi_a0[(i + 1) * 0xa0 + 6] = phi_v1[(i + 1) * 0xa + 6]; - phi_a0[(i + 1) * 0xa0 + 7] = phi_v1[(i + 1) * 0xa + 7]; - phi_a0[(i + 1) * 0xa0 + 8] = phi_v1[(i + 1) * 0xa + 8]; - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/draw_lives_digit.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/draw_hp_segment.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD208.s") - -void draw_kirby_stars(s32 arg0) { - s32 i; - - if (arg0 < 0) { - arg0 = 0; - } - - if (arg0 > 30) { - arg0 = 30; - } - - for (i = 0; i != 30; i++) { - if (i < arg0) { - draw_star_segments(i, 1); - } else { - draw_star_segments(i, 0); - } - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/draw_star_segments.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD460.s") - -extern s32 D_800D6EA0; - -void draw_kirby_lives(void) { - s32 temp2; - s32 temp_a2; - - temp_a2 = D_800D6E88 - 1; - if (D_800D6EA0 != D_800D6E88) { - D_800D6EA0 = D_800D6E88; - if (temp_a2 > 99) { - temp_a2 = 99; - } - if (temp_a2 < 0) { - temp_a2 = 0; - } - draw_lives_digit(0x22, temp_a2 / 10); - - temp2 = temp_a2; - temp_a2 = temp2 % 10; - draw_lives_digit(0x34, temp_a2); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD6E0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD7FC.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BD92C.s") - -extern u8 D_800D55F8[]; -extern s32 D_800D6EA8; - -void func_800BDAA8(void) { - if (D_800D6E90 != D_800D6EA8) { - func_800BD460(0xE4, D_800D55F8[D_800D6E90 * 2]); - func_800BD460(0x108, D_800D55F8[D_800D6E90 * 2 + 1]); - } - D_800D6EA8 = D_800D6E90; -} - -extern s32 D_800BE508; -extern s32 D_800BE4FC; -extern s32 D_800D6E98; -extern s32 D_800D6EA4; -extern s32 D_800D6EB0; - -void func_800BDB18(void) { - s32 i; - - if (gKirbyStars >= 30) { - do { - gKirbyStars -= 30; - change_kirby_lives(1); - } while (gKirbyStars >= 30); - } - - if ((D_800BE508 != 0) || (D_800BE4FC != 0)) { - for (i = 0; i < (u32) gKirbyHp; i++) { - draw_hp_segment(i, 1); - } - D_800D6E8C = D_800D6EA4 = (u32) gKirbyHp; - } - draw_kirby_stars(gKirbyStars); - D_800D6E98 = D_800D6EB0 = gKirbyStars; -} - -extern s16 D_800D6B30; - -void func_800BDD08(void) { - draw_kirby_lives(); - if (D_800D6B30 != 0) { - func_800BD6E0(); - if (D_800D6E94 == 0) { - func_800BD7FC(); - } - func_800BD92C(); - } - func_800BDAA8(); -} - -void func_800BDD68(void) { - func_800BDAA8(); -} - -void func_800BDD88(s32 arg0) { - -} - -void func_800BDD90(s32 arg0) { - -} - -extern s32 D_800D6EA8; -extern s32 D_800D6EA0; -extern s32 D_800D6EB0; -extern s32 D_800D6EAC; -extern s32 D_800D6EA4; -extern s32 D_800D6EC0; -extern s32 D_800F4D10; -extern s32 D_800D6EBC; -extern s32 D_800D6EB8; -extern s32 D_800D6EB4; - -void func_800BDD98(void) { - D_800D6EA8 = -1; - D_800D6EA4 = D_800D6EAC = D_800D6EB0 = D_800D6EA0 = 0; - D_800D6EB4 = D_800D6EB8 = D_800D6EBC = D_800F4D10 = D_800D6EC0 = 0; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BDE0C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BDF2C.s") - -void func_800BDFB8(s32 *arg0, s32 arg1, u32 arg2) { - s32 i; - for (i = 0; i < arg2; i++) { - if (arg0[arg1 + i] == 0xffff) { - break; - } - func_800A8BAC(arg0[arg1 + i]); - } -} - -void func_800BE028(s32 *arg0, s32 arg1, u32 arg2) { - s32 i; - for (i = 0; i < arg2; i++) { - if (arg0[arg1 + i] == 0xffff) { - break; - } - func_800A8A7C(arg0[arg1 + i]); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BE098.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BE320.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_13/func_800BE374.s") +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/change_kirby_hp.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC0F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC11C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC1FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/change_kirby_stars.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/change_kirby_lives.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC298.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC4C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC664.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BC800.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/draw_pause_bg.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BCA5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BCEEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/draw_lives_digit.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/draw_hp_segment.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BD208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/draw_kirby_stars.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/draw_star_segments.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BD460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/draw_kirby_lives.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BD6E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BD7FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BD92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/n_alSynRemovePlayer.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDB18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDD68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDD88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDD90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDD98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDE0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDF2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BDFB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BE028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BE098.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BE320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_13/func_800BE374.s") diff --git a/src/ovl1/ovl1_1_2.c b/src/ovl1/ovl1_1_2.c new file mode 100644 index 000000000..b1d9111fd --- /dev/null +++ b/src/ovl1/ovl1_1_2.c @@ -0,0 +1,195 @@ +#include "common.h" +#include "types.h" +// #include "main/object_manager.h" +#include "GObj.h" +#include "ovl0/ovl0_2.h" +#include "main/contpad.h" + +extern struct Overlay *gOverlayTable[]; + +void print_error_stub(char* arg0, ...) { + +} + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A428C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A4414.s") + +// executes the virtual function at index arg0 +void call_virtual_function(u32 idx, u32 max, VTABLE callbackTbl) { + if (idx < max) callbackTbl[idx](omCurrentObj); +} + +f32 vec3_dot_product(Vector *arg0, Vector *arg1) { + f32 dotProduct; + f32 dotProductMag; + + dotProduct = (arg0->x * arg1->x) + (arg0->y * arg1->y) + (arg0->z * arg1->z); + dotProductMag = ABSF(dotProduct); + if (0.00001f < dotProductMag) { + return dotProduct; + } + return 0.0f; +} + +f32 vec3_mag_square(Vector *arg0) { + f32 x = arg0->x; + f32 y = arg0->y; + f32 z = arg0->z; + return (x * x) + (y * y) + (z * z); +} + +f32 vec3_dist_square(Vector *v1, Vector *v2) { + f32 x2 = v2->x - v1->x; + f32 y2 = v2->y - v1->y; + f32 z2 = v2->z - v1->z; + return (x2 * x2) + (y2 * y2) + (z2 * z2); +} + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A4598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A465C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A4794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A4958.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A4B34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A4DB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A4F48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A509C.s") + +void copy_controller_inputs_to_kirby_controller(void) { + if (!kirby_in_inactionable_state()) { + gKirbyController.buttonHeld = gPlayerControllers[0].buttonHeld; + gKirbyController.buttonPressed = gPlayerControllers[0].buttonPressed; + gKirbyController.buttonHeldLong = gPlayerControllers[0].buttonHeldLong; + gKirbyController.buttonReleased = gPlayerControllers[0].buttonReleased; + gKirbyController.stickX = gPlayerControllers[0].stickX; + gKirbyController.stickY = gPlayerControllers[0].stickY; + } else { + gKirbyController.buttonHeld = 0; + gKirbyController.buttonPressed = 0; + gKirbyController.buttonHeldLong = 0; + gKirbyController.buttonReleased = 0; + gKirbyController.stickX = 0; + gKirbyController.stickY = 0; + } +} + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A52F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5404.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5468.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A54FC.s") + +s32 correct_stick_x(u32 channel) { + s32 x; + + if (channel >= 4) channel = 3; + + x = gPlayerControllers[channel].stickX; + + if (x > 0) { + if (x < 8) x = 8; + if (x >= 0x49) x = 0x48; + x -= 8; + } + else if (x < 0) { + if (x >= -7) x = -8; + if (x < -0x48) x = -0x48; + x += 8; + } + return x; +} + +s32 correct_stick_y(u32 cont) { + s32 y; + + if (cont >= 4) cont = 3; + + y = gPlayerControllers[cont].stickY; + if (y > 0) { + if (y < 8) y = 8; + if (y >= 0x49) y = 0x48; + y -= 8; + } + else if (y < 0) { + if (y >= -7) y = -8; + if (y < -0x48) y = -0x48; + y = y + 8; + } + return y; +} + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5660.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A56F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5744.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A57A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A57C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A58E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5AD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5B14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5B3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5BDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5C60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5D24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5D88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A5F94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A6208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A62D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A6534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A6820.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A699C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_1_2/func_800A6A18.s") + +void func_800A6B18(void) { +} + +void load_overlay(u32 arg0) { + while (arg0 >= 0x14) { + // ...were they going to do anything to remedy this issue? + } + dma_overlay_load(gOverlayTable[arg0]); +} + +// some sort of integrity check +u8 ovl1_TamperCheck(void) { + s32 buf[4]; + + dma_read(0x00000F10, &buf, 0x10); + if (buf[0] != 0x04080040) { + return 0; + } else if (buf[1] != 0x02081040) { + return 0; + } + else return 1; +} diff --git a/src/ovl1/ovl1_2.c b/src/ovl1/ovl1_2.c index ab72279bc..49e30603c 100644 --- a/src/ovl1/ovl1_2.c +++ b/src/ovl1/ovl1_2.c @@ -1,239 +1,25 @@ -#include -#include +#include "common.h" -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A6BC0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A6BC0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A6E64.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A6E64.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A6F40.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A6F40.s") -#include "unk_structs/D_800D79D8.h" -extern f32 D_800D7A28[]; -extern f32 D_800D7A50[]; -extern f32 D_800D7A78[]; -extern f32 D_800D7AA0[]; -extern f32 D_800D7AC8[]; -extern f32 D_800D7AF0[]; -extern const f32 D_800D5CAC; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A6F68.s") -void func_800A6F68(u16 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9) { - f32 f_65535f; - u16 idx; - f32 tmp; - struct UnkStruct800D79D8 *st; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A70C4.s") - idx = (((arg0 - 10) >> 1)); - tmp = arg6; - st = D_800D79D8[idx]; - if (st) { - f_65535f = D_800D5CAC; - if (arg1 != f_65535f) { - st->unk3C = arg1; - D_800D7A28[idx] = arg1; - } - if (arg2 != f_65535f) { - st->unk40 = arg2; - D_800D7A50[idx] = arg2; - } - if (arg3 != f_65535f) { - st->unk44 = arg3; - D_800D7A78[idx] = arg3; - } - if (arg4 != f_65535f) { - st->unk48 = arg4; - D_800D7AA0[idx] = arg4; - } - if (arg5 != f_65535f) { - st->unk4C = arg5; - D_800D7AC8[idx] = arg5; - } - if (tmp != f_65535f) { - st->unk50 = tmp; - D_800D7AF0[idx] = tmp; - } - if (arg7 != f_65535f) { - st->unk54 = arg7; - } - if (arg8 != f_65535f) { - st->unk58 = arg8; - } - if (arg9 != f_65535f) { - st->unk5C = arg9; - } - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A7160.s") -extern const f32 D_800D5CB0; -void func_800A70C4(u16 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { - f32 f_65535f; - f32 tmp; - struct UnkStruct800D79D8 *st; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A71A0.s") - st = D_800D79D8[(u16)(arg0 - 10 >> 1)]; - tmp = arg4; - if (st) { - f_65535f = D_800D5CB0; - if (arg1 != f_65535f) { - st->unk20 = arg1; - } - if (arg2 != f_65535f) { - st->unk24 = arg2; - } - if (arg3 != f_65535f) { - st->unk28 = arg3; - } - if (tmp != f_65535f) { - st->unk2C = tmp; - } - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A71E0.s") -void func_800A7160(u16 arg0, u32 arg1) { - struct UnkStruct800D79D8 *st; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A72AC.s") - st = D_800D79D8[(u16)(arg0 - 10 >> 1)]; - if (st) { - st->unk80 |= arg1; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A7348.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A71A0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A7394.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A71E0.s") - -extern struct GObj *D_800D79BC; - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A72AC.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7348.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7394.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A73B0.s") - -void func_800A74B0(void) { - do {} - while (func_80020EB4_ovl1() != 0); -} - -extern u32 sMusicCount, sSoundCount; -extern u16 D_800C0530[2]; -// regalloc moment -#ifdef NON_MATCHING -void func_800A74D8(void) { - func_80020C88_ovl1(); - play_music(0, 0x99999999); - while (func_80020BB8_ovl1(0) != 0); - func_80020998_ovl1(0, 0x7800); - sMusicCount = D_800C0530[0] - 1; - sSoundCount = D_800C0530[1]; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A74D8.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7554.s") - -extern s32 D_800D6B44; -extern const char *D_800D5CC0; -extern s16 D_800BFFC0[]; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A75B0.s") - -extern const char D_800D5CE0[]; -extern const char D_800D5CF8[]; -extern const char D_800D5D14[]; -extern s16 D_800C0040[]; -void func_80023CB0_ovl1(u16); - -void play_sound(s32 arg0) { - if (arg0 == 0x99999999) { - print_error_stub(&D_800D5CE0, arg0); // "use AllStopFGM macro.\n" - return; - } - if (arg0 & 0x80000000) { - print_error_stub(&D_800D5CF8, arg0); // "use stopLoopSeml function.\n" - return; - } - if (D_800C0040[arg0] >= 0) { - func_80023CB0((u16)D_800C0040[arg0]); - return; - } - print_error_stub(&D_800D5D14, arg0); // "Error: No Entry FGM Number: %d\n" -} - -s32 sound_str_atoi(u8 *str) { - return ((str[0] * 100) + (str[1] * 10) + (str[2] * 1)) - - (( '0' * 100) + ( '0' * 10) + ( '0' * 1)); -} - -extern u8 sMusicNames[][0x18]; -s32 get_music_id_from_index(s32 idx) { - if (idx < 0 || idx >= sMusicCount) { - return -1; - } - return sound_str_atoi(sMusicNames[idx]); -} - -extern u8 sSoundNames[][0x18]; -s32 get_sound_id_from_index(s32 idx) { - if (idx < 0 || idx >= sSoundCount) { - return -1; - } - return sound_str_atoi(sSoundNames[idx]); -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A77E8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7870.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A78D0.s") - -void func_800A7A70(s32 arg0, s32 arg1, s32 arg2); - -void func_800A7A40(void) { - func_800A7A70(1, 0x30007, 0x30008); -} - -void func_800A7A70(s32 arg0, s32 arg1, s32 arg2) { - s32 tmp = func_800A9AA8(arg1, 3); - - func_8009B768(arg0, tmp, func_800A9AA8(arg2, 3)); -} - -extern s32 D_8012D920; -extern Gfx *gDisplayListHeads[4]; -extern void func_8009E8F4(s32 hidden, u32 a, Gfx *b); - -void func_800A7ABC(s32 arg0) { - if (D_8012D920 != 1) { - gDPPipeSync(gDisplayListHeads[1]++); - gDPSetCycleType(gDisplayListHeads[1]++, G_CYC_1CYCLE); - gDPPipelineMode(gDisplayListHeads[1]++, G_PM_1PRIMITIVE); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_NOOP2); - func_8009E8F4(arg0, 3, &gDisplayListHeads[1]); - gDPPipeSync(gDisplayListHeads[1]++); - gDPSetColorDither(gDisplayListHeads[1]++, G_CD_MAGICSQ); - gDPSetAlphaDither(gDisplayListHeads[1]++, G_AD_DISABLE); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_NOOP2); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7BF4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7E48.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7E7C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7EB4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7EE4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7F10.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7F74.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A802C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A8100.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A8234.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2/func_800A73B0.s") diff --git a/src/ovl1/ovl1_2.h b/src/ovl1/ovl1_2.h new file mode 100644 index 000000000..71fde17b1 --- /dev/null +++ b/src/ovl1/ovl1_2.h @@ -0,0 +1,8 @@ +#ifndef OVL1_2_H +#define OVL1_2_H + +extern s32 D_800D6B24; +extern s32 sMusicCount; +extern s32 sSoundCount; + +#endif // OVL1_2_H diff --git a/src/ovl1/ovl1_2_2.c b/src/ovl1/ovl1_2_2.c new file mode 100644 index 000000000..37c9c7a5a --- /dev/null +++ b/src/ovl1/ovl1_2_2.c @@ -0,0 +1,49 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A74B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A74D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/play_music.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/play_sound.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/sound_str_atoi.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/get_music_id_from_index.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/get_sound_id_from_index.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A77E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A78D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7A70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7ABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7BF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7E48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7E7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7EB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7EE4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A7F74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A802C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A8100.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_2_2/func_800A8234.s") diff --git a/src/ovl1/ovl1_3.c b/src/ovl1/ovl1_3.c index 340266433..33fe24842 100644 --- a/src/ovl1/ovl1_3.c +++ b/src/ovl1/ovl1_3.c @@ -1,435 +1,169 @@ -#include -#include -#include "D_8004A7C4.h" -#include "ovl0/ovl0_2_5.h" -#include "ovl1/ovl1_6.h" -#include "unk_structs/D_800D79D8.h" - -struct UnkWhat { - u32 unk0; - u32 unk4; - u32 unk8; - u32 unkC; - u32 unk10[0x10000 - 0x10]; -}; -extern f32 D_800D5DD8; - -struct CacheLine { - u32 unk0; - u32 unk4; - u32 unk8; - u32 unkC; -}; - -struct BGHeader { - u8 fmt; - u8 siz; - u8 unk2; // color count? - u16 width; - u16 height; - u32 imgOffset; - u32 palOffset; -}; - -extern struct BGHeader ***D_800D0104; - -extern u32 ***D_800D00C4; - - -#define ALIGN100(x) (((u32)x + 0xFF) & ~(0x100)) - - -extern u32 D_800D7BB4; -extern u32 D_800D7BB0; -extern u32 D_800D7BB8; -extern u32 D_800D7C10; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A82C0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8310.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8358.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A840C.s") - -// regalloc -#ifdef NON_MATCHING -void func_800A84F0(u8 *arg0) { - D_800D7C10 += ((u32)arg0 + 0xF) & 0xFFFFF0; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A84F0.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8518.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8540.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A855C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8564.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8578.s") - -s32 func_800A86C8(s32, s32 *, s32 *); // extern -extern s32 D_800D7BF0[]; -extern s32 D_800D7C00[]; - -s32 func_800A8648(void) { - int ret = 0; - int i; - - for (i = 0; i < 4; i++) { - ret += func_800A86C8(i, &D_800D7BF0[i], &D_800D7C00[i]); - } - return ret; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A86C8.s") - -extern u32 D_800D00E4[], D_800D0124[]; -extern u32 D_800D6E78; -extern u32 D_800D6E68; -extern u32 D_800D6E7C; -extern u32 D_800D6E6C; -extern u32 D_800D6E80; -extern u32 D_800D6E70; -extern u32 D_800D6E84; -extern u32 D_800D6E74; +#include "common.h" -struct UnkStruct800C4654{ - u32 unk0; - u32 unk4; - u32 unk8; - u32 unkC; -}; -extern struct UnkStruct800C4654 D_800C4654[5]; -extern u32 D_800D7BC0[]; -extern u32 D_800D7BD0[]; -extern u32 D_800D7BE0[]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A82C0.s") -extern u32 D_800D0144; -extern u32 D_800D7BB8; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8310.s") -// doozy / 10 -#ifdef ___MIPS_TO_C -s32 func_800A8724(s32 arg0) { - int i; - int j; - int ret; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8358.s") - func_800A82C0(); - for (i = 0; i < 32; i++) { - for (j = 0; j < D_800D00E4[i]; j++) { - D_800D00C4[i][j] = 0; - } - for (j = 0; j < D_800D0124[i]; j++) { - D_800D0104[i][j] = 0; - } - } +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A840C.s") - ret = 0; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A84F0.s") - for (i = 0; i < 4; i++) { - if (D_800C4654[arg0].unk0 != 0) { - if (D_800C4654[arg0].unk0 != -1) { - s32 tmp = func_800A840C(D_800D7BB8, i, D_800C4654[arg0]); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8518.s") - D_800D7BD0[i] = tmp; - if (tmp == 0) { - ret++; - } - } else { - s32 tmp = func_800A840C(D_800C4654[arg0], i, D_800C4654[arg0]); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8540.s") - D_800D7BD0[i] = tmp; - if (tmp == 0) { - ret++; - } - } - } - D_800D7BE0[i] = D_800D7BB8 - D_800D7BB8; - D_800D7BC0[i] = D_800D7BD0[i]; - } - D_800D6E78 = 0; - D_800D6E68 = 0; - D_800D6E7C = 0; - D_800D6E6C = 0; - D_800D6E80 = 0; - D_800D6E70 = 0; - D_800D6E84 = 0; - D_800D6E74 = 0; - return ret; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8724.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A855C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8934.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8564.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A89E0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8578.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8A7C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8648.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8B0C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A86C8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8BAC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8724.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8934.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A89E0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8A7C.s") -// parses the Header of an S2DEX background file and relocates image/palette offset -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8C40.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8B0C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8CE0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8BAC.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8D64.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8C40.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8E54.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8CE0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8EC0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8D64.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9088.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8E54.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9250.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A8EC0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A94F4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9088.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9648.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9250.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9760.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A94F4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9648.s") -// extern struct { -// u32 unk0; -// u32 unk0; -// u32 unk0; -// u32 unk0; -// } +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9760.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9864.s") -void func_800AF9B8(u16, u8); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A99E4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9864.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9A2C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A99E4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9AA8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9A2C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9B48.s") -extern struct BankHeader *D_800D0184[]; -#ifdef NON_MATCHING -// regalloc moment -s32 func_800A8358(u32); -s32 func_800A9AA8(u32 bankIndex, u32 arg1) { - u32 sp18; - s32 temp_a3; - s32 temp_v0; - u32 *miscTable; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9C78.s") - miscTable = &D_800D0184[bankIndex >> 0x10]->miscBlockTable[bankIndex & 0xFFFF]; - sp18 = D_800D0184[bankIndex >> 0x10]->miscROMOffset; - temp_a3 = ((miscTable[1] - miscTable[0]) + 3) & 0xFFFFFC; - temp_v0 = func_800A8358(temp_a3 | arg1); - dma_read(miscTable[0] + sp18, temp_v0, temp_a3 & 0xFFFFFC); - return temp_v0; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9D64.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9B48.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9DE4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9C78.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9EA4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9D64.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9EC4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9DE4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800A9F98.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9EA4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA018.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9EC4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA038.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA0C4.s") -extern void func_800AEEB4(s32 arg0, f32 arg1); -extern void func_800AEE20(s32 arg0, f32 arg1); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA154.s") -// these arrays are double pointers? -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9F98.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA174.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA2A0.s") -extern void func_800A9F98(s32 arg0, f32 arg1); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA2C8.s") -void func_800AA018(s32 arg0) { - func_800A9F98(arg0, 0.0f); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA2F0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA038.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA368.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA0C4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA3F0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA154.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA49C.s") -void func_800AA174(void) { - D_8004A7C4->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - D_8004A7C4->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - D_8004A7C4->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA5C4.s") - D_8004A7C4->unk3C->angleVec.x = gEntitiesAngleXArray[D_8004A7C4->objId]; - D_8004A7C4->unk3C->angleVec.y = gEntitiesAngleYArray[D_8004A7C4->objId]; - D_8004A7C4->unk3C->angleVec.z = gEntitiesAngleZArray[D_8004A7C4->objId]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA608.s") - D_8004A7C4->unk3C->scaleVec.x = gEntitiesScaleXArray[D_8004A7C4->objId]; - D_8004A7C4->unk3C->scaleVec.y = gEntitiesScaleYArray[D_8004A7C4->objId]; - D_8004A7C4->unk3C->scaleVec.z = gEntitiesScaleZArray[D_8004A7C4->objId]; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA78C.s") -void func_800AA2A0(void) { - func_800A9760(); - func_800AA174(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA7D0.s") -void func_800AA2C8(s32 arg0, s32 arg1, s32 arg2) { - func_800A9864(arg0, arg1, arg2); - func_800AA174(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA864.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA2F0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA888.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA368.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA8E4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA3F0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA934.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA49C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AA96C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA5C4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AAB3C.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA608.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AABD4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA78C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AACC8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA7D0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AAF04.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA864.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AAF34.s") -extern u32 ***D_800D00C4; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA888.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AAFC4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA8E4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB040.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA934.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB0A8.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA96C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB0CC.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAB3C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB0F4.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AABD4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB110.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AACC8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB118.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAF04.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB120.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAF34.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB174.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AAFC4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB1F0.s") -extern f32 D_800D5DF8; -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB040.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB244.s") -void func_800AB0A8(s32 arg0, f32 arg1) { - // D_800D79D8[(arg0 - 10) >> 1]->unk78 = arg1; - struct UnkStruct800D79D8 *new_var; - new_var = D_800D79D8[(arg0 - 10) >> 1]; - new_var->unk78 = arg1; -} -// GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB0A8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB2C0.s") -extern f32 D_800D5DFC; -void func_800AB0CC(s32 arg0) { - // why doesnt just the one-line solution work? - // D_800D79D8[(arg0 - 10) >> 1]->unk74 = D_800D5DFC; - int tmp; - struct UnkStruct800D79D8 *tmp2; - tmp = (arg0 - 10) >> 1; - tmp2 = D_800D79D8[tmp]; - tmp2->unk74 = D_800D5DFC; -} -// GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB0CC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB314.s") -s32 func_800AB0F4(struct GObj *arg0) { - u32* v1 = gSegment4StartArray[arg0->objId]; - return v1[2]; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB390.s") -void func_800AB110(s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB398.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB3A0.s") -void func_800AB118(s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB3F4.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB470.s") -extern Gfx* gDisplayListHeads[]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB478.s") -void func_800AB120(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); - func_800141D4(); -} - -void func_800AB174(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); - gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); - func_80014768(); -} - -void func_800AB1F0(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); - func_80014B4C(arg0); -} - -void func_800AB244(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); - gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); - func_80014FA4(); -} - -void func_800AB2C0(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]) - func_800143A4(); -} - - -void func_800AB314(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); - gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); - func_80014AD4(arg0); -} - -void func_800AB390(s32 arg0) { - -} - -void func_800AB398(s32 arg0) { - -} - -void func_800AB3A0(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); - func_8001585C(); -} - -void func_800AB3F4(struct GObj *arg0) { - gSPSegment(gDisplayListHeads[0]++, 0x04, gSegment4StartArray[arg0->objId]); - gSPSegment(gDisplayListHeads[1]++, 0x04, gSegment4StartArray[arg0->objId]); - func_80015BCC(); -} - -void func_800AB470(s32 arg0) { - -} - -void func_800AB478(s32 arg0) { - -} - -void func_800AB480(s32 arg0) { - -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_3/func_800AB480.s") diff --git a/src/ovl1/ovl1_4.c b/src/ovl1/ovl1_4.c new file mode 100644 index 000000000..a5b80e765 --- /dev/null +++ b/src/ovl1/ovl1_4.c @@ -0,0 +1,3 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_4/func_800AB490.s") diff --git a/src/ovl1/ovl1_5.c b/src/ovl1/ovl1_5.c index 1ddc51ee4..2f1f69b91 100644 --- a/src/ovl1/ovl1_5.c +++ b/src/ovl1/ovl1_5.c @@ -1,159 +1,49 @@ -// mglib? -// todo: is this file mglib, or is ovl5? -// handles something called an spobj? +#include "common.h" -#include -#include -#include "ovl1_5.h" -#include "D_8004A7C4.h" +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AB680.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB680.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AB6D8.s") -extern u32 sTextureImageCommand; -extern u32 sSetTileCommand; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AB790.s") -#define gDPSetTextureImageDynamic(pkt, ptr)\ - {\ - Gfx *_g = (pkt);\ - _g->words.w0 = sTextureImageCommand;\ - _g->words.w1 = ptr;\ - } +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AB804.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ABB4C.s") -extern s8 D_800DD70A; -void func_800AB6D8(Gfx **dlist, u64 *texptr, s16 arg2, s16 arg3); -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB6D8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB790.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AB804.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ABB4C.s") - -extern struct UnkStruct800AC954 *D_800DD6E0; - -struct UnkStruct800AC954 *pop_spobj(void) { - struct UnkStruct800AC954 *tmp; - - tmp = D_800DD6E0; - if (tmp == NULL) { - return NULL; - } - D_800DD6E0 = tmp->unk0; - return tmp; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC5E0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC610.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC688.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC700.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC794.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC820.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC8E0.s") - -void func_800AC924(uObjMtx *mtx) { - mtx->m.A = mtx->m.D = 0x10000; - mtx->m.B = mtx->m.C = 0; - mtx->m.X = mtx->m.Y = 0; - mtx->m.BaseScaleX = mtx->m.BaseScaleY = 0x400; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AC954.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ACB7C.s") - -void func_800ACBDC(struct GObj *arg0) { - if (arg0 == 0) { - arg0 = D_8004A7C4; - } - while (arg0->unk4C != 0) { - func_800ACB7C(arg0->unk4C); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ACC30.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ACC68.s") - -extern Gfx *gDisplayListHeads[4]; - -s32 func_800ACE1C(u8 arg0, u16 *tlut) { - if (arg0 == 2) { - gDPSetTextureLUT(gDisplayListHeads[0]++, G_TT_RGBA16); - gSPObjLoadTxtr(gDisplayListHeads[0]++, tlut); - return 1; - } - return 0; -} - - -#define G_CC_PRIM_RGBA PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0 - -s32 func_800ACE88(struct UnkStruct800AC954 *arg0, u8 arg1) { - gDPSetCycleType(gDisplayListHeads[0]++, G_CYC_1CYCLE); - if ((arg0->renderFlags & 1) != 0) { - if ((arg0->renderFlags & 2) != 0) { - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_XLU_SPRITE, G_RM_AA_XLU_SPRITE2); - gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_XLU | G_OBJRM_ANTIALIAS | G_OBJRM_BILERP) - } else { - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_AA_SPRITE, G_RM_AA_SPRITE2); - gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_ANTIALIAS | G_OBJRM_BILERP); - } - } else if ((arg0->renderFlags & 2) != 0) { - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_XLU_SPRITE, G_RM_XLU_SPRITE2); - gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_XLU | G_OBJRM_BILERP); - } else { - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_SPRITE, G_RM_SPRITE2); - gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_BILERP); - } - switch (arg1) { - case 4: - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, - arg0->primColorRed, - arg0->primColorGreen, - arg0->primColorBlue, - arg0->primColorAlpha - ); - gDPSetCombineLERP(gDisplayListHeads[0]++, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0); - return; - case 3: - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, - arg0->primColorRed, - arg0->primColorGreen, - arg0->primColorBlue, - arg0->primColorAlpha - ); - gDPSetEnvColor(gDisplayListHeads[0]++, - arg0->envColorRed, - arg0->envColorGreen, - arg0->envColorBlue, - arg0->envColorAlpha - ); - gDPSetCombineLERP(gDisplayListHeads[0]++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); - return; - case 2: - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, - arg0->primColorRed, - arg0->primColorGreen, - arg0->primColorBlue, - arg0->primColorAlpha - ); - gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_PRIM_RGBA, G_CC_PRIM_RGBA); - return; - case 0: - gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_DECALRGBA, G_CC_DECALRGBA); - return; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AD1A0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800ADD14.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_5/func_800AE048.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/pop_spobj.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC5E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC610.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC688.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC700.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC820.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC8E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AC954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ACB7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ACBDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ACC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ACC68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ACE1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ACE88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AD1A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800ADD14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_5/func_800AE048.s") diff --git a/src/ovl1/ovl1_6.c b/src/ovl1/ovl1_6.c index e63ca34f1..77a6e645f 100644 --- a/src/ovl1/ovl1_6.c +++ b/src/ovl1/ovl1_6.c @@ -1,307 +1,17 @@ -#include -#include -#include "buffers.h" +#include "common.h" -#include "ovl1_6.h" -#include "D_8004A7C4.h" -#include "unk_structs/D_800DE350.h" -#include "unk_structs/D_800E1B50.h" +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/func_800AE0F0.s") -void func_800AE138(s32); -extern s32 D_800EC9E0; -void func_800AE0F0(void) { - s32 i; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/func_800AE138.s") - for (i = 0; i < 0x70; i++) { - func_800AE138(i); - } - D_800EC9E0 = 0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/request_job.s") -// https://decomp.me/scratch/0l2Df -#ifdef NON_MATCHING -void func_800AE138(s32 arg0) { - f32 lifeline, l2; - - struct Normal *temp_v1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/func_800AEA64.s") - D_800DE350[arg0] = 0; - D_800DD710[arg0] = -1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/request_track.s") - gEntityGObjProcessArray[arg0] = gEntityGObjProcessArray2[arg0] = - gEntityGObjProcessArray3[arg0] = gEntityGObjProcessArray4[arg0] = - gEntityGObjProcessArray5[arg0] = NULL; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/request_track_general.s") - D_800DDE10[arg0] = D_800DDFD0[arg0] = D_800DE190[arg0] = 0; - gEntityVtableIndexArray[arg0] = 0; - D_800DD8D0[arg0] = 0; - D_800E0810[arg0] = 0x10; - - D_800E09D0[arg0] = D_800E0B90[arg0] = D_800D6B10; - - D_800E0D50[arg0] = D_800E0F10[arg0] = -1; - D_800E0490[arg0] = 0; - D_800E0650[arg0] = NULL; - D_800E1B50[arg0] = NULL; - D_800E1ED0[arg0] = -1; - D_800DEDD0[arg0] = 0; - D_800DEF90[arg0] = NULL; - D_800DF150[arg0] = NULL; - - gSegment4StartArray[arg0] = (void *) (D_800DF690[arg0] = D_800DF850[arg0] = -1); - - D_800E02D0[arg0] = D_800DFF50[arg0] = D_800E0110[arg0] = -1 + 1 - 1; - - D_800DFBD0[arg0] = (void *)-1; - - - - l2 = 0.0f; - // monster block - D_800E3050[arg0] = D_800E3210[arg0] = D_800E33D0[arg0] = - D_800E3590[arg0] = D_800E3750[arg0] = D_800E3910[arg0] = - gEntitiesNextPosXArray[arg0] = gEntitiesNextPosYArray[arg0] = gEntitiesNextPosZArray[arg0] = - gEntitiesPosXArray[arg0] = gEntitiesPosYArray[arg0] = gEntitiesPosZArray[arg0] = - D_800E2090[arg0] = D_800E2250[arg0] = D_800E2410[arg0] = - 0.0f; - - D_800E3AD0[arg0] = D_800E3C90[arg0] = D_800E3E50[arg0] = 65535.0f; - - - lifeline = 1.0f; - // D_800E10D0[arg0] = D_800E1290[arg0] = D_800E1450[arg0] = - // gEntitiesAngleXArray[arg0] = gEntitiesAngleYArray[arg0] = gEntitiesAngleZArray[arg0] = 0.0f; - gEntitiesAngleZArray[arg0] = l2; - gEntitiesAngleYArray[arg0] = l2; - gEntitiesAngleXArray[arg0] = l2; - - D_800E10D0[arg0] = D_800E1290[arg0] = D_800E1450[arg0] = 0.0f; - - gEntitiesScaleZArray[arg0] = lifeline; - gEntitiesScaleYArray[arg0] = lifeline; - gEntitiesScaleXArray[arg0] = lifeline; - - // gEntitiesScaleXArray[arg0] = gEntitiesScaleYArray[arg0] = gEntitiesScaleZArray[arg0] = lifeline; - - - D_800E4A90[arg0] = D_800E4C50[arg0] = D_800E4E10[arg0] = - D_800E5A50[arg0] = D_800E5C10[arg0] = D_800E5DD0[arg0] = 0.0f; - - // float array - D_800E5350[arg0] = 1; - if (1) { - D_800E4FD0[arg0] = D_800E5190[arg0] = D_800E5350[arg0]; - } - - D_800E7650[arg0] = 0; - D_800E8AE0[arg0] = 0.0f; - D_800E8220[arg0] = 0.0f; - D_800E83E0[arg0] = 0.0f; - D_800E8760[arg0] = 0.0f; - D_800E8E60[arg0] = 0; - D_800E9020[arg0] = 0.0f; - D_800E76C0[arg0] = 0xFF; - D_800E7730[arg0] = 0xFF; - D_800E77A0[arg0] = 0xFFFF; - D_800E7880[arg0] = 0xFF; - D_800E78F0[arg0] = 0; - D_800E7B20[arg0] = 0.0f; - D_800E7CE0[arg0] = 0; - D_800EA520[arg0] = 0; - D_800EA360[arg0] = 0; - D_800EA1A0[arg0] = 0; - D_800E9FE0[arg0].as_s32 = 0; - D_800E9E20[arg0] = 0; - D_800E9C60[arg0] = 0; - D_800E9AA0[arg0] = NULL; - D_800E98E0[arg0] = 0; - D_800EB320[arg0] = 0.0f; - D_800EB160[arg0] = 0.0f; - D_800EAFA0[arg0] = 0.0f; - D_800EADE0[arg0] = 0.0f; - D_800EAC20[arg0] = 0.0f; - D_800EAA60[arg0] = 0.0f; - D_800EA8A0[arg0] = 0.0f; - D_800EA6E0[arg0] = 0.0f; - D_800EB6A0[arg0] = 0; - D_800EB4E0[arg0] = 0; - D_800EBA20[arg0] = 0.0f; - D_800EB860[arg0] = 0.0f; - D_800EC120[arg0] = -1; - D_800EBF60[arg0] = -1; - D_800EBDA0[arg0] = -1; - D_800EBBE0[arg0] = -1; - D_800EC4A0[arg0] = 0; - D_800EC2E0[arg0].as_s32 = 0; - D_800EC820[arg0] = 0.0f; - D_800EC660[arg0] = 0.0f; - D_800E6150[arg0] = -1; - D_800E5F90[arg0] = -1; - D_800E6D90[arg0] = 0.0f; - D_800E6BD0[arg0] = 0.0f; - D_800E17D0[arg0] = 0.0f; - D_800E1610[arg0] = 0.0f; - D_800E6A10[arg0] = 0.0f; - D_800E6690[arg0] = 0.0f; - D_800E64D0[arg0] = 0.0f; - - temp_v1 = &D_800E6F50[arg0]; - temp_v1->x = temp_v1->y = temp_v1->z = 0.0f; - temp_v1->originOffset = 9999.0f; - - D_800E6850[arg0] = 65535.0f; - D_800E8CA0[arg0] = 0; - D_800E6310[arg0] = 0; - - D_800E5890[arg0] = D_800E5510[arg0] = D_800E56D0[arg0] = 0.0f; - D_800E93A0[arg0] = D_800E9560[arg0] = D_800E9720[arg0] = 0; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_6/func_800AE138.s") -#endif - -struct GObjProcess *func_80008A18(s32 arg0, s32 arg1, u8 arg2, u32 arg3); -struct GObj *func_8000A180(s32 arg0, s32 arg1, u8 arg2, u32 arg3); -void func_800B0F28(void); -extern u32 D_800DDA90[]; -s32 func_800B0D90(void *arg0); -void func_800B1878(s32 arg0); -void func_800B1870(s32 arg0); -void func_800B0D24(s32 arg0); -extern const char D_800D66C0[]; -extern const char D_800D66D8[]; - -struct UnkStruct800D4FD0 { - u8 unk0[4]; - void (*unk4)(void); - }; - -extern struct UnkStruct800D4FD0 D_800D4FD0[]; - -// https://decomp.me/scratch/zbl2m -#ifdef NON_MATCHING -s32 request_job(s32 id, s32 minIndex, u32 max_index, s32 *arg3, void (*arg4)()) { - struct GObj *gobj; - s32 v0; - - s32 why_do_i_need_to_make_this_constant_folding_explicit = -1; - // clamp to bounds if not provided - if (minIndex == why_do_i_need_to_make_this_constant_folding_explicit) { - minIndex = 0; - } - if (max_index == why_do_i_need_to_make_this_constant_folding_explicit) { - max_index = 0x70; - } - if (minIndex < max_index) { - do { - if (D_800DD710[minIndex] == -1) break; - } while (++minIndex != max_index); - } - - if (minIndex >= max_index) { - print_error_stub("Can't request job !!!\n"); - return -1; - } - if ((D_8004A7C4 == NULL) || (D_8004A7C4->link == 0x1A) || (D_8004A7C4->link == 0x19)) { - v0 = 0; - } - else if ((D_8004A7C4->link & 0x18) == 0) { - v0 = 8; - } - else { - v0 = (D_8004A7C4->link & 0x18); - if (v0 + 8 >= 32) { - print_error_stub("Job Request Deep OverFlow!!\n"); - return -1; - } - } - - D_800DD710[minIndex] = id; - D_800DE350[minIndex] = - gobj = func_8000A180(minIndex, func_800B0D24, D_800D4FD0[id].unk0[0] + v0, 0); - // D_800DE350[minIndex] = gobj; - gEntityGObjProcessArray[minIndex]= func_80008A18(gobj, D_800D4FD0[id].unk4, 0, 3); - gEntityGObjProcessArray2[minIndex]= func_80008A18(gobj, func_800B0D90, 1, 3); - - if (D_800D4FD0[id].unk0[1] & 1) { - gEntityGObjProcessArray3[minIndex]= func_80008A18(gobj, func_800B1878, 0, 2); - } - if (D_800D4FD0[id].unk0[1] & 2) { - gEntityGObjProcessArray4[minIndex] = func_80008A18(gobj, func_800B1870, 1, 1); - } - gEntityGObjProcessArray5[minIndex] = func_80008A18(gobj, arg4, 1, 0); - D_800DD8D0[minIndex] = 0; - D_800DDA90[minIndex] = gobj->link; - D_800DF150[minIndex] = 0; - if (arg3 != 0) { - D_800DEF90[minIndex] = arg3; - } else { - D_800DEF90[minIndex] = 0; - } - gobj->unk48 = func_800B0F28; - D_800DEDD0[minIndex] = 0; - D_800DF310[minIndex] = 0; - return minIndex; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_6/func_800AE7A8.s") -#endif - -extern void func_800B1434(void); -s32 func_800AEA64(s32 id, s32 minIndex, s32 max_index) { - s32 idx = request_job(id, minIndex, max_index, NULL, &func_800B1434); - - if (idx == -1) { - return -1; - } - D_800E0D50[idx] = (D_8004A7C4 != NULL) ? D_8004A7C4->objId : -1; - return idx; -} - -extern void func_800B4924(void); -extern void func_800B143C(void); -extern void func_800B4AB8(void); -extern void func_800B158C(void); - -// todo: should this really be a define? -#define FAIL -1 - -s32 request_track(u8 arg0, s32 id, s32 minIndex, s32 maxIndex) { - s32 idx; - - switch (arg0) { - case 0: - idx = request_job(id, minIndex, maxIndex, &func_800B4924, &func_800B143C); - if (idx == FAIL) { - return FAIL; - } - break; - case 1: - return FAIL; - case 2: - idx = request_job(id, minIndex, maxIndex, &func_800B4AB8, &func_800B158C); - if (idx == FAIL) { - return FAIL; - } - D_800DE350[idx]->unk4C = 0; - gEntitiesAngleYArray[idx] = 0.0f; - gEntitiesAngleXArray[idx] = 0.0f; - break; - } - D_800E0D50[idx] = (D_8004A7C4 != NULL) ? D_8004A7C4->objId : -1; - return idx; -} - -// alloc object with id and index range? -s32 request_track_general(s32 id, s32 minIndex, s32 maxIndex) { - return request_track(0, id, minIndex, maxIndex); -} - -s32 func_800AEC3C(s32 id, s32 minIndex, s32 maxIndex) { - return request_track(1, id, minIndex, maxIndex); -} - -s32 func_800AEC70(s32 id, s32 minIndex, s32 maxIndex) { - return request_track(2, id, minIndex, maxIndex); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/func_800AEC3C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_6/func_800AEC70.s") diff --git a/src/ovl1/ovl1_7.c b/src/ovl1/ovl1_7.c index f75198a3f..cf46ab044 100644 --- a/src/ovl1/ovl1_7.c +++ b/src/ovl1/ovl1_7.c @@ -1,1022 +1,181 @@ -#include -#include -#include "ovl1_6.h" -#include "D_8004A7C4.h" -#include "unk_structs/D_800DE350.h" -#include "ovl0/ovl0_5.h" -#include "ovl1_5.h" -#include "ovl0/ovl0_6.h" -#include "ovl0/ovl0_4.h" - -s32 func_800B3234(f32 inputX, f32 inputY, f32 inputZ); -void func_800AFA88(struct GObj *); - -void func_8000BEF4_ovl1(struct GObj *, f32); - -void func_800AECC0(f32 arg0) { - if (arg0 != D_800E09D0[D_8004A7C4->objId]) { - D_800E09D0[D_8004A7C4->objId] = arg0; - func_8000BEF4_ovl1(D_8004A7C4, D_800E09D0[D_8004A7C4->objId]); - } -} - -extern void func_8000BFA0_ovl1(struct GObj *, f32); - -void func_800AED20(f32 arg0) { - if (arg0 != D_800E0B90[D_8004A7C4->objId]) { - D_800E0B90[D_8004A7C4->objId] = arg0; - func_8000BFA0_ovl1(D_8004A7C4, D_800E0B90[D_8004A7C4->objId]); - } -} - -void func_800AED80(f32 arg0, s32 arg1) { - if (arg0 != D_800E09D0[arg1]) { - struct UnkStruct800DE350 *tmp = D_800DE350[arg1]; - - D_800E09D0[arg1] = arg0; - func_8000BEF4_ovl1(tmp, arg0); - } -} - -void func_800AEDD0(f32 arg0, s32 arg1) { - if (arg0 != D_800E0B90[arg1]) { - struct UnkStruct800DE350 *tmp = D_800DE350[arg1]; - - D_800E0B90[arg1] = arg0; - func_8000BFA0_ovl1(tmp, arg0); - } -} - -void func_8000C17C_ovl1(struct GObj *, s32, f32); - -void func_800AEE20(s32 arg0, f32 arg1) { - D_800DF310[D_8004A7C4->objId] = 0; - D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; - func_8000C17C_ovl1(D_8004A7C4, arg0, arg1); - if (arg1 != 0.0f) { - func_8000E324_ovl1(D_8004A7C4); - } -} - -void func_8000C218(struct GObj *, s32, f32); - -void func_800AEEB4(s32 arg0, f32 arg1) { - func_8000C218(D_8004A7C4, arg0, arg1); - if (arg1 != 0.0f) { - func_8000E324_ovl1(D_8004A7C4); - } -} - -void func_800AEF0C(s32 arg0, f32 arg1, struct GObj *arg2) { - D_800DF310[arg2->objId] = 0; - D_800DD8D0[arg2->objId] &= 0x3FFFFFFF; - func_8000C17C_ovl1(arg2, arg0, arg1); - if (arg1 != 0.0f) { - func_8000E324_ovl1(arg2); - } -} - -void func_800AEFA4(s32 arg0, f32 arg1, struct GObj *arg2) { - func_8000C218(arg2, arg0, arg1); - if (arg1 != 0.0f) { - func_8000E324_ovl1(arg2); - } -} - -// control flow meme -#ifdef NON_MATCHING -void func_800AEFFC(u16 arg0) { - while (1) { - if (D_800DD8D0[D_8004A7C4->objId] & 0xC0000000 || --arg0 != 0) { - D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; - finish_current_thread(1); - } - else break; - } - // return D_800DD8D0[D_8004A7C4->objId]; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AEFFC.s") -#endif - -u32 func_800AF0F4(void); - -void func_800AF09C(u16 arg0) { - while (1) { - if (func_800AF0F4() != 0 || --arg0 != 0) { - finish_current_thread(1); - continue; - } - break; - } -} - -extern f32 D_800D6700, D_800D6704, D_800D6708; - -// some meme in here -#ifdef NON_MATCHING -u32 func_800AF0F4(void) { - struct UnkStruct8004A7C4_3C_80 *sp20; - struct UnkStruct8004A7C4_3C *s0; - - s0 = D_8004A7C4->unk3C; - while (s0 != 0) { - if (s0->unk80 != 0) { - sp20 = s0->unk80; - } else { - s0 = func_8000BE90(s0); - } - } - if (D_800D6700 == sp20->unk98 || D_800D6704 == sp20->unk98) { - return 0; - } - if (D_800D6708 == sp20->unk98) { - D_800DD8D0[D_8004A7C4->objId] |= 0x20000000; - } else { - if (sp20->unkA0 < D_800E0B90[D_8004A7C4->objId]) { - if (D_800DD8D0[D_8004A7C4->objId] * 4 >= 0) { - return 0; - } - D_800DD8D0[D_8004A7C4->objId] &= 0xDFFFFFFF; - } - } - return 1; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF0F4.s") -#endif - -u32 func_800AF230(void) { - if ((((u32)D_800DD8D0[D_8004A7C4->objId]) >> 0x1E) != 0) { - D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; - return 1; - } - return 0; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF27C.s") - -void func_800AF314(void) { - struct UnkStruct8004A7C4_3C *tmp = D_8004A7C4->unk3C; - - while (tmp != 0) { - func_8000984C_ovl1(tmp); - tmp = func_8000BE90(tmp); - } - D_800DF310[D_8004A7C4->objId] = 0; - D_800DD8D0[D_8004A7C4->objId] = D_800DD8D0[D_8004A7C4->objId] & 0x3FFFFFFF; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF3A0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF408.s") - - -// some meme -#ifdef NON_MATCHING -void func_800AF4BC(s32 arg0, s32 arg1, s32 arg2) { - s32 sp30; - f32 temp_f0; - f32 temp_f0_2; - - sp30 = 0; - if (D_8004A7C4->unkF == 1) { - sp30 = 1; - func_8000BBE0_ovl1(0); - } - if (arg1 == 0) { - func_8000F980_ovl1(D_8004A7C4, arg0, arg2, 0x1C, 0, 0); - temp_f0 = D_800E09D0[D_8004A7C4->objId]; - if (D_8004A7C4->unk3C->unk78 != temp_f0) { - func_8000BEF4_ovl1(D_8004A7C4, temp_f0); - } - } else { - func_8000FB10_ovl1(D_8004A7C4, arg0, arg1, arg2, 0x1C, 0, 0); - temp_f0_2 = D_800E09D0[D_8004A7C4->objId]; - if (D_8004A7C4->unk3C->unk78 != temp_f0_2) { - func_8000BEF4_ovl1(D_8004A7C4, temp_f0_2); - func_8000BFA0_ovl1(D_8004A7C4, D_800E0B90[D_8004A7C4->objId]); - } - } - if (sp30 != 0) { - func_800AFA88(D_8004A7C4); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF4BC.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF618.s") - - -extern void (*D_800D4F10[])(struct GObj *); - -void func_800AF7A0(s32 arg0) { - u32 *tmp; - - if (arg0 == 0x0001869F) { - tmp = gSegment4StartArray[D_8004A7C4->objId]; - arg0 = tmp[2]; - } - D_8004A7C4->unk2C = D_800D4F10[arg0]; -} - -#ifdef NON_MATCHING -u32 func_800AF7EC(u32 arg0, u8 arg1, u8 flags, u8 mode) { - struct UnkStruct800AC954 *sprite = func_800AC954(D_8004A7C4, mode, func_800A8C40()); - - if (sprite == NULL) { - return 0; - } - D_800E02D0[D_8004A7C4->objId] = arg0; - sprite->renderFlags |= flags; - func_8000A5FC(D_8004A7C4, func_800AD1A0, arg1, 0x80000000, arg1); - return 1; -} -#else -u32 func_800AF7EC(s32, u8, u8, u8); -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF7EC.s") -#endif - -u32 func_800AF890(s32 arg0, u8 arg1, u8 renderFlags) { - return func_800AF7EC(arg0, arg1, renderFlags, 0); -} - -u32 func_800AF8C0(s32 arg0, u8 arg1, u8 renderFlags) { - return func_800AF7EC(arg0, arg1, renderFlags, 1); -} - -u32 func_800AF8F0(s32 arg0, u8 arg1, u8 renderFlags) { - return func_800AF7EC(arg0, arg1, renderFlags, 4); -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF920.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF96C.s") - -struct GObj *func_800AF980(s32 arg0) { - D_800E0810[D_8004A7C4->objId] = arg0; - D_8004A7C4->renderPriority = D_800E0810[D_8004A7C4->objId]; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AF9B8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFA14.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFA54.s") - -void func_800AFA88(struct GObj *this) { - this->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - this->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - this->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - this->unk3C->angleVec.x = gEntitiesAngleXArray[D_8004A7C4->objId]; - this->unk3C->angleVec.y = gEntitiesAngleYArray[D_8004A7C4->objId]; - this->unk3C->angleVec.z = gEntitiesAngleZArray[D_8004A7C4->objId]; - this->unk3C->scaleVec.x = gEntitiesScaleXArray[D_8004A7C4->objId]; - this->unk3C->scaleVec.y = gEntitiesScaleYArray[D_8004A7C4->objId]; - this->unk3C->scaleVec.z = gEntitiesScaleZArray[D_8004A7C4->objId]; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFBB4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800AFBEC.s") - -void func_800AFC20(s32 sound, s32 tcount) { - play_sound(sound); - if (tcount != 0) { - finish_current_thread(tcount); - } -} - -void func_800AFC54(s32 arg0, s32 tcount) { - func_800FB914(arg0); - if (tcount != 0) { - finish_current_thread(tcount); - } -} - -void func_800AFC88(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - D_800E2090[D_8004A7C4->objId] = arg0; - gEntitiesNextPosXArray[D_8004A7C4->objId] = D_800E2090[D_8004A7C4->objId]; - } - if (arg1 != 65535.0f) { - D_800E2250[D_8004A7C4->objId] = arg1; - gEntitiesNextPosYArray[D_8004A7C4->objId] = D_800E2250[D_8004A7C4->objId]; - } - if (arg2 != 65535.0f) { - D_800E2410[D_8004A7C4->objId] = arg2; - gEntitiesNextPosZArray[D_8004A7C4->objId] = D_800E2410[D_8004A7C4->objId]; - } - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800AFDA0(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - D_800E4A90[D_8004A7C4->objId] = arg0; - gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId]; - } - if (arg1 != 65535.0f) { - D_800E4C50[D_8004A7C4->objId] = arg1; - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId]; - } - if (arg2 != 65535.0f) { - D_800E4E10[D_8004A7C4->objId] = arg2; - gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId]; - } - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800AFEB8(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - D_800E4FD0[D_8004A7C4->objId] = arg0; - gEntitiesScaleXArray[D_8004A7C4->objId] = D_800E4FD0[D_8004A7C4->objId]; - } - if (arg1 != 65535.0f) { - D_800E5190[D_8004A7C4->objId] = arg1; - gEntitiesScaleYArray[D_8004A7C4->objId] = D_800E5190[D_8004A7C4->objId]; - } - if (arg2 != 65535.0f) { - D_800E5350[D_8004A7C4->objId] = arg2; - gEntitiesScaleZArray[D_8004A7C4->objId] = D_800E5350[D_8004A7C4->objId]; - } - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800AFFD0(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - D_800E2090[D_8004A7C4->objId] += arg0; - gEntitiesNextPosXArray[D_8004A7C4->objId] = D_800E2090[D_8004A7C4->objId]; - } - if (arg1 != 65535.0f) { - D_800E2250[D_8004A7C4->objId] += arg1; - gEntitiesNextPosYArray[D_8004A7C4->objId] = D_800E2250[D_8004A7C4->objId]; - } - if (arg2 != 65535.0f) { - D_800E2410[D_8004A7C4->objId] += arg2; - gEntitiesNextPosZArray[D_8004A7C4->objId] = D_800E2410[D_8004A7C4->objId]; - } - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800B0100(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - gEntitiesAngleXArray[D_8004A7C4->objId] += arg0; - } - if (arg1 != 65535.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += arg1; - } - if (arg2 != 65535.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] += arg2; - } - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800B01DC(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - D_800E4FD0[D_8004A7C4->objId] += arg0; - gEntitiesScaleXArray[D_8004A7C4->objId] = D_800E4FD0[D_8004A7C4->objId]; - } - if (arg1 != 65535.0f) { - D_800E5190[D_8004A7C4->objId] += arg1; - gEntitiesScaleYArray[D_8004A7C4->objId] = D_800E5190[D_8004A7C4->objId]; - } - if (arg2 != 65535.0f) { - D_800E5350[D_8004A7C4->objId] += arg2; - gEntitiesScaleZArray[D_8004A7C4->objId] = D_800E5350[D_8004A7C4->objId]; - } - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800B030C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, s32 arg9) { - if (arg0 != 65535.0f) { - D_800E2090[D_8004A7C4->objId] = arg0; - } - if (arg3 != 65535.0f) { - D_800E2250[D_8004A7C4->objId] = arg3; - } - if (arg6 != 65535.0f) { - D_800E2410[D_8004A7C4->objId] = arg6; - } - if (arg1 != 65535.0f) { - D_800E4A90[D_8004A7C4->objId] = arg1; - } - if (arg4 != 65535.0f) { - D_800E4C50[D_8004A7C4->objId] = arg4; - } - if (arg7 != 65535.0f) { - D_800E4E10[D_8004A7C4->objId] = arg7; - } - if (arg2 != 65535.0f) { - D_800E4FD0[D_8004A7C4->objId] = arg2; - } - if (arg5 != 65535.0f) { - D_800E5190[D_8004A7C4->objId] = arg5; - } - if (arg8 != 65535.0f) { - D_800E5350[D_8004A7C4->objId] = arg8; - } - if (arg9 != 0) { - finish_current_thread(arg9); - } -} - -void func_800B04D4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, s32 arg9) { - if (arg0 != 65535.0f) { - D_800E3050[D_8004A7C4->objId] = arg0; - } - if (arg1 != 65535.0f) { - D_800E3590[D_8004A7C4->objId] = arg1; - } - if (arg2 == 65536.0f) { - D_800E3AD0[D_8004A7C4->objId] = 65535.0f; - } else if (arg2 != 65535.0f) { - D_800E3AD0[D_8004A7C4->objId] = ABSF(arg2); - } - if (arg3 != 65535.0f) { - D_800E3210[D_8004A7C4->objId] = arg3; - } - if (arg4 != 65535.0f) { - D_800E3750[D_8004A7C4->objId] = arg4; - } - if (arg5 == 65536.0f) { - D_800E3C90[D_8004A7C4->objId] = 65535.0f; - } else if (arg5 != 65535.0f) { - D_800E3C90[D_8004A7C4->objId] = ABSF(arg5); - } - if (arg6 != 65535.0f) { - D_800E33D0[D_8004A7C4->objId] = arg6; - } - if (arg7 != 65535.0f) { - D_800E3910[D_8004A7C4->objId] = arg7; - } - if (arg8 == 65536.0f) { - D_800E3E50[D_8004A7C4->objId] = 65535.0f; - } else if (arg8 != 65535.0f) { - D_800E3E50[D_8004A7C4->objId] = ABSF(arg8); - } - if (arg9 != 0) { - finish_current_thread(arg9); - } -} - -// regalloc -#ifdef NON_MATCHING -void func_800B07B4(u8 arg0, u8 arg1, u8 arg2, s32 arg3) { - if (((arg0 & 1) | (2 | 4)) != 0) { - if (arg0 & 1) { - D_800E3050[D_8004A7C4->objId] = 0.0f; - } - if ((arg0 & 2) != 0) { - D_800E3210[D_8004A7C4->objId] = 0.0f; - } - if ((arg0 & 4) != 0) { - D_800E33D0[D_8004A7C4->objId] = 0.0f; - } - } - if (((arg1 & 1) | (2 | 4)) != 0) { - if ((arg1 & 1) != 0) { - D_800E3590[D_8004A7C4->objId] = 0.0f; - } - if ((arg1 & 2) != 0) { - D_800E3750[D_8004A7C4->objId] = 0.0f; - } - if ((arg1 & 4) != 0) { - D_800E3910[D_8004A7C4->objId] = 0.0f; - } - } - if (((arg2 & 1) | (2 | 4)) != 0) { - if ((arg2 & 1) != 0) { - D_800E3AD0[D_8004A7C4->objId] = 65535.0f; - } - if ((arg2 & 2) != 0) { - D_800E3C90[D_8004A7C4->objId] = 65535.0f; - } - if ((arg2 & 4) != 0) { - D_800E3E50[D_8004A7C4->objId] = 65535.0f; - } - } - if (arg3 != 0) { - finish_current_thread(arg3); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B07B4.s") -#endif - -void func_800B0974(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - f32 temp_f0; - u32 temp_v0; - u32 temp_v0_2; - - if (arg0 != 65535.0f) { - if (D_800E10D0[D_8004A7C4->objId] == 1.0f) { - D_800E3050[D_8004A7C4->objId] = arg0; - } else { - D_800E3050[D_8004A7C4->objId] = -arg0; - } - } - if (arg1 != 65535.0f) { - if (D_800E10D0[D_8004A7C4->objId] == 1.0f) { - D_800E3590[D_8004A7C4->objId] = arg1; - } else { - D_800E3590[D_8004A7C4->objId] = -arg1; - } - } - if (arg2 == 65536.0f) { - D_800E3AD0[D_8004A7C4->objId] = 65535.0f; - } else if (arg2 != 65535.0f) { - D_800E3AD0[D_8004A7C4->objId] = arg2; - } - - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800B0AD4(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - D_800E64D0[D_8004A7C4->objId] = arg0; - } - if (arg1 != 65535.0f) { - D_800E6690[D_8004A7C4->objId] = arg1; - } - if (arg2 == 65536.0f) { - D_800E6850[D_8004A7C4->objId] = 65535.0f; - } else if (arg2 != 65535.0f) { - D_800E6850[D_8004A7C4->objId] = arg2; - } - - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800B0BC4(f32 arg0, f32 arg1, f32 arg2, s32 arg3) { - if (arg0 != 65535.0f) { - if (D_800E6A10[D_8004A7C4->objId] == 1.0f) { - D_800E64D0[D_8004A7C4->objId] = arg0; - } else { - D_800E64D0[D_8004A7C4->objId] = -arg0; - } - } - if (arg1 != 65535.0f) { - if (D_800E6A10[D_8004A7C4->objId] == 1.0f) { - D_800E6690[D_8004A7C4->objId] = arg1; - } else { - D_800E6690[D_8004A7C4->objId] = -arg1; - } - } - if (arg2 == 65536.0f) { - D_800E6850[D_8004A7C4->objId] = 65535.0f; - } else if (arg2 != 65535.0f) { - D_800E6850[D_8004A7C4->objId] = arg2; - } - - if (arg3 != 0) { - finish_current_thread(arg3); - } -} - -void func_800B0D24(struct GObj *arg0) { - func_800B1C7C(arg0); - - if (D_800DEDD0[D_8004A7C4->objId] != NULL) { - if ((D_800DD8D0[D_8004A7C4->objId] & 1) == 0) { - if ((D_800DD8D0[D_8004A7C4->objId] & 0x80) == 0) { - D_800DEDD0[D_8004A7C4->objId](arg0); - } - } - } -} - -// this function calls D_800DF150 and D_800DEF90 -s32 func_800B0D90(struct GObj *arg0) { - if (D_800DD710[D_8004A7C4->objId] != -1 && !(D_800DD8D0[D_8004A7C4->objId] & 0x80)) { - if (!(D_800DD8D0[D_8004A7C4->objId] & 2)) { - if (arg0->unk3C != NULL) { - if (D_800DEF90[D_8004A7C4->objId] != NULL) { - D_800DD8D0[D_8004A7C4->objId] &= 0x3FFFFFFF; - func_8000E324_ovl1(arg0); - } - } - } - if ((D_800DD8D0[D_8004A7C4->objId] & 4) == 0) { - if (D_800DEF90[D_8004A7C4->objId] != 0) { - D_800DEF90[D_8004A7C4->objId](arg0); - } - } - D_800E56D0[D_8004A7C4->objId] = 0.0f; - D_800E5510[D_8004A7C4->objId] = D_800E56D0[D_8004A7C4->objId]; - D_800E5DD0[D_8004A7C4->objId] = 0.0f; - D_800E5A50[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5DD0[D_8004A7C4->objId]; - if (D_800DF150[D_8004A7C4->objId] != NULL) { - if (!(D_800DD8D0[D_8004A7C4->objId] & 8)) { - D_800DF150[D_8004A7C4->objId](arg0); - } - } - } -} - -typedef union { - u32 i; - f32 f; -} _IF; - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B0F28.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B113C.s") - -#ifdef NON_MATCHING -void func_800B1378(s32 arg1, s32 arg2, f32 arg3) { - if (arg2 != -2) { - D_800DD8D0[D_8004A7C4->objId] |= 0x80000000; - } - else if (arg2 == -1) { // move this comparison to right after the first one somehow - D_800DD8D0[D_8004A7C4->objId] |= 0x40000000; - } - else if (D_800DF310[D_8004A7C4->objId] != 0) { - D_800DF310[D_8004A7C4->objId](arg1, arg2, arg3); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1378.s") -#endif - -void func_800B1434(s32 arg0) { - -} - -void func_800B143C(struct GObj *this) { - if ((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) { - if (this->unk3C != NULL) { - this->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - this->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - this->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - this->unk3C->angleVec.x = gEntitiesAngleXArray[D_8004A7C4->objId]; - this->unk3C->angleVec.y = gEntitiesAngleYArray[D_8004A7C4->objId]; - this->unk3C->angleVec.z = gEntitiesAngleZArray[D_8004A7C4->objId]; - this->unk3C->scaleVec.x = gEntitiesScaleXArray[D_8004A7C4->objId]; - this->unk3C->scaleVec.y = gEntitiesScaleYArray[D_8004A7C4->objId]; - this->unk3C->scaleVec.z = gEntitiesScaleZArray[D_8004A7C4->objId]; - } - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B158C.s") - -void func_800B175C(struct GObj *this) { - if (((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) && (this->unk3C != 0)) { - func_8019BBEC_ovl7(); - func_800B143C(this); - } -} - -void func_800B17B8(struct GObj *this) { - if (((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) && (this->unk3C != 0)) { - func_800B143C(this); - func_801D1CAC_ovl8(); - } -} - -void func_800B1814(struct GObj *this) { - if (((D_800DD8D0[D_8004A7C4->objId] & 0x40) == 0) && (this->unk3C != 0)) { - func_800B143C(this); - func_801D1E98_ovl1(); - } -} - -void func_800B1870(s32 arg0) { - -} - -void func_800B1878(s32 arg0) { - while (1) { - finish_current_thread(0x7FFFFFFF); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B18B4.s") - -extern struct GObjProcess *D_8004A7D0; -void func_800A9D64(u16); -void func_800A99E4(u32); - -// some sort of destructor? -void func_800B1900(u16 arg0) { - struct GObj *temp_t7 = D_800DE350[arg0]; - - func_800A9D64(arg0); - func_800A99E4(arg0); - if (temp_t7 == D_8004A7C4) { - func_800AE138(D_8004A7C4->objId); - if (D_8004A7D0->kind == 0) { - func_8000A29C_ovl1(D_8004A7C4); - finish_current_thread(1); - return; - } - func_8000A29C(D_8004A7C4); - return; - } - func_800AE138(temp_t7->objId); - func_8000A29C_ovl1(temp_t7); -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B19B8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B19F4.s") - -void func_800B1A4C(s32 arg0, s32 arg1) { - int i; - - for (i = 0; i < 0x70; i++) { - if (D_800DD710[i] != -1) { - if (i != arg1) { - if ((D_800DD8D0[i] & 0x80) == 0) { - D_800DD8D0[i] = (D_800DD8D0[i] & ~0xFF) | (arg0 & 0xFF); - func_800B1C7C(D_800DE350[i]); - } - } - } - } -} - -void func_800B1B28(s32 arg0) { - int i; - - for (i = 0; i < 0x70; i++) { - if (D_800DD710[i] != -1) { - if ((D_800DD8D0[i] & 0x80) == 0) { - D_800DD8D0[i] = (D_800DD8D0[i] & ~0xFF) | (arg0 & 0xFF); - func_800B1C7C(D_800DE350[i]); - } - } - } -} - -void func_800B1BF0(s32 arg0, s32 arg1) { - if (arg0 == 0x80) { - D_800DD8D0[arg1] = (D_800DD8D0[arg1] & ~0xFF) + 0x80; - func_800B1C7C(D_800DE350[arg1]); - } else { - D_800DD8D0[arg1] = D_800DD8D0[arg1] & ~0xFF; - func_800B1C7C(D_800DE350[arg1]); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1C7C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1E08.s") - - -// current entity stack size? -extern u32 gNewEntityStackSize; - -void assign_new_process_entry(struct GObjProcess *ts, void (*func)(struct GObj *)) { - struct GObjThread *gthread; - s32 id; - - gthread = ts->payload.thread; - id = gthread->thread.id; - ts->entryPoint = func; - osDestroyThread(>hread->thread); - osCreateThread(>hread->thread, - id, - func, - ts->gobj, - >hread->objStack->stack[gNewEntityStackSize / 8], - 0x33); - gthread->objStack->stack[7] = STACK_TOP_MAGIC; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1F68.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1F70.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B1FD0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B20E0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B21FC.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2288.s") - -// all of these functions are easy i think if you start incorporating MtxF's - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2340.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B26D8.s") - -void func_800B2928(Vector *vec, struct UnkStruct8004A7C4_3C *userData, u32 track) { - Mat4 finalMtx; - Mat4 tmpMtx; - - track = track; - if (track == 0xFFFF) { - track = D_8004A7C4->objId; - } - userData = userData; - if (userData == 0) { - userData = D_8004A7C4->unk3C; - } - guMtxIdentF(finalMtx); - do { - if ((u32) userData->unk14 != 1) { - if ((userData->scaleVec.x != 1.0f) || (userData->scaleVec.y != 1.0f) || (userData->scaleVec.z != 1.0f)) { - HS64_MkScaleMtxF(tmpMtx, userData->scaleVec.x, userData->scaleVec.y, userData->scaleVec.z); - guMtxCatF(finalMtx, tmpMtx, finalMtx); - } - } else { - if ((gEntitiesScaleXArray[track] != 1.0f) || (gEntitiesScaleYArray[track] != 1.0f) || (gEntitiesScaleZArray[track] != 1.0f)) { - HS64_MkScaleMtxF(tmpMtx, gEntitiesScaleXArray[track], gEntitiesScaleYArray[track], gEntitiesScaleZArray[track]); - guMtxCatF(finalMtx, tmpMtx, finalMtx); - } - } - userData = userData->unk14; - } while ((u32) userData != 1); - - vec->x = finalMtx[0][0]; - vec->y = finalMtx[1][1]; - vec->z = finalMtx[2][2]; -} - -void func_800B2AD4(Vector *vec, struct UnkStruct8004A7C4_3C *userData, u32 track) { - Vector tmp; - Mat4 finalMtx; // 0xBC - Mat4 tmpMtx; // 0x7C - - if (track == 0xFFFF) { - track = D_8004A7C4->objId; - } - - if (userData == 0) { - userData = D_8004A7C4->unk3C; - } - guMtxIdentF(finalMtx); - do { - if ((u32) userData->unk14 != 1) { - if ((userData->scaleVec.x != 1.0f) || (userData->scaleVec.y != 1.0f) || (userData->scaleVec.z != 1.0f)) { - HS64_MkScaleMtxF(tmpMtx, 1.0f / userData->scaleVec.x, 1.0f / userData->scaleVec.y, 1.0f / userData->scaleVec.z); - guMtxCatF(tmpMtx, finalMtx, finalMtx); - } - if ((userData->angleVec.x != 0.0f) || (userData->angleVec.y != 0.0f) || (userData->angleVec.z != 0.0f)) { - func_800A465C(tmpMtx, -userData->angleVec.x, -userData->angleVec.y, -userData->angleVec.z); - guMtxCatF(tmpMtx, finalMtx, finalMtx); - } - if ((userData->posVec.x != 0.0f) || (userData->posVec.y != 0.0f) || (userData->posVec.z != 0.0f)) { - HS64_MkTranslateMtxF(tmpMtx, -userData->posVec.x, -userData->posVec.y, -userData->posVec.z); - guMtxCatF(tmpMtx, finalMtx, finalMtx); - } - } else { - if ((gEntitiesScaleXArray[track] != 1.0f) || (gEntitiesScaleYArray[track] != 1.0f) || (gEntitiesScaleZArray[track] != 1.0f)) { - HS64_MkScaleMtxF(tmpMtx, - 1.0f / gEntitiesScaleXArray[track], - 1.0f / gEntitiesScaleYArray[track], - 1.0f / gEntitiesScaleZArray[track] - ); - guMtxCatF(tmpMtx, finalMtx, finalMtx); - } - if ((gEntitiesAngleXArray[track] != 0.0f) || (gEntitiesAngleYArray[track] != 0.0f) || (gEntitiesAngleZArray[track] != 0.0f)) { - func_800A465C(tmpMtx, - -gEntitiesAngleXArray[track], - -gEntitiesAngleYArray[track], - -gEntitiesAngleZArray[track] - ); - guMtxCatF(tmpMtx, finalMtx, finalMtx); - } - if ((gEntitiesNextPosXArray[track] != 0.0f) || (gEntitiesNextPosYArray[track] != 0.0f) || (gEntitiesNextPosZArray[track] != 0.0f)) { - HS64_MkTranslateMtxF(tmpMtx, - -gEntitiesNextPosXArray[track], - -gEntitiesNextPosYArray[track], - -gEntitiesNextPosZArray[track] - ); - guMtxCatF(tmpMtx, finalMtx, finalMtx); - } - } - userData = userData->unk14; - } while ((u32) userData != 1); - - tmp.x = vec->x; - tmp.y = vec->y; - tmp.z = vec->z; - - vec->x = ((finalMtx[0][0] * tmp.x) + (finalMtx[1][0] * tmp.y) + (finalMtx[2][0] * tmp.z)) - + finalMtx[3][0]; - vec->y = ((finalMtx[0][1] * tmp.x) + (finalMtx[1][1] * tmp.y) + (finalMtx[2][1] * tmp.z)) - + finalMtx[3][1]; - vec->z = ((finalMtx[0][2] * tmp.x) + (finalMtx[1][2] * tmp.y) + (finalMtx[2][2] * tmp.z)) - + finalMtx[3][2]; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2F54.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B2F90.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3008.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3070.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3094.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B30BC.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3158.s") - -void func_800B31B4(void) { - s32 pad; - struct GObj *gobj = D_800DE350[D_8004A7C4->objId]; - - if (func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]) != 0) { - gobj->unk48 = NULL; - func_8019B7D8_ovl1(gobj); - func_8019D8A0_ovl1((u16) D_8004A7C4->objId); - } -} - -// stack diffs -// https://decomp.me/scratch/DsIpj -#ifdef NON_MATCHING -extern const f32 D_800D67E8; -extern struct GObj *D_800D799C; -f32 func_800A4F48(void *, Vector *, f32, f32); - -s32 func_800B3234(f32 inputX, f32 inputY, f32 inputZ) { - s32 sp2C; - Vector inVec; - Vector delVec; - - D_800E6F50[D_8004A7C4->objId].z = 0.0f; - if (gEntitiesNextPosYArray[D_8004A7C4->objId] < D_800D67E8) { - D_800E6F50[D_8004A7C4->objId].z = 1.0f; - return 1; - } - inVec.x = inputX; - inVec.y = inputY; - inVec.z = inputZ; - sp2C = func_800A4F48(D_800D799C->unk3C, &inVec, 1.7f, 2.4f); - D_800E6F50[D_8004A7C4->objId].x = inVec.x; - D_800E6F50[D_8004A7C4->objId].y = inVec.y; - - delVec.x = inputX - gEntitiesNextPosXArray[0]; - delVec.y = inputY - (gEntitiesNextPosYArray[0] + 20.0f); - delVec.z = inputZ - gEntitiesNextPosZArray[0]; - - D_800E6F50[D_8004A7C4->objId].originOffset = sqrtf(VEC_MAG_SQUARE(delVec)); - if (sp2C == 0) { - if (D_800E6F50[D_8004A7C4->objId].originOffset > 500.0f) { - D_800E6F50[D_8004A7C4->objId].z = 1.0f; - return 1; - } - } - return 0; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_7/func_800B3234.s") -#endif - -extern f32 D_800D67EC; -void func_800B33F4(void) { - D_800E64D0[D_8004A7C4->objId] = 0.0f; - - D_800E3050[D_8004A7C4->objId] = - D_800E3210[D_8004A7C4->objId] = - D_800E33D0[D_8004A7C4->objId] = D_800E64D0[D_8004A7C4->objId]; - - D_800E6690[D_8004A7C4->objId] = 0.0f; - - D_800E3590[D_8004A7C4->objId] = - D_800E3750[D_8004A7C4->objId] = - D_800E3910[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - - D_800E6850[D_8004A7C4->objId] = D_800D67EC; - - D_800E3AD0[D_8004A7C4->objId] = - D_800E3C90[D_8004A7C4->objId] = - D_800E3E50[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; -} - -extern f32 D_800D67F0; -void func_800B3520(void) { - f32 temp_f0; - - D_800E6690[D_8004A7C4->objId] = 0.0f; - temp_f0 = D_800E6690[D_8004A7C4->objId]; - D_800E3750[D_8004A7C4->objId] = temp_f0; - D_800E64D0[D_8004A7C4->objId] = temp_f0; - D_800E3210[D_8004A7C4->objId] = temp_f0; - D_800E6850[D_8004A7C4->objId] = D_800D67F0; - D_800E3C90[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; -} +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AECC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AED20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AED80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AEDD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AEE20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AEEB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AEF0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AEFA4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AEFFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF09C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF0F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF230.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF27C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF314.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF3A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF408.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF4BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF7A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF7EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF890.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF8C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF8F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF920.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF980.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AF9B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFA14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFA54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFA88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFBB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFBEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFC20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFC54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFC88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFDA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFEB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800AFFD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B0100.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B01DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B030C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B04D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B07B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B0974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B0AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B0BC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B0D24.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B0D90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B0F28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B113C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1378.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1434.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B143C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B158C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B175C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B17B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1814.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1870.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B18B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1900.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B19B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B19F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1A4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1B28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1BF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1C7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1E08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/assign_new_process_entry.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1F68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B1FD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B20E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B21FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B2288.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B2340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B26D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B2928.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B2AD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B2F54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B2F90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B3008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B3070.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B3094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B30BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B3158.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B31B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B3234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B33F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_7/func_800B3520.s") diff --git a/src/ovl1/ovl1_7.h b/src/ovl1/ovl1_7.h index 8fdb8902d..9a1f1eee6 100644 --- a/src/ovl1/ovl1_7.h +++ b/src/ovl1/ovl1_7.h @@ -1,44 +1,7 @@ -#ifndef _OVL1_7_H_ -#define _OVL1_7_H_ +#ifndef OVL1_7_H +#define OVL1_7_H -#include "D_8004A7C4.h" -#include "ovl0/ovl0_2_5.h" +extern s32 func_800B3234(f32, f32, f32); +extern void func_800B1900(u16); - -// GObjThreadStack? -struct UnkStruct800B1EC8 { - struct UnkStruct800B1EC8 *unk0; - struct UnkStruct800B1EC8 *unk4; - struct UnkStruct800B1EC8 *unk8; - struct UnkStruct800B1EC8 *unkC; // pointer? - u32 unk10; - u32 unk14; // pointer? - u32 *unk18; - GObjThread *unk1C; - - void (*unk20)(struct GObj *); - -}; -80293D50 -80293CE4 -80293DE0 -00000000 - -00000002 -00000000 -802964B8 -8022FED0 - -800B1878 -80293CE4 -00000000 -80293CE4 - -80293CC0 -00000003 -00000000 -802964B8 -8022FD10 -8011C720 - -#endif \ No newline at end of file +#endif // OVL1_7_H diff --git a/src/ovl1/ovl1_8.c b/src/ovl1/ovl1_8.c index 6672d0f2d..7d10a785f 100644 --- a/src/ovl1/ovl1_8.c +++ b/src/ovl1/ovl1_8.c @@ -1,1154 +1,133 @@ -#include -#include -#include "ovl1_6.h" -#include "ovl2/ovl2_2.h" -#include "D_8004A7C4.h" -#include "unk_structs/D_800E1B50.h" -#include "sounds.h" - -extern struct GObj *D_800DE350[]; -s32 func_800B3234(f32 inputX, f32 inputY, f32 inputZ); -#define M_TAU (2 * M_PIF) - -void func_800B35F0(void) { - gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; - gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; - gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; - D_800E6150[D_8004A7C4->objId] = D_800E5F90[D_8004A7C4->objId]; - D_800E6D90[D_8004A7C4->objId] = D_800E6BD0[D_8004A7C4->objId]; -} - -void func_800B369C(void) { - gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]; - if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; - } - else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; - if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosZArray[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]; - if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; - } - else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; - } -} - -void func_800B3838(void) { - gEntitiesNextPosXArray[D_8004A7C4->objId] = (D_800E2090[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]) + - gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; - } - else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosYArray[D_8004A7C4->objId] = (D_800E2250[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]) + - gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; - if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosZArray[D_8004A7C4->objId] = (D_800E2410[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]) + - gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; - if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; - } - else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; - } -} - -void func_800B3A6C(void) { - Vector vec; - struct GeometryBlockHeader *header = gSegment4StartArray[D_800E0D50[D_8004A7C4->objId]]; - - if (header->lenLayout >= D_800E0F10[D_8004A7C4->objId]) { - func_800B2340(&vec, - D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][D_800E0F10[D_8004A7C4->objId]], - D_800E0D50[D_8004A7C4->objId] - ); - - gEntitiesNextPosXArray[D_8004A7C4->objId] = - (D_800E2090[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]) - + (vec.x); - - if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; - } else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosYArray[D_8004A7C4->objId] = - (D_800E2250[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]) - + (vec.y); - - if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosZArray[D_8004A7C4->objId] = - (D_800E2410[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]) - + (vec.z); - - if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; - } else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; - } - } -} - -void func_800B3CEC(void) { - Vector posVec; - Vector angleVec; - - struct GeometryBlockHeader *header = gSegment4StartArray[D_800E0D50[D_8004A7C4->objId]]; - - if (header->lenLayout >= D_800E0F10[D_8004A7C4->objId]) { - func_800B2340(&posVec, - D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][D_800E0F10[D_8004A7C4->objId]], - D_800E0D50[D_8004A7C4->objId] - ); - func_800B26D8(&angleVec, - D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][D_800E0F10[D_8004A7C4->objId]], - D_800E0D50[D_8004A7C4->objId] - ); - - gEntitiesNextPosXArray[D_8004A7C4->objId] = - (D_800E2090[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]) - + (posVec.x); - gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId] + angleVec.x; - - if (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; - } else if (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosYArray[D_8004A7C4->objId] = - (D_800E2250[D_8004A7C4->objId]+= D_800E3210[D_8004A7C4->objId]) - + (posVec.y); - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId] + angleVec.y; - - - if (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } else if (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - gEntitiesNextPosZArray[D_8004A7C4->objId] = - (D_800E2410[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]) - + (posVec.z); - gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId] + angleVec.z; - - if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; - } else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; - } - } -} - -void func_800B4024(void) { - D_800E3050[D_8004A7C4->objId] += D_800E3590[D_8004A7C4->objId]; - D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; - D_800E33D0[D_8004A7C4->objId] += D_800E3910[D_8004A7C4->objId]; - - if (D_800E3AD0[D_8004A7C4->objId] != 65535.0f) { - if (D_800E3050[D_8004A7C4->objId] > 0.0f) { - if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; - } - } else { - if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; - } - } - } - - if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } - } else { - if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } - } - } - - if (D_800E3E50[D_8004A7C4->objId] != 65535.0f) { - if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { - if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; - } - } else { - if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; - } - } - } -} - -void func_800B4218(void) { - D_800E3050[D_8004A7C4->objId] += D_800E3590[D_8004A7C4->objId]; - D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; - D_800E33D0[D_8004A7C4->objId] += D_800E3910[D_8004A7C4->objId]; - - if (D_800E3AD0[D_8004A7C4->objId] != 65535.0f) { - if (D_800E3590[D_8004A7C4->objId] != 0) { - if (D_800E3590[D_8004A7C4->objId] > 0.0f) { - if (D_800E3050[D_8004A7C4->objId] > 0.0f) { - if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; - } - } - } else { - if (D_800E3050[D_8004A7C4->objId] < 0.0f) { - if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; - } - } - } - } else { - if (D_800E3050[D_8004A7C4->objId] > 0.0f) { - if (D_800E3050[D_8004A7C4->objId] > 0.0f) { - if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; - } - } - } else { - if (D_800E3050[D_8004A7C4->objId] < 0.0f) { - if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; - } - } - } - } - } - if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { - if (D_800E3750[D_8004A7C4->objId] != 0) { - if (D_800E3750[D_8004A7C4->objId] > 0.0f) { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } - } - } else { - if (D_800E3210[D_8004A7C4->objId] < 0.0f) { - if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } - } - } - } else { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } - } - } else { - if (D_800E3210[D_8004A7C4->objId] < 0.0f) { - if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } - } - } - } - } - if (D_800E3E50[D_8004A7C4->objId] != 65535.0f) { - if (D_800E3910[D_8004A7C4->objId] != 0) { - if (D_800E3910[D_8004A7C4->objId] > 0.0f) { - if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { - if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; - } - } - } else { - if (D_800E33D0[D_8004A7C4->objId] < 0.0f) { - if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; - } - } - } - } else { - if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { - if (D_800E33D0[D_8004A7C4->objId] > 0.0f) { - if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; - } - } - } else { - if (D_800E33D0[D_8004A7C4->objId] < 0.0f) { - if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; - } - } - } - } - } -} - -void func_800B4640(void) { - D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; - - if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } - } else { - if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } - } - } -} - -void func_800B46F8(void) { - D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; - - if (D_800E3C90[D_8004A7C4->objId] != 65535.0f) { - if (D_800E3750[D_8004A7C4->objId] != 0) { - if (D_800E3750[D_8004A7C4->objId] > 0.0f) { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } - } - } else { - if (D_800E3210[D_8004A7C4->objId] < 0.0f) { - if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } - } - } - } else { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } - } - } else { - if (D_800E3210[D_8004A7C4->objId] < 0.0f) { - if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } - } - } - } - } -} - -void func_800B4864(void) { - D_800E64D0[D_8004A7C4->objId] += D_800E6690[D_8004A7C4->objId]; - - if (D_800E6850[D_8004A7C4->objId] != 65535.0f) { - if (D_800E64D0[D_8004A7C4->objId] > 0.0f) { - if (D_800E6850[D_8004A7C4->objId] < D_800E64D0[D_8004A7C4->objId]) { - D_800E64D0[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; - } - } else { - if (D_800E64D0[D_8004A7C4->objId] < -D_800E6850[D_8004A7C4->objId]) { - D_800E64D0[D_8004A7C4->objId] = -D_800E6850[D_8004A7C4->objId]; - } - } - } -} - -void func_800B491C(s32 arg0) { - -} - -void func_800B4924(s32 arg0) { - func_800B35F0(); - func_800B4024(); - func_800B369C(); -} - -void func_800B4954(s32 arg0) { - f32 temp; - - func_800B35F0(); - func_800B4864(); - temp = D_800E64D0[D_8004A7C4->objId]; - - D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); - func_800F8E6C(arg0); - D_800E64D0[D_8004A7C4->objId] = temp; - func_800B4640(); - func_800B369C(); -} - -void func_800B49F8(s32 arg0) { - f32 tmp; - - func_800B35F0(); - func_800B4864(); - tmp = D_800E64D0[D_8004A7C4->objId]; - D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); - func_800F8E6C(arg0); - D_800E64D0[D_8004A7C4->objId] = tmp; - func_800B4640(); - func_800B369C(); - if (func_800B3158() == 0) { - func_800B1900((u16) D_8004A7C4->objId); - } -} - -void func_800B4AB8(s32 arg0) { - func_800B35F0(); - func_800B4024(); - gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]; - gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; - - if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; - } else if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; - } -} - -void func_800B4B9C(s32 arg0) { - func_800B35F0(); - func_800B4024(); - gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId] + gEntitiesAngleXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId] + gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId] + gEntitiesAngleZArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesScaleXArray[D_8004A7C4->objId] = D_800E4FD0[D_8004A7C4->objId] * gEntitiesScaleXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesScaleYArray[D_8004A7C4->objId] = D_800E5190[D_8004A7C4->objId] * gEntitiesScaleYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesScaleZArray[D_8004A7C4->objId] = D_800E5350[D_8004A7C4->objId] * gEntitiesScaleZArray[D_800E0D50[D_8004A7C4->objId]]; - func_800B3838(); -} - -void func_800B4D40(s32 arg0) { - func_800B35F0(); - func_800B4024(); - func_800B3838(); -} - -void func_800B4D70(s32 arg0) { - func_800B35F0(); - func_800B4024(); - - gEntitiesAngleXArray[D_8004A7C4->objId] = D_800E4A90[D_8004A7C4->objId] + gEntitiesAngleXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E4C50[D_8004A7C4->objId] + gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesAngleZArray[D_8004A7C4->objId] = D_800E4E10[D_8004A7C4->objId] + gEntitiesAngleZArray[D_800E0D50[D_8004A7C4->objId]]; - - func_800B3838(); - - gEntitiesNextPosYArray[D_8004A7C4->objId] += 20.0f; - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B4EBC(s32 arg0) { - func_800B35F0(); - func_800B4024(); - func_800B3838(); - - gEntitiesNextPosYArray[D_8004A7C4->objId] += 20.0f; - - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B4F48(s32 arg0) { - func_800B35F0(); - func_800B4024(); - - gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId] + gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId] + gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; - - if (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleZArray[D_8004A7C4->objId] = gEntitiesAngleZArray[D_8004A7C4->objId] - M_TAU; - return; - } - if (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] = gEntitiesAngleZArray[D_8004A7C4->objId] + M_TAU; - } -} - -void func_800B5064(s32 arg0) { - func_800B35F0(); - func_800B4024(); - func_800B3A6C(); -} - -void func_800B5094(s32 arg0) { - func_800B35F0(); - func_800B4024(); - func_800B3CEC(); -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B50C4.s") - -// applies kirby's speed (from kaze's hack) -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B531C.s") - -void func_800B5A7C(s32 arg0) { - gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; - gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; - gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; - D_800E6150[D_8004A7C4->objId] = D_800E5F90[D_8004A7C4->objId]; - D_800E6D90[D_8004A7C4->objId] = D_800E6BD0[D_8004A7C4->objId]; - - D_800E64D0[D_8004A7C4->objId] += D_800E6690[D_8004A7C4->objId]; - - D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; - - if (D_800E6850[D_8004A7C4->objId] < D_800E64D0[D_8004A7C4->objId]) { - D_800E64D0[D_8004A7C4->objId] = D_800E6850[D_8004A7C4->objId]; - } else if (D_800E64D0[D_8004A7C4->objId] < -D_800E6850[D_8004A7C4->objId]) { - D_800E64D0[D_8004A7C4->objId] = -D_800E6850[D_8004A7C4->objId]; - } - - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } else if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } -} - -void func_800B5C28(s32 arg0) { - gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; - gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; - gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; - D_800E3050[D_8004A7C4->objId] += D_800E3590[D_8004A7C4->objId]; - D_800E3210[D_8004A7C4->objId] += D_800E3750[D_8004A7C4->objId]; - D_800E33D0[D_8004A7C4->objId] += D_800E3910[D_8004A7C4->objId]; - - if (D_800E3AD0[D_8004A7C4->objId] < D_800E3050[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = D_800E3AD0[D_8004A7C4->objId]; - } else if (D_800E3050[D_8004A7C4->objId] < -D_800E3AD0[D_8004A7C4->objId]) { - D_800E3050[D_8004A7C4->objId] = -D_800E3AD0[D_8004A7C4->objId]; - } - - if (D_800E3C90[D_8004A7C4->objId] < D_800E3210[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = D_800E3C90[D_8004A7C4->objId]; - } else if (D_800E3210[D_8004A7C4->objId] < -D_800E3C90[D_8004A7C4->objId]) { - D_800E3210[D_8004A7C4->objId] = -D_800E3C90[D_8004A7C4->objId]; - } - - if (D_800E3E50[D_8004A7C4->objId] < D_800E33D0[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = D_800E3E50[D_8004A7C4->objId]; - } else if (D_800E33D0[D_8004A7C4->objId] < -D_800E3E50[D_8004A7C4->objId]) { - D_800E33D0[D_8004A7C4->objId] = -D_800E3E50[D_8004A7C4->objId]; - } -} - -extern f32 D_800D6848; - -#define CLAMP_RADIAN(x, val) \ - {\ - while ((val) <= (x)) (x) -= (val);\ - while ((x) < 0.0f) (x) += (val);\ - } - -void func_800B5E14(s32 arg0) { - while (gEntitiesAngleXArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleXArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleXArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleXArray[D_8004A7C4->objId] += M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - while (gEntitiesAngleZArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleZArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleZArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleZArray[D_8004A7C4->objId] += M_TAU; - } -} - -void func_800B5FBC(s32 arg0) { - gEntitiesAngleXArray[D_8004A7C4->objId] += D_800E4A90[D_8004A7C4->objId]; - gEntitiesAngleYArray[D_8004A7C4->objId] += D_800E4C50[D_8004A7C4->objId]; - gEntitiesAngleZArray[D_8004A7C4->objId] += D_800E4E10[D_8004A7C4->objId]; - func_800B5E14(arg0); -} - -void func_800B6064(s32 arg0) { - gEntitiesAngleXArray[D_8004A7C4->objId] = gEntitiesAngleXArray[D_800E0D50[D_8004A7C4->objId]] + D_800E4A90[D_8004A7C4->objId]; - gEntitiesAngleYArray[D_8004A7C4->objId] = gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]] + D_800E4C50[D_8004A7C4->objId]; - gEntitiesAngleZArray[D_8004A7C4->objId] = gEntitiesAngleZArray[D_800E0D50[D_8004A7C4->objId]] + D_800E4E10[D_8004A7C4->objId]; - func_800B5E14(arg0); -} - -// https://decomp.me/scratch/O1BUJ -#ifdef NON_MATCHING -void func_800B6144(s32 arg0) { - s32 sp3C; - struct Sub800E1B50_Unk84 *temp_a0 = D_800E1B50[D_8004A7C4->objId]->unk84; - Vector delPosVec; - Vector finalPosVec; - - - if (D_800E8920[D_8004A7C4->objId] != 0) { - if (temp_a0) { - if (temp_a0->unk50 != 0x14) { - sp3C = temp_a0->unk50; - delPosVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - delPosVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - delPosVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - - func_80112A40(sp3C, &delPosVec, &finalPosVec); - if ((finalPosVec.x != 0.0f) || (finalPosVec.z != 0.0f)) { - func_800F8728(D_8004A7C4->objId, finalPosVec.x, finalPosVec.z); - } - gEntitiesNextPosXArray[D_8004A7C4->objId] += finalPosVec.x; - gEntitiesNextPosYArray[D_8004A7C4->objId] += finalPosVec.y; - gEntitiesNextPosZArray[D_8004A7C4->objId] += finalPosVec.z; - } - } - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B6144.s") -#endif - -void func_800B62AC(s32 arg0) { - func_800B5A7C(arg0); - D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); - func_800F8E6C(D_800DE350[D_8004A7C4->objId]); - D_800E64D0[D_8004A7C4->objId] -= (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); - gEntitiesNextPosYArray[D_8004A7C4->objId] += (D_800E3210[D_8004A7C4->objId] + D_800E5C10[D_8004A7C4->objId] + D_800E5890[D_8004A7C4->objId]); - func_800B5FBC(arg0); -} - -void func_800B63C0(s32 arg0) { - func_800B5C28(arg0); - gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E3050[D_8004A7C4->objId]; - gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; - gEntitiesNextPosZArray[D_8004A7C4->objId] += D_800E33D0[D_8004A7C4->objId]; - func_800B5FBC(arg0); -} - -void func_800B6474(s32 arg0) { - func_800B62AC(arg0); - func_800B6144(arg0); - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B658C(s32 arg0) { - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B31B4(); -} - -void func_800B6684(s32 arg0) { - func_800B62AC(arg0); - func_800B6144(arg0); - gEntitiesAngleYArray[D_8004A7C4->objId] = - (D_800E17D0[D_8004A7C4->objId]) - + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); - - while (M_TAU <= gEntitiesAngleYArray[D_8004A7C4->objId]) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B67A8(s32 arg0) { - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - D_800E17D0[D_8004A7C4->objId] - + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B31B4(); -} - -void func_800B68AC(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B6A2C(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B31B4(); -} - -void func_800B6B8C(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - D_800E17D0[D_8004A7C4->objId] - + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B31B4(); -} - -void func_800B6CF8(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - D_800E17D0[D_8004A7C4->objId] - + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B6E84(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B31B4(); -} - -void func_800B6FD8(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - D_800E17D0[ D_8004A7C4->objId] - + (D_800E6A10[ D_8004A7C4->objId] * (-M_PIF / 2)); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B31B4(); -} - -void func_800B7138(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B72AC(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - D_800E17D0[D_8004A7C4->objId] - + (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B742C(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - func_800B31B4(); -} - -void func_800B74B8(s32 arg0) { - func_800B31B4(); -} - -void func_800B74D8(s32 arg0) { - func_800B63C0(arg0); - if (func_800B3158() == 0) { - func_800B1900((u16) D_8004A7C4->objId); - } -} - -void func_800B7514(s32 arg0) { - func_800B63C0(arg0); - func_800B31B4(); - D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; -} - -void func_800B7560(s32 arg0) { - - func_800B63C0(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - D_800E17D0[D_8004A7C4->objId] - + (D_800E6A10[D_8004A7C4->objId] == 1.0f ? (-M_PIF / 2) : (M_PIF / 2)); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } -} - -void func_800B7674(s32 arg0) { - func_800B63C0(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - D_800E17D0[D_8004A7C4->objId] - + (D_800E6A10[D_8004A7C4->objId] == 1.0f ? (-M_PIF / 2) : (M_PIF / 2)); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B31B4(); -} - -void func_800B7790(s32 arg0) { - func_800B63C0(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] += D_800E9020[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; - - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B78AC(s32 arg0) { - func_800B63C0(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] += D_800E9020[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; - - func_800B31B4(); -} - -void func_800B799C(s32 arg0) { - func_800B5064(arg0); - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B79F4(s32 arg0) { - D_800E5510[D_8004A7C4->objId] = - D_800E56D0[D_8004A7C4->objId] = - D_800E5C10[D_8004A7C4->objId] = D_800E5890[D_8004A7C4->objId] = 0.0f; - - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = - (D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]) - + D_800E4C50[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - func_800B31B4(); -} - -void func_800B7B64(s32 arg0) { - func_800B62AC(arg0); - func_800B6144(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - if (D_800E9AA0[D_8004A7C4->objId] == 0) { - gEntitiesAngleYArray[D_8004A7C4->objId] += (D_800E6A10[D_8004A7C4->objId] * (-M_PIF / 2)); - } - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B31B4(); -} - -void func_800B7CA0(s32 arg0) { - func_800B62AC(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } -} - -void func_800B7D88(s32 arg0) { - func_800B63C0(arg0); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } -} - -// uhh -#ifdef NON_MATCHING -void func_800B7E44(void) { - D_800E2090[D_8004A7C4->objId] = D_800EB320[D_8004A7C4->objId] * (0.0f - gEntitiesNextPosXArray[D_8004A7C4->objId]); - D_800E2410[D_8004A7C4->objId] = D_800EB320[D_8004A7C4->objId] * (0.0f - gEntitiesNextPosXArray[D_8004A7C4->objId]); - D_800E2250[D_8004A7C4->objId] = 0.0f; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B7E44.s") -#endif - -void func_800B7ED4(s32 arg0) { - func_800B5A7C(arg0); - - D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); - - func_800F8E6C(D_800DE350[D_8004A7C4->objId]); - - D_800E64D0[D_8004A7C4->objId] -= (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); - - func_800B7E44(); - - gEntitiesNextPosXArray[D_8004A7C4->objId] += D_800E2090[D_8004A7C4->objId]; - gEntitiesNextPosYArray[D_8004A7C4->objId] += D_800E3210[D_8004A7C4->objId]; - gEntitiesNextPosZArray[D_8004A7C4->objId] += D_800E2410[D_8004A7C4->objId]; -} - -void func_800B8020(s32 arg0) { - func_800B7ED4(arg0); - - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E9020[D_8004A7C4->objId] + D_800E17D0[D_8004A7C4->objId]; - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B8130(s32 arg0) { - func_800B5C28(arg0); - - gEntitiesNextPosXArray[D_8004A7C4->objId] += (D_800E2090[D_8004A7C4->objId] + D_800E3050[D_8004A7C4->objId]); - gEntitiesNextPosYArray[D_8004A7C4->objId] += (D_800E2250[D_8004A7C4->objId] + D_800E3210[D_8004A7C4->objId]); - gEntitiesNextPosZArray[D_8004A7C4->objId] += (D_800E2410[D_8004A7C4->objId] + D_800E33D0[D_8004A7C4->objId]); -} - -void func_800B8208(s32 arg0) { - func_800B8130(arg0); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - D_800E17D0[D_8004A7C4->objId] = gEntitiesAngleYArray[D_8004A7C4->objId]; - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B8300(s32 arg0) { - gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesAngleYArray[D_8004A7C4->objId] = gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; -} - -// how -#ifdef NON_MATCHING -void func_800B83C8(s32 arg0) { - Vector sp30; - Vector sp24; - - sp24.x = D_800E2090[D_8004A7C4->objId]; - sp24.y = D_800E2250[D_8004A7C4->objId]; - sp24.z = D_800E2410[D_8004A7C4->objId]; - func_800A4958(&sp30, D_800DE350[D_800E0D50[D_8004A7C4->objId]]->unk3C->unk10, &sp24); - gEntitiesPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_8004A7C4->objId]; - gEntitiesPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_8004A7C4->objId]; - gEntitiesPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_8004A7C4->objId]; - gEntitiesNextPosXArray[D_8004A7C4->objId] = sp30.x; - gEntitiesNextPosYArray[D_8004A7C4->objId] = sp30.y; - gEntitiesNextPosZArray[D_8004A7C4->objId] = sp30.z; - D_800E9C60[D_8004A7C4->objId] = 1; - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_8/func_800B83C8.s") -#endif - -void func_800B8550(s32 arg0) { - func_800B62AC(arg0); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B3234(gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} - -void func_800B8630(s32 arg0) { - func_800B62AC(arg0); - func_800B6144(arg0); - - while (gEntitiesAngleYArray[D_8004A7C4->objId] >= M_TAU) { - gEntitiesAngleYArray[D_8004A7C4->objId] -= M_TAU; - } - while (gEntitiesAngleYArray[D_8004A7C4->objId] < 0.0f) { - gEntitiesAngleYArray[D_8004A7C4->objId] += M_TAU; - } - - func_800B31B4(); -} +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B35F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B369C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B3838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B3A6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B3CEC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4024.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4640.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B46F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4864.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B491C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4924.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4954.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B49F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4AB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4B9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4D40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4D70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4EBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B4F48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B5064.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B5094.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B50C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B531C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B5A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B5C28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B5E14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B5FBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6064.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B62AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B63C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6474.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B658C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6684.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B67A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B68AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6A2C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6B8C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6CF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6E84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B6FD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B72AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B742C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B74B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B74D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7514.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7674.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7790.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B78AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B799C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B79F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7D88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B7ED4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B8020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B8130.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B8208.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B8300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B83C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B8550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/ovl1_8/func_800B8630.s") diff --git a/src/ovl1/save_file.c b/src/ovl1/save_file.c index bca5e26fc..df6336218 100644 --- a/src/ovl1/save_file.c +++ b/src/ovl1/save_file.c @@ -1,279 +1,75 @@ -#include -#include -#include "save_file.h" +#include "common.h" -#define SAVE_CHECKSUM_MAGIC 0x97538642 -#define SAVE_INIT_MAGIC 0x99999999 +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8700.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B87E0.s") -void calc_header_checksum(void); -u32 calc_save_header_checksum(void); -extern u16 D_800ECB00[]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B891C.s") -#ifdef NON_MATCHING -void func_800B86FC(void) { - s32 i; - s32 phi_v1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8AD4.s") - func_80004D00_ovl1(0, &gSaveBuffer1, 0x118); - if (calc_save_header_checksum() != gSaveBuffer1.header.checksum) { - func_800B9008(); - } - - for (i = 0; i < 3; i++) { - if (gSaveBuffer1.files[i].checksum == 0x99999999) { - break; - } - } +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8B2C.s") - gSaveBuffer1.header.head[2] = i; - calc_header_checksum(); - func_800B8BDC(); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8B58.s") - gSaveBuffer2 = gSaveBuffer1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8B84.s") - // gSaveBuffer2.header.head[0] = gSaveBuffer1.header.head[0]; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B86FC.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8BB0.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B87E0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8BDC.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B891C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8C08.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8AD4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/init_save_file_maybe.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8B2C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B8E00.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8B58.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/calc_save_file_checksum.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8B84.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/calc_file_checksum.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8BB0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9008.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8BDC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/calc_save_header_checksum.s") -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8C08.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/calc_header_checksum.s") -extern void calc_file_checksum(u32 fileNum); -extern u8 D_800D5150[]; // TODO: get correct type for this -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8C34.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9104.s") -// delete save file? -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8E00.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B91B8.s") -s32 calc_save_file_checksum(u32 fileNum) { - u32 *i = &gSaveBuffer1.files[fileNum]; - u32 *saveEnd = &gSaveBuffer1.files[fileNum].checksum; - u32 resultBuffer = SAVE_CHECKSUM_MAGIC; - while (i != saveEnd) { - resultBuffer += *i; - i++; - } - return resultBuffer; -} - -void calc_file_checksum(u32 arg0) { - gSaveBuffer1.files[arg0].checksum = calc_save_file_checksum(arg0); -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9008.s") - -#ifdef NON_MATCHING -u32 calc_save_header_checksum(void) { - s32 *i = gSaveBuffer1.header.head; - s32 *saveEnd = &gSaveBuffer1.header.checksum; - u32 resultBuffer = SAVE_CHECKSUM_MAGIC; - - - do { - resultBuffer += *(i++); - } - while (i != saveEnd); - // i++; - return resultBuffer; - - // int i = 0; - // u32 resultBuffer = SAVE_CHECKSUM_MAGIC; - - // do { - // resultBuffer += gSaveBuffer1.header.head[i++]; - // } while (i < 3); - - // for (i = 0; i < 3; i++) { - // resultBuffer += gSaveBuffer1.header.head[i]; - // } - // return resultBuffer; - - // s32 *i = gSaveBuffer1.header.head; - // s32 *saveEnd = &gSaveBuffer1.header.checksum; - // u32 resultBuffer; - // for (resultBuffer = SAVE_CHECKSUM_MAGIC; i != saveEnd; i++) resultBuffer+=*i; - // return resultBuffer; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9068.s") -#endif - - -void calc_header_checksum(void) { - gSaveBuffer1.header.checksum = calc_save_header_checksum(); -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9104.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B91B8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B922C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B92B4.s") - - -extern u8 D_800BE5A8[]; - -// verify save -// calculates percent complete and more -#ifdef MIPS_TO_C_ -void verify_save(s32 fileNum) { - u32 i; - u32 percent; - - if (gSaveBuffer1.files[fileNum].hundredYardHopRecord < 600) { - gSaveBuffer1.files[fileNum].hundredYardHopRecord = 600; - } - if (gSaveBuffer1.files[fileNum].bumperCropBumpRecord > 200) { - gSaveBuffer1.files[fileNum].bumperCropBumpRecord = 200; - } - if (gSaveBuffer1.files[fileNum].checkerBoardChaseRecord < 600) { - gSaveBuffer1.files[fileNum].checkerBoardChaseRecord = 600; - } - gSaveBuffer1.files[fileNum].shards[23] = (u8)0; - gSaveBuffer1.files[fileNum].shards[3] = (u8)0; - gSaveBuffer1.files[fileNum].data38[3] = (u8)0; - percent = 0; - if (gSaveBuffer1.files[fileNum].cutscenesWatched & 2) { - percent = 2; - } - - - for (i = 0; i < 5; i++) { - if (i < gSaveBuffer1.files[fileNum].world - 1) { - gSaveBuffer1.files[fileNum].shards[8 + i] = 1; - } - } - // loop_9: - // phi_a2->unk44 = (u8)0; - // if (phi_a1 < (u32) (temp_v0->unk10 - 1)) { - // (temp_a3 + phi_a1)->unk44 = (u8)1U; - // } - // temp_a1 = phi_a1 + 1; - // phi_a2 = phi_a2 + 1; - // phi_a1 = (u32) temp_a1; - // if (temp_a1 < 5) { - // goto loop_9; - // } - if (gSaveBuffer1.files[fileNum].world >= 8) { - gSaveBuffer1.files[fileNum].data38[2] = 1; - gSaveBuffer1.files[fileNum].data38[1] = 1; - } - if (gSaveBuffer1.files[fileNum].world < 6) { - gSaveBuffer1.files[fileNum].data38[2] = 0; - gSaveBuffer1.files[fileNum].data38[1] = 0; - } - - // problematic loop; might have to regenerate in m2c - for (i = 0; i < 16; i++) { - if (gSaveBuffer1.files[fileNum].shards[8] != 0) { - percent += D_800BE5A8[i]; - } - if (gSaveBuffer1.files[fileNum].shards[i] & 1) - percent++; - if (gSaveBuffer1.files[fileNum].shards[i] & 2) - percent++; - if (gSaveBuffer1.files[fileNum].shards[i] & 4) - percent++; - } - - gSaveBuffer1.files[fileNum].percentComplete = percent; - gSaveBuffer1.files[fileNum].data13 = 0U; - if (gSaveBuffer1.files[fileNum].data38[1] != 0) { - gSaveBuffer1.files[fileNum].data13 = 1U; - } - gSaveBuffer1.files[fileNum].data14 = 0U; - if (gSaveBuffer1.files[fileNum].data38[2] != 0) { - gSaveBuffer1.files[fileNum].data14 = 1U; - } -} - -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B92D8.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B94FC.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B96A0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9C50.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9CB4.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9D60.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9DC8.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9DF8.s") - -extern u8 D_800D6BC8[]; -extern u8 D_800D6BC5; - -s32 func_800B9E4C(void) { - s32 v0; - s32 a0; - - v0 = 0; - - for (a0 = 0; a0 < 24; a0++) { - if (D_800D6BC8[a0] & 1) { - v0++; - } - if (D_800D6BC8[a0] & 2) { - v0++; - } - if (D_800D6BC8[a0] & 4) { - v0++; - } - } - if (v0 < 0x42) { - return 0; - } - if (D_800D6BC5 != 0) { - return 1; - } - return 0; -} - -extern u32 gCutscenesWatched; -s32 check_cutscene_watched(s32 arg0) { - return (gCutscenesWatched >> arg0) & 1; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9F64.s") - - -s32 set_cutscene_watched(s32 arg0, s32 fileNum) { - gCutscenesWatched |= (1 << arg0); - - if (fileNum >= 0 && fileNum < 3) { - gSaveBuffer1.files[fileNum].cutscenesWatched = gCutscenesWatched; - } - return gCutscenesWatched; -} - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B9FE0.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800BA284.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800BA40C.s") - -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800BA5C4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B922C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B92B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/verify_save.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B94FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B96A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9C50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9CB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9DC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9DF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9E4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/check_cutscene_watched.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9F64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/set_cutscene_watched.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800B9FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800BA284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/func_800BA40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl1/save_file/save_file_set_to_full_completion.s") diff --git a/src/ovl10/ovl10.c b/src/ovl10/ovl10.c new file mode 100644 index 000000000..008d030a2 --- /dev/null +++ b/src/ovl10/ovl10.c @@ -0,0 +1,117 @@ +#include +#include +#include "GObj.h" +#include "ovl1/ovl1_6.h" +#include "ovl1/ovl1_7.h" +#include "unk_structs/D_800DE350.h" +#include "buffers.h" + +extern void func_800B1434(); +extern void func_800B4B9C(); + +void func_801DB1E0_ovl10(void) { + func_800B62AC(); + gEntitiesAngleYArray[omCurrentObj->objId] = D_800E9020[omCurrentObj->objId] + D_800E17D0[omCurrentObj->objId] + 1.5707964f; + while (gEntitiesAngleYArray[omCurrentObj->objId] >= 6.2831855f) { + gEntitiesAngleYArray[omCurrentObj->objId] -= 6.2831855f; + } + while (gEntitiesAngleYArray[omCurrentObj->objId] < 0.0f) { + gEntitiesAngleYArray[omCurrentObj->objId] += 6.2831855f; + } + func_800B3234(gEntitiesNextPosXArray[omCurrentObj->objId], gEntitiesNextPosYArray[omCurrentObj->objId], gEntitiesNextPosZArray[omCurrentObj->objId]); +} + +void func_801DB2FC_ovl10(void) { + func_800B5A7C(); + D_800E64D0[omCurrentObj->objId] += D_800E5510[omCurrentObj->objId] + D_800E56D0[omCurrentObj->objId]; + func_800F8E6C(D_800DE350[omCurrentObj->objId]); + D_800E64D0[omCurrentObj->objId] -= D_800E5510[omCurrentObj->objId] + D_800E56D0[omCurrentObj->objId]; + gEntitiesNextPosXArray[omCurrentObj->objId] += D_800E2090[omCurrentObj->objId]; + D_800E2250[omCurrentObj->objId] += D_800E3210[omCurrentObj->objId] + D_800E5C10[omCurrentObj->objId] + D_800E5890[omCurrentObj->objId]; + gEntitiesNextPosYArray[omCurrentObj->objId] = D_800E2250[omCurrentObj->objId]; + gEntitiesNextPosZArray[omCurrentObj->objId] += D_800E2410[omCurrentObj->objId]; +} + +void func_801DB478_ovl10(void) { + func_801DB2FC_ovl10(); + gEntitiesAngleYArray[omCurrentObj->objId] = D_800E17D0[omCurrentObj->objId] + (D_800E6A10[omCurrentObj->objId] * -1.5707964f); + while (gEntitiesAngleYArray[omCurrentObj->objId] >= 6.2831855f) { + gEntitiesAngleYArray[omCurrentObj->objId] -= 6.2831855f; + } + while (gEntitiesAngleYArray[omCurrentObj->objId] < 0.0f) { + gEntitiesAngleYArray[omCurrentObj->objId] += 6.2831855f; + } + func_800B3234(gEntitiesNextPosXArray[omCurrentObj->objId], gEntitiesNextPosYArray[omCurrentObj->objId], gEntitiesNextPosZArray[omCurrentObj->objId]); +} + +void func_801DB594_ovl10(GObj *arg0) { + func_800B5C28(); + gEntitiesNextPosXArray[omCurrentObj->objId] += D_800E2090[omCurrentObj->objId] + D_800E3050[omCurrentObj->objId]; + gEntitiesNextPosYArray[omCurrentObj->objId] += D_800E2250[omCurrentObj->objId] + D_800E3210[omCurrentObj->objId]; + gEntitiesNextPosZArray[omCurrentObj->objId] += D_800E2410[omCurrentObj->objId] + D_800E33D0[omCurrentObj->objId]; + func_800B5FBC(arg0); +} + +void func_801DB678_ovl10(GObj *obj) { + func_801DB594_ovl10(obj); + while (gEntitiesAngleYArray[omCurrentObj->objId] >= 6.2831855f) { + gEntitiesAngleYArray[omCurrentObj->objId] -= 6.2831855f; + } + while (gEntitiesAngleYArray[omCurrentObj->objId] < 0.0f) { + gEntitiesAngleYArray[omCurrentObj->objId] += 6.2831855f; + } + D_800E17D0[omCurrentObj->objId] = gEntitiesAngleYArray[omCurrentObj->objId]; + func_800B3234(gEntitiesNextPosXArray[omCurrentObj->objId], gEntitiesNextPosYArray[omCurrentObj->objId], gEntitiesNextPosZArray[omCurrentObj->objId]); +} + +void func_801DB770_ovl10(GObj *obj) { + func_800A9864(0x100E2, 0x1869F, 0x10); + if (D_800EC2E0[omCurrentObj->objId].as_u32 == 0) { + func_800B1F68(gEntityGObjProcessArray5[omCurrentObj->objId], func_800B1434); + obj->unk3C->posVec.x = gEntitiesNextPosXArray[omCurrentObj->objId]; + obj->unk3C->posVec.y = gEntitiesNextPosYArray[omCurrentObj->objId]; + obj->unk3C->posVec.z = gEntitiesNextPosZArray[omCurrentObj->objId]; + obj->unk3C->angleVec.x = gEntitiesAngleXArray[omCurrentObj->objId]; + obj->unk3C->angleVec.y = gEntitiesAngleYArray[omCurrentObj->objId]; + obj->unk3C->angleVec.z = gEntitiesAngleZArray[omCurrentObj->objId]; + obj->unk3C->scaleVec.x = gEntitiesScaleXArray[omCurrentObj->objId]; + obj->unk3C->scaleVec.y = gEntitiesScaleYArray[omCurrentObj->objId]; + obj->unk3C->scaleVec.z = gEntitiesScaleZArray[omCurrentObj->objId]; + func_800AA018(0x1062E); + } else { + D_800DEF90[omCurrentObj->objId] = func_800B4B9C; + D_800DDA90[omCurrentObj->objId] = 0x25; + func_800AA018(0x1062F); + } + while (func_800AF230() == 0) { + if (D_800E7B20[D_800E0D50[omCurrentObj->objId]] <= 0.0f) { + break; + } else { + ohSleep(1); + } + } + func_800B1900(omCurrentObj->objId); +} + +void func_801DB9DC_ovl10(GObj *obj) { + func_800A9864(0x100E3, 0x1869F, 0x10); + func_800B1F68(gEntityGObjProcessArray5[omCurrentObj->objId], func_800B1434); + obj->unk3C->posVec.x = gEntitiesNextPosXArray[omCurrentObj->objId]; + obj->unk3C->posVec.y = gEntitiesNextPosYArray[omCurrentObj->objId]; + obj->unk3C->posVec.z = gEntitiesNextPosZArray[omCurrentObj->objId]; + obj->unk3C->angleVec.x = gEntitiesAngleXArray[omCurrentObj->objId]; + obj->unk3C->angleVec.y = gEntitiesAngleYArray[omCurrentObj->objId]; + obj->unk3C->angleVec.z = gEntitiesAngleZArray[omCurrentObj->objId]; + obj->unk3C->scaleVec.x = gEntitiesScaleXArray[omCurrentObj->objId]; + obj->unk3C->scaleVec.y = gEntitiesScaleYArray[omCurrentObj->objId]; + obj->unk3C->scaleVec.z = gEntitiesScaleZArray[omCurrentObj->objId]; + func_800AA018(0x10630); + while (func_800AF230() == 0) { + if (D_800E7B20[D_800E0D50[omCurrentObj->objId]] <= 0.0f) { + break; + } else { + ohSleep(1); + } + } + func_800B1900(omCurrentObj->objId); +} diff --git a/src/ovl19/helpeff.c b/src/ovl19/helpeff.c new file mode 100644 index 000000000..9eba1d857 --- /dev/null +++ b/src/ovl19/helpeff.c @@ -0,0 +1,88 @@ +#include +#include + +#include "main/object_manager.h" +#include "GObj.h" +#include "ovl1/ovl1_6.h" +#include "ovl1/ovl1_7.h" + +extern VTABLE D_8022F070_ovl19; + +extern void func_800B5094(s32, s32, f32); +void func_8021EC64_ovl19(GObj *arg0); +void func_8021ED80_ovl19(GObj *arg0); +void func_8021EB6C_ovl19(GObj *arg0); +void func_8021ECC4_ovl19(GObj *arg0); + +void func_8021EA20_ovl19() { + func_800B63C0(); +} + +void func_8021EA40_ovl19(s32 arg0) { + static VTABLE D_8022F070_ovl19 = { + func_8021EB6C_ovl19, + func_8021ECC4_ovl19, + }; + + D_800E10D0[omCurrentObj->objId] = D_800E10D0[D_800E0D50[omCurrentObj->objId]]; + D_800E1290[omCurrentObj->objId] = D_800E1290[D_800E0D50[omCurrentObj->objId]]; + D_800E1450[omCurrentObj->objId] = D_800E1450[D_800E0D50[omCurrentObj->objId]]; + D_800E6A10[omCurrentObj->objId] = D_800E6A10[D_800E0D50[omCurrentObj->objId]]; + D_800E6BD0[omCurrentObj->objId] = D_800E6BD0[D_800E0D50[omCurrentObj->objId]]; + call_virtual_function(gEntityVtableIndexArray[omCurrentObj->objId], 2, &D_8022F070_ovl19); +} + +void func_8021EB6C_ovl19(GObj *arg0) { + D_800DEF90[omCurrentObj->objId] = func_800B5094; + D_800DF150[omCurrentObj->objId] = func_8021EC64_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.2f; + func_800A9864(0x20062, 0x1869F, 0x10); + func_800AA154(0x20324); + D_800E9FE0[D_800EBBE0[omCurrentObj->objId]].as_u32 = 0; + func_800B1900(omCurrentObj->objId); +} + +void func_8021EC64_ovl19(GObj *arg0) { + if (D_800E8060[0] == -1) { + D_800E9FE0[D_800EBBE0[omCurrentObj->objId]].as_u32 = 0; + func_800B1900(omCurrentObj->objId); + } +} + +void func_8021ECC4_ovl19(GObj *arg0) { + D_800DF150[omCurrentObj->objId] = func_8021ED80_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.2f; + func_800A9864(0x20063, 0x1869F, 0x10); + func_800AA018(0x20327); + func_800AA018(0x20326); + func_800AFA14(); +} + +void func_8021ED80_ovl19(GObj *arg0) { + if (D_800E8920[D_800E0D50[omCurrentObj->objId]] != 0) { + gEntitiesNextPosXArray[omCurrentObj->objId] = gEntitiesNextPosXArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosYArray[omCurrentObj->objId] = gEntitiesNextPosYArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosZArray[omCurrentObj->objId] = gEntitiesNextPosZArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesAngleYArray[omCurrentObj->objId] = gEntitiesAngleYArray[D_800E0D50[omCurrentObj->objId]]; + func_800AFBB4(1, omCurrentObj); + } else { + func_800AFBB4(0, omCurrentObj); + } +} + + +s32 func_8021EE88_ovl19(GObj *arg0) { + s32 temp_v0; + + temp_v0 = request_track_general(0x16, 0x3C, 0x4A); + if (temp_v0 != -1) { + gEntityVtableIndexArray[temp_v0] = arg0; + } else { + print_error_stub("Helper Effect Request Error![helpeff.cc]\n"); + } + return temp_v0; +} diff --git a/src/ovl19/helper.c b/src/ovl19/helper.c index c93e1da4e..89e15b25a 100644 --- a/src/ovl19/helper.c +++ b/src/ovl19/helper.c @@ -5,73 +5,165 @@ #include "ovl1/ovl1_6.h" #include "ovl1/ovl1_1.h" #include "ovl2/ovl2_8.h" -#include "D_8004A7C4.h" +#include "unk_structs/D_8022FAB0.h" +#include "GObj.h" +#include "main/object_manager.h" +#include "ovl0/lbvector.h" +#include "ovl2/ovl2_8.h" +#include "ovl2/ovl2_3.h" +#include "ovl1/ovl1_3.h" +#include "ovl1/ovl1_8.h" +#include "Player.h" +#include "helplib.h" extern u32 D_800D6E64; - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021EF00_ovl19.s") - -extern f32 D_8022F74C; extern s32 D_8012E7FC; -u32 func_8021F0A4_ovl19(struct GObj *arg0); + +void func_80221BC8_ovl19(void); void func_8021E5DC_ovl19(void); +void func_8021F0A4_ovl19(GObj *arg0); +void func_802228F8_ovl19(struct GObj *arg0); +void func_80222038_ovl19(struct GObj *arg0); +void func_80221FC8_ovl19(s32 arg0, s32 arg1, f32 arg2); +void func_802226FC_ovl19(struct GObj *arg0); +void func_8021EA20_ovl19(s32, s32, f32); +void func_8021F600_ovl19(struct GObj *arg0); +void func_8021E894_ovl19(s32, s32, f32); +void func_8021FE5C_ovl19(struct GObj *arg0); +void func_80221928_ovl19(struct GObj *arg0); +void func_8021EA20_ovl19(s32, s32, f32); +void func_80220138_ovl19(GObj*); +void func_80222CE0_ovl19(GObj*); +void func_802222F0_ovl19(GObj *arg0); +void func_80221654_ovl19(struct GObj *arg0); + +// migrate into respective funcs +extern VTABLE D_8022F080_ovl19; +extern VTABLE D_8022F088_ovl19; +extern VTABLE D_8022F09C_ovl19; +extern VTABLE D_8022F0A4_ovl19; +extern void (*D_8022F158_ovl19)(GObj *); +extern VTABLE D_8022F14C_ovl19; +extern VTABLE D_8022F144_ovl19; +extern VTABLE D_8022F0D8_ovl19; +extern VTABLE D_8022F0E8_ovl19; +extern VTABLE D_8022F13C_ovl19; + +// rodata +extern f32 D_8022F7AC, D_8022F7B0, D_8022F7B4; + +void func_8021EF00_ovl19(GObj *arg0) { + // extern void func_8021EF44_ovl19(GObj*); + // extern void func_8021F174_ovl19(GObj*); + // VTABLE D_8022F080_ovl19 = { + // func_8021EF44_ovl19, + // func_8021F174_ovl19, + // }; + + call_virtual_function(D_800E7880[omCurrentObj->objId], 2, D_8022F080_ovl19); +} void func_8021EF44_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021DFD0_ovl19(); - temp_f0 = D_8022F74C; - D_800DEF90[D_8004A7C4->objId] = &func_8021E5DC_ovl19; - D_800DF150[D_8004A7C4->objId] = &func_8021F0A4_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = &func_8021E5DC_ovl19; + D_800DF150[omCurrentObj->objId] = &func_8021F0A4_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800A9864(0x2006A, 0x1869F, 0x10); - D_800E8060[D_8004A7C4->objId] = 0; - D_800EBBE0[D_8004A7C4->objId] = func_8021E2D0_ovl19(0, 1); + D_800E8060[omCurrentObj->objId] = 0; + D_800EBBE0[omCurrentObj->objId] = func_8021E2D0_ovl19(0, 1); loop_1: - if (D_800E8060[D_8004A7C4->objId] != 2) { - finish_current_thread(1); + if (D_800E8060[omCurrentObj->objId] != 2) { + ohSleep(1); goto loop_1; } func_800AA018(0x203A4); - finish_current_thread(0x16); + ohSleep(0x16); D_8012E7FC = 1; func_800AFA14(); } -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F0A4_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F174_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F3B4_ovl19.s") +void func_8021F0A4_ovl19(GObj *arg0) { + if ((D_800E8060[omCurrentObj->objId] == 0) && (D_800E5F90[0] == 0x0000000A)) { + gKirbyState.unk3C = 0; + gKirbyState.unk17 = 1; + gKirbyState.abilityState = 0x4F; + gKirbyState.unk68 = 1; + D_800E0D50[0] = omCurrentObj->objId; + D_800E8060[omCurrentObj->objId] = 1; + if (D_800E6A10[0] == -1.0f) { + if (gKirbyState.isTurning & 1) { + gKirbyState.turnDirection = 0; + } else { + gKirbyState.isTurning |= 1; + } + } else { + gKirbyState.isTurning &= ~1; + } + } +} -// some meme with the temp float +// regalloc #ifdef NON_MATCHING -extern f32 D_8022F754, D_8022F758; -void func_8021F600_ovl19(struct GObj *arg0); -void func_8021E894_ovl19(s32, s32, f32); +void func_8021F174_ovl19(GObj *arg0) { + func_8021DFD0_ovl19(); + D_800DF150[omCurrentObj->objId] = NULL; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.2f; + func_800A9864(0x2006B, 0x1869F, 0x10); + D_800DFBD0[omCurrentObj->objId][12]->unk54 = 2; + func_801230E8(0x203BC, 0x203BD, 0); + while (D_800E8060[D_800E0D50[omCurrentObj->objId]] == 0) { + ohSleep(1); + } +loop: + if (D_800E8920[0] == 0) { + ohSleep(1); + goto loop; + } + func_801230E8(0x203B0, 0x203B1, 1); + func_801230E8(0x203BE, 0x203BF, 0); + while (D_800E8060[D_800E0D50[omCurrentObj->objId]] == 1) { + ohSleep(1); + } + D_800DFBD0[omCurrentObj->objId][12]->unk54 = 1; + func_801230E8(0x203A6, 0x203A7, 0); + func_800AFA14(); +} +#else +void func_8021F174_ovl19(GObj *arg0); +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_8021F174_ovl19.s") +#endif + +void func_8021F3B4_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 5, D_8022F088_ovl19); +} void func_8021F3F8_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021E184_ovl19(); - D_800E98E0[D_8004A7C4->objId] = 0; - D_800E9AA0[D_8004A7C4->objId] = func_800FCE50(); - temp_f0 = D_8022F754; - D_800DEF90[D_8004A7C4->objId] = func_8021E894_ovl19; - D_800DF150[D_8004A7C4->objId] = func_8021F600_ovl19; - gEntitiesAngleYArray[D_8004A7C4->objId] = D_8022F758; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; - D_800EBBE0[D_8004A7C4->objId] = func_8021E2D0_ovl19(1, 3); - D_800EBDA0[D_8004A7C4->objId] = func_8021E2D0_ovl19(1, 4); + D_800E98E0[omCurrentObj->objId] = 0; + D_800E9AA0[omCurrentObj->objId] = func_800FCE50(); + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = func_8021E894_ovl19; + D_800DF150[omCurrentObj->objId] = func_8021F600_ovl19; + gEntitiesAngleYArray[omCurrentObj->objId] = M_PIF/2; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; + D_800EBBE0[omCurrentObj->objId] = func_8021E2D0_ovl19(1, 3); + D_800EBDA0[omCurrentObj->objId] = func_8021E2D0_ovl19(1, 4); func_800A9864(0x2006F, 0x1869F, 0x10); if (D_800D6E64 == 0) { func_801230E8(0x203CD, 0x203CE, 0); - while (D_800E98E0[D_8004A7C4->objId] == 0) { - finish_current_thread(1); + while (D_800E98E0[omCurrentObj->objId] == 0) { + ohSleep(1); } func_8021FA2C_ovl19(); func_801230E8(0x203CB, 0x203CC, 1); @@ -79,35 +171,46 @@ void func_8021F3F8_ovl19(struct GObj *arg0) { func_801230E8(0x203CF, 0x203D0, 0); func_800AFA14(); } -#else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F3F8_ovl19.s") -#endif -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021F600_ovl19.s") +void func_8021F600_ovl19(GObj *arg0) { + Vector sp2C, sp20; -extern f32 D_8022F75C, D_8022F760; + if ((D_800E98E0[omCurrentObj->objId] == 0) && (D_800D6E64 == 0)) { + struct EntityThing800E9AA0 *tmp = D_800E9AA0[omCurrentObj->objId]; + sp2C.x = gEntitiesNextPosXArray[0]; + sp2C.y = 0.0f; + sp2C.z = gEntitiesNextPosZArray[0]; + + sp20.x = tmp->unk8; + sp20.y = 0.0f; + sp20.z = tmp->unk10; + if (vec3_dist_square(&sp2C, &sp20) < 102400.0f) { + D_800E98E0[omCurrentObj->objId]++; + } + } +} void func_8021F6D8_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021E184_ovl19(); - temp_f0 = D_8022F75C; - D_800DF150[D_8004A7C4->objId] = NULL; - gEntitiesAngleYArray[D_8004A7C4->objId] = D_8022F760; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DF150[omCurrentObj->objId] = NULL; + gEntitiesAngleYArray[omCurrentObj->objId] = M_PIF/2; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800A9864(0x20070, 0x1869F, 0x10); if (D_800D6E64 == 0) { - D_800DFBD0[D_8004A7C4->objId][3]->unk54 = 1; + D_800DFBD0[omCurrentObj->objId][3]->unk54 = 1; func_801230E8(0x203DC, 0x203DD, 0); - while (D_800E98E0[D_800E0D50[D_8004A7C4->objId]] == 0) { - finish_current_thread(1); + while (D_800E98E0[D_800E0D50[omCurrentObj->objId]] == 0) { + ohSleep(1); } func_801230E8(0x203DA, 0x203DB, 0); } else { - D_800DFBD0[D_8004A7C4->objId][3]->unk54 = 2; + D_800DFBD0[omCurrentObj->objId][3]->unk54 = 2; } func_800AFA14(); } @@ -115,27 +218,26 @@ void func_8021F6D8_ovl19(struct GObj *arg0) { void func_8021F8A4_ovl19(struct GObj *arg0) { Vector sp44; - D_800DEF90[D_8004A7C4->objId] = NULL; - gEntitiesScaleXArray[D_8004A7C4->objId] = 0.25f; - gEntitiesScaleYArray[D_8004A7C4->objId] = 0.25f; - gEntitiesScaleZArray[D_8004A7C4->objId] = 0.25f; + D_800DEF90[omCurrentObj->objId] = NULL; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.25f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.25f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.25f; func_800A9864(0x20071, 0x1869F, 0x10); while (1) { - func_800B2340(&sp44, D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][1], D_800E0D50[D_8004A7C4->objId]); - gEntitiesNextPosXArray[D_8004A7C4->objId] = sp44.x; - gEntitiesNextPosYArray[D_8004A7C4->objId] = sp44.y + 0.5f; - gEntitiesNextPosZArray[D_8004A7C4->objId] = sp44.z; - finish_current_thread(1); + func_800B2340(&sp44, D_800DFBD0[D_800E0D50[omCurrentObj->objId]][1], D_800E0D50[omCurrentObj->objId]); + gEntitiesNextPosXArray[omCurrentObj->objId] = sp44.x; + gEntitiesNextPosYArray[omCurrentObj->objId] = sp44.y + 0.5f; + gEntitiesNextPosZArray[omCurrentObj->objId] = sp44.z; + ohSleep(1); } } extern f32 gKirbyHp; -extern const char D_8022F720[]; // minor changes that i'm too tired to look at atm lol #ifdef NON_MATCHING void func_8021FA2C_ovl19(void) { Vector sp34; - struct EntityThing800E9AA0 *sp2C = D_800E9AA0[D_8004A7C4->objId]; + struct EntityThing800E9AA0 *sp2C = D_800E9AA0[omCurrentObj->objId]; s32 temp_v0 = request_track_general(0x1C, 0x1E, 0x3C); if (temp_v0 >= 0x3C || temp_v0 == -1) { @@ -143,13 +245,13 @@ void func_8021FA2C_ovl19(void) { if (temp_v0 != -1) { func_800B1900(temp_v0 & 0xFFFF); } - print_error_stub(&D_8022F720); + print_error_stub("drawItemReq Request Error!![helper.cc]\n"); return; } // if (temp_v0 == -1) { // goto block_2; // } - if (D_800E7880[D_8004A7C4->objId] == 2) { + if (D_800E7880[omCurrentObj->objId] == 2) { D_800E77A0[temp_v0] = 5; D_800E7880[temp_v0] = 1; } else if (6.0f == gKirbyHp) { @@ -162,7 +264,7 @@ void func_8021FA2C_ovl19(void) { D_800E7730[temp_v0] = 3; D_800E76C0[temp_v0] = 0xFF; D_800E8E60[temp_v0] = 1; - func_800B2340(&sp34, D_800DFBD0[D_800EBBE0[D_8004A7C4->objId]][2], D_800EBBE0[D_8004A7C4->objId], temp_v0); + func_800B2340(&sp34, D_800DFBD0[D_800EBBE0[omCurrentObj->objId]][2], D_800EBBE0[omCurrentObj->objId], temp_v0); gEntitiesPosXArray[temp_v0] = sp34.x; gEntitiesNextPosXArray[temp_v0] = sp34.x; gEntitiesPosYArray[temp_v0] = sp34.y; @@ -173,61 +275,53 @@ void func_8021FA2C_ovl19(void) { D_800E5F90[temp_v0] = sp2C->unk0; D_800E6D90[temp_v0] = sp2C->unk24; D_800E6BD0[temp_v0] = sp2C->unk24; - D_800EC120[D_8004A7C4->objId] = temp_v0; + D_800EC120[omCurrentObj->objId] = temp_v0; } #else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FA2C_ovl19.s") +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_8021FA2C_ovl19.s") #endif -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FC7C_ovl19.s") - - -// regalloc at the loop -#ifdef NON_MATCHING -void func_8021FE5C_ovl19(struct GObj *arg0); -extern f32 D_8022F764; +void func_8021FC7C_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 2, D_8022F09C_ovl19); +} void func_8021FCC0_ovl19(struct GObj *arg0) { f32 tmp; func_8021DFD0_ovl19(); - tmp = D_8022F764; - D_800DEF90[D_8004A7C4->objId] = func_8021E5DC_ovl19; - D_800DF150[D_8004A7C4->objId] = func_8021FE5C_ovl19; - gEntitiesAngleYArray[D_8004A7C4->objId] = 0.0f; - gEntitiesScaleXArray[D_8004A7C4->objId] = tmp; - gEntitiesScaleYArray[D_8004A7C4->objId] = tmp; - gEntitiesScaleZArray[D_8004A7C4->objId] = tmp; + tmp = 0.2f; + D_800DEF90[omCurrentObj->objId] = func_8021E5DC_ovl19; + D_800DF150[omCurrentObj->objId] = func_8021FE5C_ovl19; + gEntitiesAngleYArray[omCurrentObj->objId] = 0.0f; + gEntitiesScaleXArray[omCurrentObj->objId] = tmp; + gEntitiesScaleYArray[omCurrentObj->objId] = tmp; + gEntitiesScaleZArray[omCurrentObj->objId] = tmp; func_800A9864(0x20067, 0x1869F, 0x10); - D_800EBBE0[D_8004A7C4->objId] = func_8021E2D0_ovl19(2, 1); - D_800E98E0[D_8004A7C4->objId] = 0; + D_800EBBE0[omCurrentObj->objId] = func_8021E2D0_ovl19(2, 1); + D_800E98E0[omCurrentObj->objId] = 0; func_800AA018(0x2035D); - while (D_800E98E0[D_8004A7C4->objId] == 0) { - finish_current_thread(1); + while (D_800E98E0[omCurrentObj->objId] == 0) { + ohSleep(1); } - D_800E98E0[D_800EBBE0[D_8004A7C4->objId]] = 1; + D_800E98E0[D_800EBBE0[omCurrentObj->objId]] = 1; func_800AA154(0x2035E); func_800AFA14(); } -#else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FCC0_ovl19.s") -#endif -#ifdef NON_MATCHING void func_8021FE5C_ovl19(struct GObj *arg0) { - Vector sp20, sp2C; - if (D_800E98E0[D_8004A7C4->objId] == 0) { + Vector sp2C, sp20; + if (D_800E98E0[omCurrentObj->objId] == 0) { if (gKirbyState.unk16C != 0) { - if ((gEntitiesNextPosYArray[D_8004A7C4->objId] - 20.0f) <= *gEntitiesNextPosYArray) { + if ((gEntitiesNextPosYArray[omCurrentObj->objId] - 20.0f) <= gEntitiesNextPosYArray[0]) { sp2C.y = 0.0f; sp2C.x = gEntitiesNextPosXArray[0]; sp2C.z = gEntitiesNextPosZArray[0]; - sp20.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; + sp20.x = gEntitiesNextPosXArray[omCurrentObj->objId]; sp20.y = 0.0f; - sp20.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; + sp20.z = gEntitiesNextPosZArray[omCurrentObj->objId]; if (vec3_dist_square(&sp2C, &sp20) < 6400.0f) { - D_800E98E0[D_8004A7C4->objId]++; + D_800E98E0[omCurrentObj->objId]++; gKirbyState.unk17 = 1; gKirbyState.abilityState = 0; gKirbyState.unk68 = 1; @@ -236,196 +330,406 @@ void func_8021FE5C_ovl19(struct GObj *arg0) { } } } + +void func_8021FF90_ovl19(s32 arg0) { + D_800E9AA0[omCurrentObj->objId] = NULL; + func_8021DFD0_ovl19(); + D_800DF150[omCurrentObj->objId] = func_80220138_ovl19; + gEntitiesAngleYArray[omCurrentObj->objId] = 0.0f; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.2f; + func_800A9864(0x20060, 0x1869F, 0x10); + D_800E98E0[omCurrentObj->objId] = 0; + func_801230E8(0x202EF, 0x202F0, 0); + while (D_800E98E0[omCurrentObj->objId] == 0) { + ohSleep(1); + } + D_800E9AA0[omCurrentObj->objId] = 1; + func_801230E8(0x202ED, 0x202EE, 1); + gKirbyState.unk17 = 0; + gKirbyState.unk68 = 0; + D_800E8760[omCurrentObj->objId] = 0; + func_800AFA14(); +} + +// Struct definition rabbit hole +#ifdef MIPS_TO_C +void func_80220138_ovl19(s32 arg0) { + extern s32 D_801964E8; + s32 *sp3C; + f32 sp38; + f32 sp34; + f32 sp30; + f32 sp2C; + f32 sp28; + f32 sp24; + f32 sp20; + u32 temp_v1; + + omCurrentObj->objId = omCurrentObj->objId; + if (D_800E9AA0[omCurrentObj->objId] != NULL) { + sp2C = gEntitiesNextPosXArray[omCurrentObj->objId]; + sp20 = sp2C; + sp24 = gEntitiesNextPosYArray[omCurrentObj->objId] + 240.0f; + sp34 = gEntitiesNextPosZArray[omCurrentObj->objId]; + sp28 = sp34; + sp3C = &D_801964E8; + sp38 = 1.5707964f; + sp30 = gEntitiesNextPosYArray[omCurrentObj->objId] + 239.0f; + func_8011BF4C(&sp20, &func_80155ED8_ovl3); + D_800E9AA0[omCurrentObj->objId] = NULL; + } +} #else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FE5C_ovl19.s") +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80220138_ovl19.s") #endif -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8021FF90_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220138_ovl19.s") +void func_8022023C_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 3, D_8022F0A4_ovl19); +} -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022023C_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220280_ovl19.s") +// Pit of Doom +// { + // "struct offset vs absolute access" rabbit hole + GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80220280_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022045C_ovl19.s") + // having to define a struct thats only ever accessed here and the above function + GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_8022045C_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022054C_ovl19.s") + // another struct def + GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_8022054C_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220814_ovl19.s") + // the same rabbit hole as func_80220280_ovl19, plus a triple nested loop + GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80220814_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802209A0_ovl19.s") +void func_802209A0_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 4, D_8022F0D8_ovl19); +} -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802209E4_ovl19.s") + // the same rabbit hole as func_80220280_ovl19 + GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_802209E4_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220B40_ovl19.s") + // the same rabbit hole as func_80220280_ovl19 + GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80220B40_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220D54_ovl19.s") + // currently flying blind filling out LayoutNode->unk80 so I won't bother + GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80220D54_ovl19.s") +// } void func_80220E14_ovl19(struct GObj *arg0) { - D_800DEF90[D_8004A7C4->objId] = NULL; - gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]] + 0.5f; - gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesScaleXArray[D_8004A7C4->objId] = 0.25f; - gEntitiesScaleYArray[D_8004A7C4->objId] = 0.25f; - gEntitiesScaleZArray[D_8004A7C4->objId] = 0.25f; + D_800DEF90[omCurrentObj->objId] = NULL; + gEntitiesNextPosXArray[omCurrentObj->objId] = gEntitiesNextPosXArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosYArray[omCurrentObj->objId] = gEntitiesNextPosYArray[D_800E0D50[omCurrentObj->objId]] + 0.5f; + gEntitiesNextPosZArray[omCurrentObj->objId] = gEntitiesNextPosZArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.25f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.25f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.25f; func_800A9864(0x20071, 0x1869F, 0x10, D_800E0D50); func_800AFA14(); } -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220F48_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80220F8C_ovl19.s") +void func_80220F48_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 4, D_8022F0E8_ovl19); +} +// the same rabbit hole as func_80220280_ovl19 +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80220F8C_ovl19.s") extern u32 D_800D71F8; -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221108_ovl19.s") +// the same rabbit hole as func_80220280_ovl19 +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80221108_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802211A0_ovl19.s") +// the same rabbit hole as func_80220280_ovl19 +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_802211A0_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221480_ovl19.s") +// the same rabbit hole as func_80220280_ovl19 +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80221480_ovl19.s") -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022159C_ovl19.s") +void func_8022159C_ovl19(s32 arg0) { + D_800DEF90[omCurrentObj->objId] = NULL; + D_800DF150[omCurrentObj->objId] = func_80221654_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.2f; + func_800A9864(0x20071, 0x1869F, 0x10); + func_800AFA14(); +} void func_80221654_ovl19(struct GObj *arg0) { Vector sp1C; - func_800B2340(&sp1C, D_800DFBD0[D_800E0D50[D_8004A7C4->objId]][1], D_800E0D50[D_8004A7C4->objId]); - gEntitiesNextPosXArray[D_8004A7C4->objId] = sp1C.x; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosZArray[D_8004A7C4->objId] = sp1C.z; + func_800B2340(&sp1C, D_800DFBD0[D_800E0D50[omCurrentObj->objId]][1], D_800E0D50[omCurrentObj->objId]); + gEntitiesNextPosXArray[omCurrentObj->objId] = sp1C.x; + gEntitiesNextPosYArray[omCurrentObj->objId] = gEntitiesNextPosYArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosZArray[omCurrentObj->objId] = sp1C.z; } -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_8022170C_ovl19.s") - -#ifdef NON_MATCHING -void func_80221928_ovl19(struct GObj *arg0); -void func_8021EA20_ovl19(s32, s32, f32); -extern f32 D_8022F780; +void func_8022170C_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 2, D_8022F13C_ovl19); +} void func_80221750_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021E184_ovl19(); - temp_f0 = D_8022F780; - D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800A9864(0x20060, 0x1869F, 0x10); func_8021E2D0_ovl19(6, 1); - D_800DF150[D_8004A7C4->objId] = func_80221928_ovl19; + D_800DF150[omCurrentObj->objId] = func_80221928_ovl19; while (TRUE) { - D_800E9E20[D_8004A7C4->objId] = 0; + D_800E9E20[omCurrentObj->objId] = 0; func_800AA018(0x202E2); // loads from s1 instead of through an immediate - func_800AA864(0x202E1, 1); - D_800E9E20[D_8004A7C4->objId] = 1; + func_800AA864(0x202E1, 1U); + D_800E9E20[omCurrentObj->objId] = 1; func_80221BC8_ovl19(); - while (D_800E9E20[D_8004A7C4->objId] == 1) { - finish_current_thread(1); + while (D_800E9E20[omCurrentObj->objId] == 1) { + ohSleep(1); } func_800AA018(0x202E4); func_800AA864(0x202E3, 1); } } -#else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221750_ovl19.s") -#endif -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221928_ovl19.s") +void func_80221928_ovl19(GObj *arg0) { + switch (D_800E9E20[omCurrentObj->objId]) { + case 0: + func_80221A74_ovl19(); + break; + case 1: + if ((D_800E4C50[omCurrentObj->objId] >= 0.0f) && (gEntitiesAngleYArray[omCurrentObj->objId] >= 6.213372f)) { + D_800E4C50[omCurrentObj->objId] = 0.0f; + gEntitiesAngleYArray[omCurrentObj->objId] = D_800E4C50[omCurrentObj->objId]; + D_800E9E20[omCurrentObj->objId] = 2; + } + if ((D_800E4C50[omCurrentObj->objId] < 0.0f) && (gEntitiesAngleYArray[omCurrentObj->objId] <= 0.06981317f)) { + D_800E4C50[omCurrentObj->objId] = 0.0f; + gEntitiesAngleYArray[omCurrentObj->objId] = D_800E4C50[omCurrentObj->objId]; + D_800E9E20[omCurrentObj->objId] = 2; + } + break; + } +} -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221A74_ovl19.s") +#ifdef NON_MATCHING +void func_80221A74_ovl19(void) { + Vector sp34; + Vector sp28; + f32 temp_f0; -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221BC8_ovl19.s") + sp34.y = 0.0f; + sp34.x = 0.0f; + sp34.z = 2.0f; + lbvector_Rotate(&sp34, AXIS_Y, gEntitiesAngleYArray[omCurrentObj->objId]); + sp28.z = 0.0f; + sp28.x = gEntitiesNextPosXArray[0] - gEntitiesNextPosXArray[omCurrentObj->objId]; + sp28.y = gEntitiesNextPosZArray[0] - gEntitiesNextPosZArray[omCurrentObj->objId]; + temp_f0 = vec3_abs_angle_diff(&sp34, &sp28); + if (ABSF(temp_f0) <= 0.06981317f) { + D_800E4C50[omCurrentObj->objId] = 0.0f; + } else { + D_800E4C50[omCurrentObj->objId] = ((temp_f0 < 0.0f) ? -1 : 1) * 0.06981317f; + } +} +#else +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_80221A74_ovl19.s") +#endif + +void func_80221BC8_ovl19(void) { + if ((gEntitiesAngleYArray[omCurrentObj->objId] <= 0.06981317f) || (gEntitiesAngleYArray[omCurrentObj->objId] >= 6.213372f)) { + D_800E4C50[omCurrentObj->objId] = 0.0f; + gEntitiesAngleYArray[omCurrentObj->objId] = D_800E4C50[omCurrentObj->objId]; + D_800E9E20[omCurrentObj->objId] = 2; + } else if (gEntitiesAngleYArray[omCurrentObj->objId] >= M_PIF) { + D_800E4C50[omCurrentObj->objId] = 0.06981317f; + } else { + D_800E4C50[omCurrentObj->objId] = -0.06981317f; + } +} -extern f32 D_8022F7A0; void func_80221CA8_ovl19(struct GObj *arg0) { f32 temp_f0; - temp_f0 = D_8022F7A0; - D_800DEF90[D_8004A7C4->objId] = NULL; - gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]] + 0.5f; - gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = NULL; + gEntitiesNextPosXArray[omCurrentObj->objId] = gEntitiesNextPosXArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosYArray[omCurrentObj->objId] = gEntitiesNextPosYArray[D_800E0D50[omCurrentObj->objId]] + 0.5f; + gEntitiesNextPosZArray[omCurrentObj->objId] = gEntitiesNextPosZArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800A9864(0x20071, 0x1869F, 0x10, D_800E0D50); func_800AFA14(); } -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221DDC_ovl19.s") - -extern f32 D_8022F7A4; -void func_80222038_ovl19(struct GObj *arg0); -void func_80221FC8_ovl19(s32 arg0, s32 arg1, f32 arg2); -extern struct Player gKirbyState; +void func_80221DDC_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 2, D_8022F144_ovl19); +} void func_80221E20_ovl19(UNUSED struct GObj *arg0) { f32 temp_f0; func_8021DFD0_ovl19(); - temp_f0 = D_8022F7A4; - D_800DF150[D_8004A7C4->objId] = &func_80222038_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DF150[omCurrentObj->objId] = &func_80222038_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800A9864(0x2006C, 0x1869F, 0x10); - D_800E8060[D_8004A7C4->objId] = 0; + D_800E8060[omCurrentObj->objId] = 0; func_800AA018(0x203C1); - while (D_800E8060[D_8004A7C4->objId] != 1) { - finish_current_thread(1); + while (D_800E8060[omCurrentObj->objId] != 1) { + ohSleep(1); } func_8021E2D0_ovl19(7, 1); func_800AA018(0x203C0); - D_800DF310[D_8004A7C4->objId] = &func_80221FC8_ovl19; + D_800DF310[omCurrentObj->objId] = &func_80221FC8_ovl19; func_800AF27C(); func_800F753C(); - func_800AFBB4(0, D_8004A7C4); + func_800AFBB4(0, omCurrentObj); while (gKirbyState.unk30 == 0) { - finish_current_thread(1); + ohSleep(1); } - func_800B1900((u16) D_8004A7C4->objId); + func_800B1900((u16) omCurrentObj->objId); } -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80221FC8_ovl19.s") +void func_80221FC8_ovl19(s32 arg0, s32 arg1, f32 arg2) { + if (arg1 == 0) { + if (arg2 == 1.0f) { + func_800FB914(2); + } else if (arg2 == 2.0f) { + func_800FB914(1); + } + } +} -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222038_ovl19.s") +void func_80222038_ovl19(GObj *arg0) { + if (D_800E5F90[0] == 6) { + D_800E0D50[0] = omCurrentObj->objId; + gKirbyState.unk17 = 1; + gKirbyState.abilityState = 0x50; + gKirbyState.unk68 = 1; + if (D_800E6A10[0] == -1.0f) { + if (gKirbyState.isTurning & 1) { + gKirbyState.turnDirection = 0; + } else { + gKirbyState.isTurning |= 1; + } + } else { + gKirbyState.isTurning &= ~1; + } + play_sound(400); + D_800DF150[omCurrentObj->objId] = NULL; + } +} -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222108_ovl19.s") +void func_80222108_ovl19(s32 arg0) { + struct UnkStruct8022FAB0 *tmp; -#include "ovl2/ovl2_8.h" -#include "ovl19_2.h" -extern f32 D_8022F7AC, D_8022F7B0, D_8022F7B4; -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802222F0_ovl19.s") + func_8021E184_ovl19(); + tmp = func_800FF144(); + D_8022FAB0 = tmp; + if (tmp != NULL) { + D_8022FAB0->unk10 = 24.0f; + D_8022FAB0->unk14 = 20.0f; + D_8022FAB0->unk18 = -240.0f; + D_8022FAB0->unk21 = 1; + } + D_800DEF90[omCurrentObj->objId] = func_800B5064; + D_800E0F10[omCurrentObj->objId] = 1; + gEntitiesAngleYArray[omCurrentObj->objId] = gEntitiesAngleYArray[D_800E0D50[omCurrentObj->objId]]; + D_800DF150[omCurrentObj->objId] = func_802222F0_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleYArray[omCurrentObj->objId] = 0.2f; + gEntitiesScaleZArray[omCurrentObj->objId] = 0.2f; + func_800A9864(0x2006B, 0x1869F, 0x10, gEntitiesAngleYArray); + D_800E98E0[omCurrentObj->objId] = 0; + func_801230E8(0x203AC, 0x203AD, 1); + D_800E98E0[omCurrentObj->objId] = 1; + D_800DEF90[omCurrentObj->objId] = func_800B4924; + D_800DFBD0[omCurrentObj->objId][8]->angle.z = 0.0f; + func_800AFA14(); +} -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_802224BC_ovl19.s") +// i suspect its that if/else block +#ifdef NON_MATCHING +void func_802222F0_ovl19(GObj *arg0) { + Vector sp34; + Vector sp28; + f32 var_f12; + + if (D_800E98E0[omCurrentObj->objId] != 0) { + sp34.y = 0.0f; + sp34.x = 0.0f; + sp34.z = 1.0f; + sp28.y = 0.0f; + sp28.x = gEntitiesNextPosXArray[0] - gEntitiesNextPosXArray[omCurrentObj->objId]; + sp28.z = gEntitiesNextPosZArray[0] - gEntitiesNextPosZArray[omCurrentObj->objId]; + var_f12 = vec3_abs_angle_diff(&sp34, &sp28) * 0.6f; + if (var_f12 < 0.0f) { + if (var_f12 < -0.7853982f) { + var_f12 = -0.7853982f; + } + } else { + if (var_f12 > 0.7853982f) { + var_f12 = 0.7853982f; + } + } + D_800DFBD0[omCurrentObj->objId][8]->angle.y = var_f12; + D_800DFBD0[omCurrentObj->objId][8]->pos.x = 30.0f * var_f12; + } + D_8022FAB0_ovl19->unk4 = gEntitiesNextPosXArray[omCurrentObj->objId]; + D_8022FAB0_ovl19->unk8 = gEntitiesNextPosYArray[omCurrentObj->objId]; + D_8022FAB0_ovl19->unkC = gEntitiesNextPosZArray[omCurrentObj->objId]; +} +#else +GLOBAL_ASM("asm/nonmatchings/ovl19/helper/func_802222F0_ovl19.s") +#endif -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222500_ovl19.s") +void func_802224BC_ovl19(GObj *arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 3, D_8022F14C_ovl19); +} -void func_802226FC_ovl19(struct GObj *arg0); -void func_8021EA20_ovl19(s32, s32, f32); -extern f32 D_8022F7B8; +void func_80222500_ovl19(void) { + struct LayoutNode *node = D_800DFBD0[omCurrentObj->objId][1]; + Vector sp38; + Vector sp2C; + Vector sp20; + + sp38.x = 0.0f; + sp38.y = 0.0f; + sp38.z = 2.0f; + // applies + func_800B2340(&sp20, node, omCurrentObj->objId); + sp2C.x = gEntitiesNextPosXArray[0] - sp20.x; + sp2C.y = 0.0f; + sp2C.z = gEntitiesNextPosZArray[0] - sp20.z; + node->angle.y = vec3_abs_angle_diff(&sp38, &sp2C); +} void func_802225A4_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021E184_ovl19(); - temp_f0 = D_8022F7B8; - D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800AF980(0x18); func_800A9864(0x20068, 0x1869F, 0x10); - D_800E9E20[D_8004A7C4->objId] = 0; - D_800DF150[D_8004A7C4->objId] = func_802226FC_ovl19; + D_800E9E20[omCurrentObj->objId] = 0; + D_800DF150[omCurrentObj->objId] = func_802226FC_ovl19; func_800AA018(0x2035F); - while (D_800E9E20[D_8004A7C4->objId] == 0) { - finish_current_thread(1); + while (D_800E9E20[omCurrentObj->objId] == 0) { + ohSleep(1); } play_sound(0x258); func_800AA018(0x20360); @@ -437,33 +741,30 @@ void func_802226FC_ovl19(struct GObj *arg0) { f32 dy; f32 dx; - if (D_800E9E20[D_8004A7C4->objId] == 0) { - dz = gEntitiesNextPosZArray[0] - gEntitiesNextPosZArray[D_8004A7C4->objId]; - dy = gEntitiesNextPosXArray[0] - gEntitiesNextPosXArray[D_8004A7C4->objId]; - dx = (gEntitiesNextPosYArray[0] + 20.0f) - gEntitiesNextPosYArray[D_8004A7C4->objId]; + if (D_800E9E20[omCurrentObj->objId] == 0) { + dz = gEntitiesNextPosZArray[0] - gEntitiesNextPosZArray[omCurrentObj->objId]; + dy = gEntitiesNextPosXArray[0] - gEntitiesNextPosXArray[omCurrentObj->objId]; + dx = (gEntitiesNextPosYArray[0] + 20.0f) - gEntitiesNextPosYArray[omCurrentObj->objId]; if (((dz * dz) + ((dy * dy) + (dx * dx))) < 102400.0f) { func_8021E2D0_ovl19(9, 1); func_8021E2D0_ovl19(9, 2); - D_800E9E20[D_8004A7C4->objId] = 1; + D_800E9E20[omCurrentObj->objId] = 1; } } } -void func_802228F8_ovl19(struct GObj *arg0); -extern f32 D_8022F7BC; - void func_802227F0_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021E184_ovl19(); - temp_f0 = D_8022F7BC; - D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800AF980(0x18); func_800A9864(0x20060, 0x1869F, 0x10); - D_800DF150[D_8004A7C4->objId] = func_802228F8_ovl19; + D_800DF150[omCurrentObj->objId] = func_802228F8_ovl19; func_800AA018(0x202DE); func_800AA864(0x202DD, 1); func_800AA018(0x202E0); @@ -475,70 +776,118 @@ void func_802228F8_ovl19(struct GObj *arg0) { func_80222500_ovl19(); } -extern f32 D_8022F7C0; void func_80222918_ovl19(struct GObj *arg0) { f32 temp_f0; - temp_f0 = D_8022F7C0; - D_800DEF90[D_8004A7C4->objId] = NULL; - gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]] + 0.5f; - gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = NULL; + gEntitiesNextPosXArray[omCurrentObj->objId] = gEntitiesNextPosXArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosYArray[omCurrentObj->objId] = gEntitiesNextPosYArray[D_800E0D50[omCurrentObj->objId]] + 0.5f; + gEntitiesNextPosZArray[omCurrentObj->objId] = gEntitiesNextPosZArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800AF980(0x18, D_800E0D50, gEntitiesNextPosXArray, gEntitiesNextPosYArray); func_800A9864(0x20071, 0x1869F, 0x10); func_800AFA14(); } -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222A54_ovl19.s") +void func_80222A54_ovl19(s32 arg0) { + call_virtual_function(D_800E7880[omCurrentObj->objId], 3, &D_8022F158_ovl19); +} -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222A98_ovl19.s") +void func_80222A98_ovl19(GObj* arg0) { + f32 temp_f0 = 0.2f; + struct UnkStruct8022FAB0 *tmp; -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_2/func_80222CE0_ovl19.s") + func_8021E184_ovl19(); + tmp = func_800FF144(); + D_8022FAB0 = tmp; + if (tmp != NULL) { + D_8022FAB0->unk10 = 24.0f; + D_8022FAB0->unk14 = 20.0f; + D_8022FAB0->unk18 = -240.0f; + D_8022FAB0->unk21 = 1; + } + D_800DEF90[omCurrentObj->objId] = func_8021E894_ovl19; + D_800DF150[omCurrentObj->objId] = func_80222CE0_ovl19; + gEntitiesAngleYArray[omCurrentObj->objId] = 1.5707964f; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; + func_800A9864(0x2006B, 0x1869F, 16); + D_800EBBE0[omCurrentObj->objId] = func_8021E2D0_ovl19(10, 1); + D_800EBDA0[omCurrentObj->objId] = func_8021E2D0_ovl19(10, 2); + D_800E8060[omCurrentObj->objId] = 0; + func_801230E8(0x203B4, 0x203B5, 0); + while (D_800E8060[omCurrentObj->objId] == 0) ohSleep(1); + while (D_800E8060[omCurrentObj->objId] == 1) ohSleep(1); + func_801230E8(0x203B6, 0x203B7, 0); + func_800AFA14(); +} -extern f32 D_8022F7CC; +void func_80222CE0_ovl19(GObj *arg0) { + Vector sp24; + + if ((D_800E8060[omCurrentObj->objId] == 0) && (D_800E5F90[0] == 5)) { + gKirbyState.unk17 = 1; + gKirbyState.abilityState = 0x51; + D_800E0D50[0] = omCurrentObj->objId; + D_800E8060[omCurrentObj->objId] = 1; + gKirbyState.unk68 = 1; + if (*D_800E6A10 == -1.0f) { + if (gKirbyState.isTurning & 1) { + gKirbyState.turnDirection = 0; + } else { + gKirbyState.isTurning |= 1; + } + } else { + gKirbyState.isTurning &= ~1; + } + } + func_800B2340(&sp24, D_800DFBD0[omCurrentObj->objId][1], 0xFFFF); + D_8022FAB0_ovl19->unk4 = sp24.x; + D_8022FAB0_ovl19->unk8 = gEntitiesNextPosYArray[omCurrentObj->objId] + 0.5f; + D_8022FAB0_ovl19->unkC = sp24.z; +} void func_80222E3C_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021E184_ovl19(); - temp_f0 = D_8022F7CC; - D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800A9864(0x2006D, 0x1869F, 0x10); - gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]] + 160.0f; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]] - 160.0f; + gEntitiesNextPosXArray[omCurrentObj->objId] = gEntitiesNextPosXArray[D_800E0D50[omCurrentObj->objId]] + 160.0f; + gEntitiesNextPosYArray[omCurrentObj->objId] = gEntitiesNextPosYArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosZArray[omCurrentObj->objId] = gEntitiesNextPosZArray[D_800E0D50[omCurrentObj->objId]] - 160.0f; func_800AA018(0x203C2); - while (D_800E8060[D_800E0D50[D_8004A7C4->objId]] != 2) { - finish_current_thread(1); + while (D_800E8060[D_800E0D50[omCurrentObj->objId]] != 2) { + ohSleep(1); } func_800AA018(0x203C3); func_800AFA14(); } -extern f32 D_8022F7D0; - void func_80223020_ovl19(struct GObj *arg0) { f32 temp_f0; func_8021E184_ovl19(); - temp_f0 = D_8022F7D0; - D_800DEF90[D_8004A7C4->objId] = func_8021EA20_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; + temp_f0 = 0.2f; + D_800DEF90[omCurrentObj->objId] = func_8021EA20_ovl19; + gEntitiesScaleXArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleYArray[omCurrentObj->objId] = temp_f0; + gEntitiesScaleZArray[omCurrentObj->objId] = temp_f0; func_800A9864(0x2006E, 0x1869F, 0x10); - gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; + gEntitiesNextPosXArray[omCurrentObj->objId] = gEntitiesNextPosXArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosYArray[omCurrentObj->objId] = gEntitiesNextPosYArray[D_800E0D50[omCurrentObj->objId]]; + gEntitiesNextPosZArray[omCurrentObj->objId] = gEntitiesNextPosZArray[D_800E0D50[omCurrentObj->objId]]; func_800AA018(0x203C4); - while (D_800E8060[D_800E0D50[D_8004A7C4->objId]] != 2) { - finish_current_thread(1); + while (D_800E8060[D_800E0D50[omCurrentObj->objId]] != 2) { + ohSleep(1); } func_800AA018(0x203C5); func_800AFA14(); diff --git a/src/ovl19/helplib.c b/src/ovl19/helplib.c index 4c5dc7a88..4e8d5e755 100644 --- a/src/ovl19/helplib.c +++ b/src/ovl19/helplib.c @@ -1,75 +1,73 @@ #include #include #include "ovl1/ovl1_6.h" -#include "D_8004A7C4.h" +#include "GObj.h" +#include "unk_structs/D_800D6C68.h" +#include "unk_structs/D_800DE350.h" -extern void (*D_8022F040[])(struct GObj *); +extern void (*D_8022F040_ovl19[])(struct GObj *); void func_800AECC0(f32); void func_800AED20(f32); +extern void func_800B1900(u16); +void func_8021E4B0_ovl19(struct GObj *); +void func_800F88C8(s32, s32, f32);//, f32); +void func_8021E7DC_ovl19(struct GObj *); +s32 func_800B3158(void); void func_8021DF20_ovl19(struct GObj *arg0) { - D_800E0650[D_8004A7C4->objId] = 0; + D_800E0650[omCurrentObj->objId] = 0; func_800AECC0(D_800D6B10); func_800AED20(D_800D6B10); - D_800E8760[D_8004A7C4->objId] = 0; - D_800E83E0[D_8004A7C4->objId] = D_800E8760[D_8004A7C4->objId]; - call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 0xA, &D_8022F040[0]); + D_800E8760[omCurrentObj->objId] = 0; + D_800E83E0[omCurrentObj->objId] = D_800E8760[omCurrentObj->objId]; + call_virtual_function(gEntityVtableIndexArray[omCurrentObj->objId], 0xA, &D_8022F040_ovl19[0]); } -void func_8021E4B0_ovl19(struct GObj *); -#include "unk_structs/D_800DE350.h" -extern f32 D_8022F6D0; -void func_800F88C8(s32, s32, f32);//, f32); - void func_8021DFD0_ovl19(void) { f32 tmpY; // supposedly the function call changes this value u32 temp_a3; func_800AECC0(D_800D6B10); func_800AED20(D_800D6B10); - D_800DEF90[D_8004A7C4->objId] = func_8021E4B0_ovl19; - D_800E8920[D_8004A7C4->objId] = 1; - D_800E8AE0[D_8004A7C4->objId] = 0; - D_800EC120[D_8004A7C4->objId] = -1; - temp_a3 = D_800EC120[D_8004A7C4->objId]; - D_800EBF60[D_8004A7C4->objId] = temp_a3; - D_800EBDA0[D_8004A7C4->objId] = temp_a3; - D_800EBBE0[D_8004A7C4->objId] = temp_a3; - tmpY = gEntitiesNextPosYArray[D_8004A7C4->objId]; - func_800F88C8(D_800DE350[D_8004A7C4->objId], - D_800E5F90[D_8004A7C4->objId], - D_800E6BD0[D_8004A7C4->objId]); - gEntitiesNextPosYArray[D_8004A7C4->objId] = tmpY; - D_800E6A10[D_8004A7C4->objId] = 1.0f; - func_800F8E6C(D_800DE350[D_8004A7C4->objId]); - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E17D0[D_8004A7C4->objId]; - D_800E6D90[D_8004A7C4->objId] = D_8022F6D0; + D_800DEF90[omCurrentObj->objId] = func_8021E4B0_ovl19; + D_800E8920[omCurrentObj->objId] = 1; + D_800E8AE0[omCurrentObj->objId] = 0; + D_800EC120[omCurrentObj->objId] = -1; + temp_a3 = D_800EC120[omCurrentObj->objId]; + D_800EBF60[omCurrentObj->objId] = temp_a3; + D_800EBDA0[omCurrentObj->objId] = temp_a3; + D_800EBBE0[omCurrentObj->objId] = temp_a3; + tmpY = gEntitiesNextPosYArray[omCurrentObj->objId]; + func_800F88C8(D_800DE350[omCurrentObj->objId], + D_800E5F90[omCurrentObj->objId], + D_800E6BD0[omCurrentObj->objId]); + gEntitiesNextPosYArray[omCurrentObj->objId] = tmpY; + D_800E6A10[omCurrentObj->objId] = 1.0f; + func_800F8E6C(D_800DE350[omCurrentObj->objId]); + gEntitiesAngleYArray[omCurrentObj->objId] = D_800E17D0[omCurrentObj->objId]; + D_800E6D90[omCurrentObj->objId] = 666.66f; } -extern f32 D_8022F6D4; -void func_8021E7DC_ovl19(struct GObj *); - void func_8021E184_ovl19(void) { u32 temp_a0; func_800AECC0(D_800D6B10); func_800AED20(D_800D6B10); - D_800DEF90[D_8004A7C4->objId] = func_8021E7DC_ovl19; - D_800E8920[D_8004A7C4->objId] = 1; - D_800E8AE0[D_8004A7C4->objId] = 0; - D_800EC120[D_8004A7C4->objId] = -1; - temp_a0 = D_800EC120[D_8004A7C4->objId]; - D_800EBF60[D_8004A7C4->objId] = temp_a0; - D_800EBDA0[D_8004A7C4->objId] = temp_a0; - D_800EBBE0[D_8004A7C4->objId] = temp_a0; - D_800E6A10[D_8004A7C4->objId] = 1.0f; - D_800E17D0[D_8004A7C4->objId] = 0.0f; - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E17D0[D_8004A7C4->objId]; - D_800E6D90[D_8004A7C4->objId] = D_8022F6D4; + D_800DEF90[omCurrentObj->objId] = func_8021E7DC_ovl19; + D_800E8920[omCurrentObj->objId] = 1; + D_800E8AE0[omCurrentObj->objId] = 0; + D_800EC120[omCurrentObj->objId] = -1; + temp_a0 = D_800EC120[omCurrentObj->objId]; + D_800EBF60[omCurrentObj->objId] = temp_a0; + D_800EBDA0[omCurrentObj->objId] = temp_a0; + D_800EBBE0[omCurrentObj->objId] = temp_a0; + D_800E6A10[omCurrentObj->objId] = 1.0f; + D_800E17D0[omCurrentObj->objId] = 0.0f; + gEntitiesAngleYArray[omCurrentObj->objId] = D_800E17D0[omCurrentObj->objId]; + D_800E6D90[omCurrentObj->objId] = 666.66f; } -extern const char *D_8022F6A0; s32 func_8021E2D0_ovl19(u8 arg0, u8 arg1) { s32 idx; f32 temp_f0; @@ -78,33 +76,30 @@ s32 func_8021E2D0_ovl19(u8 arg0, u8 arg1) { idx = request_track_general(0x20, 0x1E, 0x3C); if ((idx >= 0x3C) || (idx == -1)) { if (idx != -1) { - func_800B1900(idx & 0xFFFF); + func_800B1900(idx); idx = -1; } - print_error_stub(&D_8022F6A0); + print_error_stub("reqHelpChildTrk Request Error!![helplib.cc]\n"); } else { D_800E7730[idx] = 7; D_800E77A0[idx] = arg0; D_800E7880[idx] = arg1; D_800E76C0[idx] = 0xFF; - temp_a1 = D_800E5F90[D_8004A7C4->objId]; + temp_a1 = D_800E5F90[omCurrentObj->objId]; D_800E6150[idx] = temp_a1; D_800E5F90[idx] = temp_a1; - temp_f0 = D_800E6BD0[D_8004A7C4->objId]; + temp_f0 = D_800E6BD0[omCurrentObj->objId]; D_800E6D90[idx] = temp_f0; D_800E6BD0[idx] = temp_f0; - gEntitiesNextPosXArray[idx] = gEntitiesNextPosXArray[D_8004A7C4->objId]; - gEntitiesPosXArray[idx] = gEntitiesPosXArray[D_8004A7C4->objId]; - gEntitiesNextPosYArray[idx] = gEntitiesNextPosYArray[D_8004A7C4->objId]; - gEntitiesPosYArray[idx] = gEntitiesPosYArray[D_8004A7C4->objId]; - gEntitiesNextPosZArray[idx] = gEntitiesNextPosZArray[D_8004A7C4->objId]; - gEntitiesPosZArray[idx] = gEntitiesPosZArray[D_8004A7C4->objId]; + gEntitiesNextPosXArray[idx] = gEntitiesNextPosXArray[omCurrentObj->objId]; + gEntitiesPosXArray[idx] = gEntitiesPosXArray[omCurrentObj->objId]; + gEntitiesNextPosYArray[idx] = gEntitiesNextPosYArray[omCurrentObj->objId]; + gEntitiesPosYArray[idx] = gEntitiesPosYArray[omCurrentObj->objId]; + gEntitiesNextPosZArray[idx] = gEntitiesNextPosZArray[omCurrentObj->objId]; + gEntitiesPosZArray[idx] = gEntitiesPosZArray[omCurrentObj->objId]; } return idx; } -s32 func_800B3158(void); - -extern u8 D_800D6C90[]; // how #ifdef NON_MATCHING @@ -112,24 +107,24 @@ void func_8021E4B0_ovl19(struct GObj *arg0) { f32 tmp; func_800B4864(); - if (D_800E6BD0[D_8004A7C4->objId] != D_800E6D90[D_8004A7C4->objId]) { + if (D_800E6BD0[omCurrentObj->objId] != D_800E6D90[omCurrentObj->objId]) { func_800B35F0(); - tmp = D_800E64D0[D_8004A7C4->objId]; - D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + tmp = D_800E64D0[omCurrentObj->objId]; + D_800E64D0[omCurrentObj->objId] += (D_800E5510[omCurrentObj->objId] + D_800E56D0[omCurrentObj->objId]); func_800F8E6C(arg0); - D_800E64D0[D_8004A7C4->objId] = tmp; + D_800E64D0[omCurrentObj->objId] = tmp; func_800B4640(); func_800B369C(); } if (func_800B3158() == 0) { - if (D_800E76C0[D_8004A7C4->objId] < 0x40) { - D_800D6C90[D_8004A7C4->objId] &= 0x80; + if (D_800E76C0[omCurrentObj->objId] < 0x40) { + D_800D6C68.unk28[omCurrentObj->objId] &= 0x80; } - func_800B1900((u16) D_8004A7C4->objId); + func_800B1900((u16) omCurrentObj->objId); } } #else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19/func_8021E4B0_ovl19.s") +GLOBAL_ASM("asm/nonmatchings/ovl19/helplib/func_8021E4B0_ovl19.s") #endif // regalloc @@ -138,170 +133,85 @@ void func_8021E5DC_ovl19(s32 arg0) { f32 tmp; func_800B4864(); - if (D_800E6BD0[D_8004A7C4->objId] != D_800E6D90[D_8004A7C4->objId]) { + if (D_800E6BD0[omCurrentObj->objId] != D_800E6D90[omCurrentObj->objId]) { func_800B35F0(); - tmp = D_800E64D0[D_8004A7C4->objId]; - D_800E64D0[D_8004A7C4->objId] += (D_800E5510[D_8004A7C4->objId] + D_800E56D0[D_8004A7C4->objId]); + tmp = D_800E64D0[omCurrentObj->objId]; + D_800E64D0[omCurrentObj->objId] += (D_800E5510[omCurrentObj->objId] + D_800E56D0[omCurrentObj->objId]); func_800F8E6C(arg0); - D_800E64D0[D_8004A7C4->objId] = tmp; + D_800E64D0[omCurrentObj->objId] = tmp; func_800B4640(); func_800B369C(); } if (func_800B3158() == 0) { - if (D_800EBBE0[D_8004A7C4->objId] != -1) { - func_800B1900((u16) D_800EBBE0[D_8004A7C4->objId]); + if (D_800EBBE0[omCurrentObj->objId] != -1) { + func_800B1900((u16) D_800EBBE0[omCurrentObj->objId]); } - if (D_800EBDA0[D_8004A7C4->objId] != -1) { - func_800B1900((u16) D_800EBDA0[D_8004A7C4->objId]); + if (D_800EBDA0[omCurrentObj->objId] != -1) { + func_800B1900((u16) D_800EBDA0[omCurrentObj->objId]); } - if (D_800EBF60[D_8004A7C4->objId] != -1) { - func_800B1900((u16) D_800EBF60[D_8004A7C4->objId]); + if (D_800EBF60[omCurrentObj->objId] != -1) { + func_800B1900((u16) D_800EBF60[omCurrentObj->objId]); } - if (D_800EC120[D_8004A7C4->objId] != -1 && D_800DE350[D_800EC120[D_8004A7C4->objId]] != 0) { - func_8019D958_ovl19((u16) D_800EC120[D_8004A7C4->objId]); + if (D_800EC120[omCurrentObj->objId] != -1 && D_800DE350[D_800EC120[omCurrentObj->objId]] != 0) { + func_8019D958_ovl7((u16) D_800EC120[omCurrentObj->objId]); } - if (D_800E76C0[D_8004A7C4->objId] < 0x40) { - D_800D6C90[D_8004A7C4->objId] &= 0x80; + if (D_800E76C0[omCurrentObj->objId] < 0x40) { + D_800D6C68.unk28[omCurrentObj->objId] &= 0x80; } - func_800B1900((u16) D_8004A7C4->objId); + func_800B1900((u16) omCurrentObj->objId); } } #else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19/func_8021E5DC_ovl19.s") +GLOBAL_ASM("asm/nonmatchings/ovl19/helplib/func_8021E5DC_ovl19.s") #endif +#ifdef NON_MATCHING void func_8021E7DC_ovl19(struct GObj *arg0) { func_800B4024(); - if (gEntitiesNextPosXArray[D_8004A7C4->objId] != gEntitiesPosXArray[D_8004A7C4->objId]) { + if (gEntitiesNextPosXArray[omCurrentObj->objId] != gEntitiesPosXArray[omCurrentObj->objId]) { func_800B35F0(); - D_800B4924_ovl19(arg0); + func_800B4924(arg0); } if (func_800B3158() == 0) { - if (D_800E76C0[D_8004A7C4->objId] < 0x40) { - D_800D6C90[D_800E76C0[D_8004A7C4->objId]] &= 0x80; + if (D_800E76C0[omCurrentObj->objId] < 0x40) { + D_800D6C68.unk28[D_800E76C0[omCurrentObj->objId]] &= 0x80; } - func_800B1900(D_8004A7C4->objId & 0xFFFF); + func_800B1900(omCurrentObj->objId); } } +#else +GLOBAL_ASM("asm/nonmatchings/ovl19/helplib/func_8021E7DC_ovl19.s") +#endif // regalloc #ifdef NON_MATCHING void func_8021E894_ovl19(struct GObj *arg0) { func_800B4024(); - if (gEntitiesNextPosXArray[D_8004A7C4->objId] != gEntitiesPosXArray[D_8004A7C4->objId]) { + if (gEntitiesNextPosXArray[omCurrentObj->objId] != gEntitiesPosXArray[omCurrentObj->objId]) { func_800B35F0(); - D_800B4924_ovl19(arg0); + func_800B4924(arg0); } if (func_800B3158() == 0) { - if (D_800EBBE0[D_8004A7C4->objId] != -1) { - func_800B1900(D_800EBBE0[D_8004A7C4->objId] & 0xFFFF); + if (D_800EBBE0[omCurrentObj->objId] != -1) { + func_800B1900(D_800EBBE0[omCurrentObj->objId]); } - if (D_800EBDA0[D_8004A7C4->objId] != -1) { - func_800B1900(D_800EBDA0[D_8004A7C4->objId] & 0xFFFF); + if (D_800EBDA0[omCurrentObj->objId] != -1) { + func_800B1900(D_800EBDA0[omCurrentObj->objId]); } - if (D_800EBF60[D_8004A7C4->objId] != -1) { - func_800B1900(D_800EBF60[D_8004A7C4->objId] & 0xFFFF); + if (D_800EBF60[omCurrentObj->objId] != -1) { + func_800B1900(D_800EBF60[omCurrentObj->objId]); } - if (D_800EC120[D_8004A7C4->objId] != -1) { - if (D_800DE350[D_800EC120[D_8004A7C4->objId]] != 0) { - func_8019D958_ovl19(D_800EC120[D_8004A7C4->objId] & 0xFFFF); + if (D_800EC120[omCurrentObj->objId] != -1) { + if (D_800DE350[D_800EC120[omCurrentObj->objId]] != 0) { + func_8019D958_ovl7(D_800EC120[omCurrentObj->objId]); } } - if (D_800E76C0[D_8004A7C4->objId] < 0x40) { - D_800D6C90[D_8004A7C4->objId] &= 0x80; + if (D_800E76C0[omCurrentObj->objId] < 0x40) { + D_800D6C68.unk28[omCurrentObj->objId] &= 0x80; } - func_800B1900(D_8004A7C4->objId & 0xFFFF); + func_800B1900(omCurrentObj->objId); } } #else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19/func_8021E894_ovl19.s") +GLOBAL_ASM("asm/nonmatchings/ovl19/helplib/func_8021E894_ovl19.s") #endif - -// hidden file boundary? - -void func_8021EA20_ovl19(void) { - func_800B63C0(); -} - -extern void (*D_8022F070[])(struct GObj *); - -void func_8021EA40_ovl19(struct GObj *arg0) { - D_800E10D0[D_8004A7C4->objId] = D_800E10D0[D_800E0D50[D_8004A7C4->objId]]; - D_800E1290[D_8004A7C4->objId] = D_800E1290[D_800E0D50[D_8004A7C4->objId]]; - D_800E1450[D_8004A7C4->objId] = D_800E1450[D_800E0D50[D_8004A7C4->objId]]; - D_800E6A10[D_8004A7C4->objId] = D_800E6A10[D_800E0D50[D_8004A7C4->objId]]; - D_800E6BD0[D_8004A7C4->objId] = D_800E6BD0[D_800E0D50[D_8004A7C4->objId]]; - call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 2, &D_8022F070[0]); -} - -extern f32 D_8022F70C; -void func_8021EC64_ovl19(struct GObj *arg0); -void func_800B5094(s32, s32, f32); - -void func_8021EB6C_ovl19(struct GObj *arg0) { - f32 temp_f0; - struct GObj *temp_v0; - struct GObj *temp_v0_2; - - temp_f0 = D_8022F70C; - D_800DEF90[D_8004A7C4->objId] = func_800B5094; - D_800DF150[D_8004A7C4->objId] = func_8021EC64_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; - func_800A9864(0x20062, 0x1869F, 0x10); - func_800AA154(0x20324); - temp_v0_2 = D_8004A7C4; - D_800E9FE0[D_800EBBE0[D_8004A7C4->objId]].as_s32 = 0; - func_800B1900((u16) D_8004A7C4->objId); -} - -void func_8021EC64_ovl19(struct GObj *arg0) { - if (D_800E8060[0] == -1) { - D_800E9FE0[D_800EBBE0[D_8004A7C4->objId]].as_s32 = 0; - func_800B1900((u16) D_8004A7C4->objId); - } -} - - -void func_8021ED80_ovl19(struct GObj *arg0); -extern f32 D_8022F710; - -void func_8021ECC4_ovl19(struct GObj *arg0) { - f32 temp_f0; - - temp_f0 = D_8022F710; - D_800DF150[D_8004A7C4->objId] = func_8021ED80_ovl19; - gEntitiesScaleXArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleYArray[D_8004A7C4->objId] = temp_f0; - gEntitiesScaleZArray[D_8004A7C4->objId] = temp_f0; - func_800A9864(0x20063, 0x1869F, 0x10); - func_800AA018(0x20327); - func_800AA018(0x20326); - func_800AFA14(); -} - -void func_8021ED80_ovl19(struct GObj *arg0) { - if (D_800E8920[D_800E0D50[D_8004A7C4->objId]] != 0) { - gEntitiesNextPosXArray[D_8004A7C4->objId] = gEntitiesNextPosXArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosYArray[D_8004A7C4->objId] = gEntitiesNextPosYArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesNextPosZArray[D_8004A7C4->objId] = gEntitiesNextPosZArray[D_800E0D50[D_8004A7C4->objId]]; - gEntitiesAngleYArray[D_8004A7C4->objId] = gEntitiesAngleYArray[D_800E0D50[D_8004A7C4->objId]]; - func_800AFBB4(1, D_8004A7C4); - } else { - func_800AFBB4(0, D_8004A7C4); - } -} - -extern const char D_8022F6E0[]; -s32 func_8021EE88_ovl19(s32 arg0) { - s32 temp_v0; - - temp_v0 = request_track_general(0x16, 0x3C, 0x4A); - if (temp_v0 != -1) { - gEntityVtableIndexArray[temp_v0] = arg0; - } else { - print_error_stub(&D_8022F6E0); - } - return temp_v0; -} diff --git a/src/ovl19/helplib.h b/src/ovl19/helplib.h new file mode 100644 index 000000000..57a2ea04c --- /dev/null +++ b/src/ovl19/helplib.h @@ -0,0 +1,7 @@ +#ifndef HELPLIB_H +#define HELPLIB_H + +extern s32 func_8021E2D0_ovl19(u8 arg0, u8 arg1); +extern s32 func_8021E2D0_ovl19(u8 arg0, u8 arg1); + +#endif // HELPLIB_H diff --git a/src/ovl19/ovl19_2.c b/src/ovl19/ovl19_2.c new file mode 100644 index 000000000..b9f5f93fc --- /dev/null +++ b/src/ovl19/ovl19_2.c @@ -0,0 +1,378 @@ +#include "common.h" +#include "ovl1/ovl1_6.h" +#include "GObj.h" +#include "Player.h" +#include "ovl19_2.h" +#include "unk_structs/D_8022FAB0.h" +#include "ovl1/ovl1_7.h" +#include "main/object_manager.h" +#include "ovl1/ovl1_8.h" +#include "buffers.h" + +void func_80227A38_ovl19(GObj*); + +// likely just an array of 38 +extern struct Ovl19_2Struct D_8022F170_ovl19[3], // 1-3 + D_8022F1B8_ovl19[2], // 4, 5 + D_8022F1E8_ovl19[1], // 6 + D_8022F200_ovl19[1], // 7 + D_8022F218_ovl19[2], // 8, 9 + D_8022F248_ovl19[1], // 10 + D_8022F260_ovl19[1], // 11 + D_8022F278_ovl19[2], // 12,13 + D_8022F2A8_ovl19[3], // 14-16 + D_8022F2F0_ovl19[2], // 17,18 + D_8022F320_ovl19[1], // 19 + D_8022F338_ovl19[1], // 20 + D_8022F350_ovl19[2], // 21,22 + D_8022F380_ovl19[1], // 23 + D_8022F398_ovl19[2], // 24, 25 + D_8022F3C8_ovl19[2], // 26,27 + D_8022F3F8_ovl19[3], // 28-30 + D_8022F440_ovl19[2], // 31,32 + D_8022F470_ovl19[1], // 33 + D_8022F488_ovl19[1], // 34 + D_8022F4A0_ovl19[2], // 35,36 + D_8022F4D0_ovl19[1], // 37 + D_8022F4E8_ovl19[1]; // 38 + +#ifdef NON_MATCHING_ +void func_80223200_ovl19(GObj *arg0) { + s32 var_a0; + struct Ovl19_2Struct *temp_v0; + + var_a0 = gKirbyState.unk44; + if (var_a0 == -1) { + D_800E9FE0[omCurrentObj->objId].as_u32 = 0; + D_800DDE10[omCurrentObj->objId] = 0; + assign_new_process_entry(gEntityGObjProcessArray3[omCurrentObj->objId], func_80227A38_ovl19); + func_8011CF58(); + D_800DDFD0[omCurrentObj->objId] = 0; + gKirbyState.unk15C = &D_8019257C; + gKirbyState.unk154 = 7; + D_800E0490[omCurrentObj->objId] = &D_80192FF4; + func_80152348_ovl3(0x41A00000); + func_800A9760(0x20064); + gKirbyState.unk154 = 1; + request_track_general(0x13, 1, 2); + D_800E98E0[1] = 0; + gEntityVtableIndexArray[1] = 1; + D_800E8220[1] = 0; + request_track_general(0x13, 2, 3); + gEntityVtableIndexArray[2] = 0; + D_800E8220[2] = 0; + gEntitiesNextPosYArray[omCurrentObj->objId] = 0.0f; + D_800E64D0[omCurrentObj->objId] = 0.0f; + D_800E6690[omCurrentObj->objId] = 0.0f; + var_a0 = 6; + D_800E6850[omCurrentObj->objId] = 0.0f; + D_800EC2E0[2].as_u32 = -1; + D_800EC2E0[1].as_u32 = -1; + gKirbyState.unk30 = 0; + gKirbyState.unk44 = 6; + D_800E98E0[omCurrentObj->objId] = 6; + D_800E8060[omCurrentObj->objId] = 0; + } + switch (var_a0) { + case 6: + if (gKirbyState.unk58 == 0) { + func_8011DC04(0x21D); + } + temp_v0 = &D_8022F260_ovl19[0]; + gKirbyState.unk3C = 0; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA018(temp_v0->unk0); + ohSleep(0x25); + D_80129138 = 0; + func_800FA414(2); + D_800E6690[omCurrentObj->objId] = 0.0425f; + D_800E6850[omCurrentObj->objId] = 8.0f; + func_800AF27C(); + gKirbyState.unk30 = 0; + gKirbyState.unk17 = 0; + gKirbyState.unk44 = 0; + default: + func_800AFA14(); + break; + case 0: + D_800E9AA0[omCurrentObj->objId] = -1; + while (1) { + s32 rand; + loop_9: + if (D_800E6850[omCurrentObj->objId] > 4.0f) { + s32 rand = random_soft_s32_range(2); + gKirbyState.unk3C = rand; + if (rand != D_800E9AA0[omCurrentObj->objId]) { + D_800E9AA0[omCurrentObj->objId] = rand; + break; + } else { + goto loop_9; + } + } else { + gKirbyState.unk3C = 0; + rand = 0; + } + temp_v0 = &D_8022F170_ovl19[rand]; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA154(temp_v0->unk0); + } + case 1: + D_800E8920[omCurrentObj->objId] = 0; + gKirbyState.jumpHeight = 0; + gKirbyState.isFullJump = 0; + play_sound(0xF7); + gKirbyState.unkCC = 8.0f; + D_800E3210[omCurrentObj->objId] = 15.0f; + D_800E3750[omCurrentObj->objId] = -0.980665f; + D_800E3C90[omCurrentObj->objId] = 15.0f; + temp_v0 = &D_8022F1B8_ovl19[0]; + gKirbyState.unk3C = 0; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA018(temp_v0->unk0); + while (gKirbyState.unkCC < D_800E3210[omCurrentObj->objId]) { + ohSleep(1); + } + temp_v0 = &D_8022F1B8_ovl19[1]; + gKirbyState.isFullJump += 1; + gKirbyState.unk3C = 1; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA154(temp_v0->unk0); + gKirbyState.unk44 = 2; + D_800E98E0[omCurrentObj->objId] = 2; + /* fallthrough */ + case 2: + D_800E3750[omCurrentObj->objId] = -0.980665f; + D_800E3C90[omCurrentObj->objId] = 18.0f; + temp_v0 = &D_8022F1E8_ovl19[0]; + if (!(gEntitiesAngleXArray[omCurrentObj->objId] > 0.0f) || !(gEntitiesAngleXArray[omCurrentObj->objId] >= 0.7853982f)) { + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA018(temp_v0->unk0); + } + /* Duplicate return node #30. Try simplifying control flow for better match */ + func_800AFA14(); + break; + case 3: + gKirbyState.unk30 = 0; + gKirbyState.unk3C = 0; + play_sound(0x145); + temp_v0 = &D_8022F200_ovl19[gKirbyState.unk3C]; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA154(temp_v0->unk0); + gKirbyState.unk30 += 1; + /* Duplicate return node #30. Try simplifying control flow for better match */ + func_800AFA14(); + break; + case 4: + gKirbyState.unk30 = 0; + D_800E83E0[omCurrentObj->objId] = 0; + D_800E8060[omCurrentObj->objId] = -1; + gEntitiesAngleXArray[omCurrentObj->objId] = 0.0f; + func_800BB468(2, 0); + play_sound(0x144); + gKirbyState.unk3C = 1; + D_800E8920[omCurrentObj->objId] = 0; + D_800E3210[omCurrentObj->objId] = 18.0f; + D_800E3750[omCurrentObj->objId] = -0.980665f; + D_800E3C90[omCurrentObj->objId] = 18.0f; + temp_v0 = &D_8022F218_ovl19[gKirbyState.unk3C]; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA154(temp_v0->unk0); + D_800E8060[omCurrentObj->objId] = 0; + gKirbyState.unk30 += 1; + /* Duplicate return node #30. Try simplifying control flow for better match */ + func_800AFA14(); + break; + case 5: + func_80020C88(); + func_800A7EB4(); + if (D_800E9FE0[omCurrentObj->objId].as_u32 != 0) { + func_800B1900(D_800E9FE0[omCurrentObj->objId].as_u32); + } + func_80227C88_ovl19(); + play_sound(0x144); + D_800E8920[omCurrentObj->objId] = 0; + D_800E6690[omCurrentObj->objId] = -0.225f; + D_800E6850[omCurrentObj->objId] = 0.0f; + D_800E3210[omCurrentObj->objId] = 15.0f; + D_800E3750[omCurrentObj->objId] = -0.980665f; + D_800E3C90[omCurrentObj->objId] = 15.0f; + play_music(0, 5); + func_80176398_ovl3(); + func_80224858_ovl19(); + D_800D6B54[1] = 0xA0; + D_800D6B54 = 1; + D_800BE4F8 = 6; + temp_v0 = &D_8022F248_ovl19[0]; + gKirbyState.unk3C = 0; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA018(temp_v0->unk0); + while (D_800E8920[omCurrentObj->objId] == 0) { + ohSleep(1); + } + D_800E6690[omCurrentObj->objId] = 0.0f; + D_800E64D0[omCurrentObj->objId] = D_800E6690[omCurrentObj->objId]; + D_800E6850[omCurrentObj->objId] = 65535.0f; + D_800E3750[omCurrentObj->objId] = 0.0f; + D_800E3210[omCurrentObj->objId] = D_800E3750[omCurrentObj->objId]; + D_800E3C90[omCurrentObj->objId] = 65535.0f; + /* Duplicate return node #30. Try simplifying control flow for better match */ + func_800AFA14(); + break; + case 7: + gKirbyState.unk30 = 0; + gKirbyState.unk3C = 0; + D_800E6690[omCurrentObj->objId] = 0.25f; + D_800E6850[omCurrentObj->objId] = 18.0f; + temp_v0 = &D_8022F278_ovl19[gKirbyState.unk3C]; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA018(temp_v0->unk0); + while (gKirbyState.rightCollisionNext == 0) { + ohSleep(1); + } + func_800BB468(2, 0); + D_800E64D0[omCurrentObj->objId] = 16.0f; + D_800E6690[omCurrentObj->objId] = 0.0f; + D_800E6850[omCurrentObj->objId] = 16.0f; + D_800E3210[omCurrentObj->objId] = 12.0f; + D_800E3750[omCurrentObj->objId] = -0.980665f; + D_800E3C90[omCurrentObj->objId] = 18.0f; + D_800E8920[omCurrentObj->objId] = 0; + func_800AECC0(1.5f); + func_800AED20(1.5f); + func_800AED80(1.5f, 1); + func_800AEDD0(1.5f, 1); + func_800AED80(1.5f, 2); + func_800AEDD0(1.5f, 2); + gKirbyState.unk3C = 1; + D_800E98E0[omCurrentObj->objId] = 1; + play_sound(0x144); + temp_v0 = &D_8022F278_ovl19[gKirbyState.unk3C]; + D_800EC2E0[1].as_u32 = temp_v0->unk8; + D_800EC4A0[1] = temp_v0->unkC; + D_800EC2E0[2].as_u32 = temp_v0->unk10; + D_800EC4A0[2] = temp_v0->unk14; + func_800AA018(temp_v0->unk0); + ohSleep(0x2D); + gKirbyState.unk30 += 1; + /* Duplicate return node #30. Try simplifying control flow for better match */ + func_800AFA14(); + break; + } +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80223200_ovl19.s") +#endif + + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80223E68_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80224564_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_802245A0_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_8022470C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80224858_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_802248C0_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80225620_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80225DF8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80225E38_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80225FB4_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_802260FC_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80226AA8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80226FFC_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_8022703C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_802271A8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_802273A0_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_8022759C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227690_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_8022785C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227938_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227A38_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227AA8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227B20_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227C88_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227D4C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227F38_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80227F90_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_802283A8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_8022846C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_802284EC_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_8022858C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80228874_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_8022889C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_2/func_80228C44_ovl19.s") + +void func_80228EF4_ovl19(GObj *arg0) { + func_800B1F68(gEntityGObjProcessArray5[omCurrentObj->objId], &func_800B1434); + D_800DEF90[omCurrentObj->objId] = func_800B4954; + D_800E5F90[omCurrentObj->objId] = D_800E5F90[D_800E0D50[omCurrentObj->objId]]; + D_800E6BD0[omCurrentObj->objId] = D_800E6BD0[D_800E0D50[omCurrentObj->objId]]; + D_800E64D0[omCurrentObj->objId] = 12.0f; + D_800E6850[omCurrentObj->objId] = 12.0f; + D_800E3210[omCurrentObj->objId] = -3.0f; + D_800E3750[omCurrentObj->objId] = 0.0f; + D_800E3C90[omCurrentObj->objId] = 3.0f; + ohSleep(0x1E); + D_800E64D0[omCurrentObj->objId] = D_800E6690[omCurrentObj->objId] = 0; + D_800E6850[omCurrentObj->objId] = 65535.0f; + D_800E3210[omCurrentObj->objId] = D_800E3750[omCurrentObj->objId] = 0; + D_800E3C90[omCurrentObj->objId] = 65535.0f; + func_800AFA14(); +} diff --git a/src/ovl19/ovl19_2.h b/src/ovl19/ovl19_2.h index 7bda12092..26131c414 100644 --- a/src/ovl19/ovl19_2.h +++ b/src/ovl19/ovl19_2.h @@ -1,22 +1,14 @@ -#ifndef _OVL19_2_H_ -#define _OVL19_2_H_ - - -struct UnkStruct8022FAB0 { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; - f32 unk10; - f32 unk14; - f32 unk18; - f32 unk1C; - u8 unk20; - u8 unk21; - u8 unk22; - u8 unk23; +#ifndef OVL19_2_H +#define OVL19_2_H + +// seems to be a group of bank 2 file pointers (either images or animations) +struct Ovl19_2Struct { + u32 unk0; // loaded? by func_800AA154 + u32 unk4; + u32 unk8; // Assigned to D_800EC2E0[1] + u32 unkC; // assigned to D_800EC4A0[1] + u32 unk10; // assigned to D_800EC2E0[2] + u32 unk14; // assigned to D_800EC4A0[2] }; -extern struct UnkStruct8022FAB0 *D_8022FAB0; - -#endif \ No newline at end of file +#endif // OVL19_2_H \ No newline at end of file diff --git a/src/ovl19/ovl19_3.c b/src/ovl19/ovl19_3.c index f435ba2d6..10861d2eb 100644 --- a/src/ovl19/ovl19_3.c +++ b/src/ovl19/ovl19_3.c @@ -1,251 +1,99 @@ -#include -#include - -#include "D_8004A7C4.h" -#include "types.h" -#include "stages.h" -#include "buffers.h" -#include "ovl1/ovl1_6.h" -extern struct Player gKirbyState; - -extern f32 gKirbyHp; -s32 change_kirby_hp(f32); - -// Joint was the best name here since it involves -// 2 players in an item that "joins" them (i.e. a vehicle) -// and this controls what animations play for every entity involved -struct JointAnim { - u32 jointAnim1; - u32 jointAnim2; - u32 player1Anim1; - u32 player1Anim2; - u32 player2Anim1; - u32 player2Anim2; -}; -extern struct JointAnim D_8022F170[]; -extern struct JointAnim D_8022F560[]; - -void func_80223200_ovl19(struct GObj *); -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80223200_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80223E68_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80224564_ovl19.s") - -void func_802245A0_ovl19(s32 arg0) { - if (D_800E83E0[D_8004A7C4->objId] != 0) { - if (gKirbyState.unk68 == 3) { - gKirbyHp += 1.0f; - } - if (change_kirby_hp(-1.0f) == 0) { - D_800E83E0[D_8004A7C4->objId] = 1; - } else { - D_800E64D0[D_8004A7C4->objId] = 7.5f; - } - switch (D_800E83E0[D_8004A7C4->objId]) { - case 1: - gKirbyState.unk44 = 5; - break; - case 3: default: - gKirbyState.unk44 = 4; - break; - } - - assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], &func_80223200_ovl19); - D_800E98E0[D_8004A7C4->objId] = gKirbyState.unk44; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022470C_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80224858_ovl19.s") - -void func_802248C0_ovl19(s32 arg0); -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802248C0_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80225620_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80225DF8_ovl19.s") - -void func_80225E38_ovl19(s32 arg0) { - if ((D_800E83E0[D_8004A7C4->objId] != 0) && (gKirbyState.unk44 != 7)) { - if (gKirbyState.unk68 == 3) { - gKirbyHp++; - } - if (change_kirby_hp(-1.0f) == 0) { - D_800E83E0[D_8004A7C4->objId] = 1; - } else { - D_800E64D0[D_8004A7C4->objId] = 7.5f; - } - switch (D_800E83E0[D_8004A7C4->objId]) { - case 1: - gKirbyState.unk44 = 5; - break; - case 3: default: - gKirbyState.unk44 = 4; - break; - } - assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], func_802248C0_ovl19); - D_800E98E0[D_8004A7C4->objId] = gKirbyState.unk44; - } -} - -extern s32 D_8012E804, D_8012E80C, D_8012E810; -#ifdef NEEDS_RODATA -void func_80225FB4_ovl19(void) { - f32 tmp = 12.0f; - - if (D_800E8920[D_8004A7C4->objId] != 0) { - D_800E6690[D_8004A7C4->objId] = 0.45f; - D_800E6850[D_8004A7C4->objId] = ABSF(tmp); - if (gKirbyState.unk4C == 0) { - gKirbyState.unk48 = 0; - D_8012E80C = func_800A8234(2, 1, 0x61); - D_8012E810 = func_800A8234(2, 1, 0x61); - } - } else { - if (D_8012E80C != 0) { - func_8011E0E8(); - } - if (D_8012E804 != 1) { - D_800E6690[D_8004A7C4->objId] = 0.025f; - D_800E6850[D_8004A7C4->objId] = 0.0f; - } - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80225FB4_ovl19.s") -#endif - -void func_802260FC_ovl19(struct GObj *); -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802260FC_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80226AA8_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80226FFC_ovl19.s") - -void func_8022703C_ovl19(s32 arg0) { - if (D_800E83E0[D_8004A7C4->objId] != 0) { - if (gKirbyState.unk68 == 3) { - gKirbyHp++; - } - if (change_kirby_hp(-1.0f) == 0) { - D_800E83E0[D_8004A7C4->objId] = 1; - } else { - D_800E64D0[D_8004A7C4->objId] = 7.5f; - } - switch (D_800E83E0[D_8004A7C4->objId]) { - case 1: - gKirbyState.unk44 = 5; - break; - case 3: default: - gKirbyState.unk44 = 4; - break; - } - assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], func_802260FC_ovl19); - D_800E98E0[D_8004A7C4->objId] = gKirbyState.unk44; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802271A8_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802273A0_ovl19.s") - -extern s32 D_8022FAD0; // bss -extern s32 D_8022FAF0; // bss -extern s32 D_800D6B54; // ovl1 bss - -void func_8022759C_ovl19(struct GObj *gobj) { - Vector vec; - - D_800E17D0[D_8004A7C4->objId] = D_800E17D0[0]; - if (*D_800E7B20 != 0.0f) { - if (D_800D6B54 == 0) { - if (D_8012E804 != 4) { - vec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - vec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - vec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - func_80155C68_ovl19(&D_8022FAD0, &vec); - } else { - func_80154648_ovl19(0, &D_8022FAF0, &D_8022FAD0); - } - } - } -} - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227690_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022785C_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227938_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227A38_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227AA8_ovl19.s") - -extern s32 D_800D6B54; - -u32 func_80227B20_ovl19(void) { - Vector v0, v1; - - if (D_800D6B54 != 0 || D_800E7B20[D_8004A7C4->objId] == 0.0f) { - return 1; - } - v0.x = gEntitiesPosXArray[D_8004A7C4->objId]; - v0.y = gEntitiesPosYArray[D_8004A7C4->objId]; - v0.z = gEntitiesPosZArray[D_8004A7C4->objId]; - v1.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - v1.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - v1.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - if (func_8010474C(&v0, &v1) != 0) { - func_8011D40C(); - return 1; - } - if ((gKirbyState.unk140 != 0) && (D_800E7B20[D_8004A7C4->objId] != 0.0f) && (gKirbyState.unk44 != 4)) { - return 1; - } - return 0; -} - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227C88_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227D4C_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227F38_ovl19.s") - -#include "ovl19_2.h" -extern s8 D_8012E7D7; -void func_800B4954(void); -void func_802283A8_ovl19(struct GObj *); -void func_800A9864(f32, u32, s32, s32); -void func_800AECC0(f32); -void func_800AED20(f32); - -#define MATHMA(x) (x * 0x18) -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80227F90_ovl19.s") - -void func_802283A8_ovl19(struct GObj *this) { - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E17D0[D_8004A7C4->objId]; - if ((D_800E98E0[D_8004A7C4->objId] == 0) && (gEntitiesNextPosYArray[0] <= 35.0f)) { - gKirbyState.abilityState = 0x4D; - set_kirby_action_2((u8) gKirbyState.abilityState, 0x1C); - D_800E98E0[D_8004A7C4->objId] = 1; - } - func_800FF200(D_8022FAB0); -} - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022846C_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_802284EC_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022858C_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80228874_ovl19.s") - -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_8022889C_ovl19.s") +#include "common.h" -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80228C44_ovl19.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_80229100_ovl19.s") -extern void func_800B1434(s32); -extern void func_800B4954(void); -GLOBAL_ASM("asm/non_matchings/ovl19/ovl19_3/func_80228EF4_ovl19.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022947C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_802294C4_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_80229794_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_80229A54_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_80229C20_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_80229C9C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_80229E20_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_80229F08_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022A018_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022A228_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022A410_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022A810_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022A8FC_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022A9E8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022AC78_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022ACF0_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022AD34_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022AE24_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022AEA0_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022B2A4_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022B4C4_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022B8BC_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022BB04_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022BC9C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022BD44_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022C140_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022C1A4_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022C3BC_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022C90C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022CA10_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022CD00_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022CE18_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D13C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D19C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D3A0_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D448_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D528_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D57C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D584_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D5E8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D5F0_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D5F8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D96C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022D9F8_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022E198_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022E224_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022E47C_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_3/func_8022E58C_ovl19.s") diff --git a/src/ovl19/ovl19_4.c b/src/ovl19/ovl19_4.c new file mode 100644 index 000000000..ea415f005 --- /dev/null +++ b/src/ovl19/ovl19_4.c @@ -0,0 +1,13 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_4/func_8022E630_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_4/func_8022E798_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_4/func_8022E954_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_4/func_8022EB54_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_4/func_8022ED10_ovl19.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl19/ovl19_4/func_8022EE78_ovl19.s") diff --git a/src/ovl2/ovl2.c b/src/ovl2/ovl2.c index 68b728d81..f61e6fc5e 100644 --- a/src/ovl2/ovl2.c +++ b/src/ovl2/ovl2.c @@ -1,49 +1,16 @@ -#include -#include +#include "common.h" -GLOBAL_ASM("asm/non_matchings/ovl2/func_800F61A0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2/func_800F61A0.s") void func_800F629C(void) { - } -GLOBAL_ASM("asm/non_matchings/ovl2/func_800F62A4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2/func_800F64B0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2/func_800F62A4.s") -GLOBAL_ASM("asm/non_matchings/ovl2/func_800F6830.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2/func_800F64B0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2/func_800F6830.s") -extern u32 D_80123E90; -void func_800F6AB0(Gfx **pkt) { - gSPDisplayList((*pkt)++, &D_80123E90); -} - -extern s16 gFrameBuffer[0x3F00], D_803D3F00[]; -extern u32 D_800BE500, D_800BE504, D_800BE508, D_800BE534; -extern u32 D_800D6FA8; -extern u32 D_8012D920; -extern u32 D_800D6FAC; -extern u32 D_800D7B80; -extern u32 D_800D7B7C; -extern u32 D_800D7B78; -extern u32 D_800D6B70; -extern u32 D_8012EB00; -extern u32 _ovl19SegNoloadEnd; -extern u8 D_80123F68[]; -struct Unk80123EC0{ - u32 unk0; - u32 unk4; - u32 unk8; - u32 unkC; -}; -extern struct Unk80123EC0 D_80123EC0; -extern u32 D_803FC100; -extern u32 D_80123EDC; -extern u32 D_8012D200; -extern u32 D_80123EEC; -extern void func_800A41B0(f32 a, u32 *b);//, u32 *c); -extern void func_80007BA4_ovl2(struct Unk80123EC0 *a); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2/func_800F6AB0.s") -// TOOD: fix loop -GLOBAL_ASM("asm/non_matchings/ovl2/func_800F6AD4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2/func_800F6AD4.s") diff --git a/src/ovl2/ovl2_10.c b/src/ovl2/ovl2_10.c new file mode 100644 index 000000000..665718071 --- /dev/null +++ b/src/ovl2/ovl2_10.c @@ -0,0 +1,781 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80111F10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801121E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801123AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011253C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112600.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801126A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112768.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801127D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801128A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801129AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801129C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801129DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801129F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112A0C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112B4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112CD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112ED4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80112F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80113028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80113300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801133C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80113F08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80114974.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801149C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80114A14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80114CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80114CF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80114D54.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80114DBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80114E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115070.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011511C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801151BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115330.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801153B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011544C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801154F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011572C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115888.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011591C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115A7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115AAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115ACC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115B64.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115C4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115D38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115EAC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115EDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115EFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80115F04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801161D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116218.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011623C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116260.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801162F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011646C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801164A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801164D4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116508.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116B68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116B90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116CC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116CE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116D00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116D20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116D40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116D60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116D80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116DE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116E40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80116FF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117078.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117098.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801170B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801170D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801170F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117118.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117138.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117158.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801171F0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117210.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801173F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117570.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011764C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801176B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801176D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801176F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117718.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117738.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117758.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117784.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801177B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801177DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117808.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117834.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117904.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117AB4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117D70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117DD8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117E10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117E38.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117E88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117EB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117ED8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80117F28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801180B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118130.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801181AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011829C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801182C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801182F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118360.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118380.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801183A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801183C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801183E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118400.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118420.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801184B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118578.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118598.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801185B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801185D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801185F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118760.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801187A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011884C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011890C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118A60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118BC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118CA8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118CC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118D84.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118E44.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118F70.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118F9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118FC8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80118FE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119008.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119028.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119048.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119068.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119090.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801190B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801190DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119108.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119128.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119148.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119168.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119188.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119290.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801192B0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801192B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801192C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801192E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119300.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119320.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801193CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801193EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011940C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011942C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011944C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011946C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011948C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801194AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801194CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801194EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011950C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011952C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011954C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011956C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011958C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801195AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801195CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801195EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011960C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011962C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011964C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011966C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011968C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801196AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801196CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801196EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011970C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011972C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011974C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011976C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011978C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011982C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011984C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011986C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011988C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801198AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801198CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801198EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011990C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011992C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_801199E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119A00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119A20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119A40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119A60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119A80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119AA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119AC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119AE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119B00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119B20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119B60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119B80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119BA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119BC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119BE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119C00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119C20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119C40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119C6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119C98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119CC4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119CF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119D1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119D48.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119D74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119DA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119DC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119DE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119E00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119E20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119E40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119E60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119E80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119EA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119EC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119EE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119F00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119F20.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119F40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119F60.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119F80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119FA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119FC0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_80119FE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A000.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A020.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A040.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A060.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A178.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A198.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A214.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A254.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A274.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A294.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A2F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A3B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A3D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A3F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A418.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A458.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A478.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A498.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A4C0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A4E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A510.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A538.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A560.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A588.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A770.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A7A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A86C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A88C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A8AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A8CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A8EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A90C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A92C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A94C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A96C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A98C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A9AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A9CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011A9EC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AA7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AB7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AB9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ABBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ABDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ABFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AC1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AC3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AC7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AC9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ACBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ACDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ACFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AD1C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AD3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AD5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AD7C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AD9C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ADBC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ADDC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011ADFC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AE6C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AEF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AF50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AFB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AFD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011AFF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B010.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B030.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B050.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B0A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B188.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B22C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B328.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B348.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B3B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B3F4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B464.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B528.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B554.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B580.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B5AC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B5D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B5F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B618.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B638.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B678.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B698.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B6B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B6D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B794.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B7CC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B878.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B944.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B964.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B984.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B9A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B9C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_10/func_8011B9E4.s") diff --git a/src/ovl2/ovl2_11.c b/src/ovl2/ovl2_11.c new file mode 100644 index 000000000..acb12c75f --- /dev/null +++ b/src/ovl2/ovl2_11.c @@ -0,0 +1,207 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011BA10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011BABC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011BB98.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011BD08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011BD30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011BED0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011BF4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/vec3_cross_product.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C344.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C4E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C720.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C838.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C87C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C8D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011C8F8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011CCB8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011CF58.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011CFE0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011CFF4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011D0FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011D40C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011D4A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011D614.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011D67C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011D858.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011D9E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DA34.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DAF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DC04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DC30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DC5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DCD0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DD18.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011DD5C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E0E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E190.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E1E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E234.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E244.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E270.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E2A0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E31C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E340.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E368.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E374.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E4E4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E504.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E524.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E548.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011E978.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011EBD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011ED68.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011F690.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8011FEF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80120A28.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80120AF8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80120BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80120CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80120E74.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801210B4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801210FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121194.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/kirby_in_inactionable_state.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121284.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801212A4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801215DC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121658.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801217B8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121828.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801219C8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121A04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121BCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121C90.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121D3C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121F14.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80121F50.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8012209C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122460.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122558.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801226FC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801229D0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122A10.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122A80.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122B40.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122C30.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122CA0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122CE8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122F08.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/set_kirby_action_1.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/set_kirby_action_2.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80122FB0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80123004.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8012307C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801230E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_8012310C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80123144.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80123170.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801231D8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80123240.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_801232A8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_11/func_80123354.s") diff --git a/src/ovl2/ovl2_2.c b/src/ovl2/ovl2_2.c index f675ce325..2176da7ce 100644 --- a/src/ovl2/ovl2_2.c +++ b/src/ovl2/ovl2_2.c @@ -1,123 +1,53 @@ -#include -#include +#include "common.h" -#include "ovl1/ovl1_6.h" -#include "D_8004A7C4.h" -#include "buffers.h" +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6C40.s") -extern Gfx *gDisplayListHeads[4]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6C68.s") -extern u32 D_800BE4F8; -extern u32 D_800BE4FC; -extern u32 D_800BE534; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6C78.s") -void func_800F6C40(s32 arg0, UNUSED s32 arg1) { - D_800BE4F8 = 2; - D_800BE4FC = 1; - D_800BE534 = arg0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6C88.s") -void func_800F6C68(void) { - D_800BE4F8 = 3; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6C98.s") -void func_800F6C78(void) { - D_800BE4F8 = 4; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6E04.s") -void func_800F6C88(void) { - D_800BE4F8 = 7; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6E0C.s") -extern f32 D_800D6B14; -void func_800B1434(void); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F6E30.s") -void func_800F6C98(s32 arg0) { - D_800DEF90[D_8004A7C4->objId] = NULL; - func_800B1F68(gEntityGObjProcessArray5[D_8004A7C4->objId], func_800B1434); - finish_current_thread((u32) (120.0f * D_800D6B14)); - if (D_800E98E0[D_8004A7C4->objId] == 3) { - func_800F6C68(); - } - if (D_800E98E0[D_8004A7C4->objId] == 4) { - func_800F6C78(); - } - func_800B1900(D_8004A7C4->objId & 0xFFFF); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F716C.s") -void func_800F6E04(UNUSED s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F7258.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F72B0.s") -void func_8011C2A0(void *arg0); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F7404.s") -void func_800F6E0C(void *arg0, UNUSED void *arg1, UNUSED void *arg2) { - func_8011C2A0(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F7484.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F6E30.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F753C.s") -extern s32 D_800BE500, D_800BE504; -extern void (*D_800D4F10[])(struct GObj *); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F7578.s") -void func_800F716C(struct GObj *arg0) { - if ((D_800BE500 == 1) && (D_800BE504 == 2)) { - gSPFogPosition(gDisplayListHeads[0]++, 102, 1003); - gSPFogPosition(gDisplayListHeads[1]++, 102, 1003); - } else { - gSPFogPosition(gDisplayListHeads[0]++, 920, 1000); - gSPFogPosition(gDisplayListHeads[1]++, 920, 1000); - } - D_800D4F10[gSegment4StartArray[arg0->objId][2]](arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F7844.s") -extern u32 D_800D7010; -extern u32 D_800D7028; -extern u32 D_800D7040; -extern u32 D_80124000; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F78E4.s") -void func_800F7258(s32 arg0) { - func_800A5404(&D_800D7010, &D_80124000); - func_800A5404(&D_800D7028, &D_80124000); - func_800A5404(&D_800D7040, &D_80124000); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8078.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F72B0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F81A4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7404.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8274.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7484.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8378.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F753C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8464.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7578.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8560.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F7844.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8570.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F78E4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8728.s") -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8078.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F81A4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8274.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8378.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8464.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8560.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8570.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_2/func_800F8728.s") - -f32 sinf(f32); -f32 atanf(f32); -#include "types.h" -f32 func_800F8824(Vector *arg0, f32 arg1) { - if (arg0 != NULL) { - return atanf(-((arg0->x * sinf(arg1)) + (cosf(arg1) * arg0->z)) / arg0->y); - } - return 0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_2/func_800F8824.s") diff --git a/src/ovl2/ovl2_3.c b/src/ovl2/ovl2_3.c index c512a11de..0185a0ad1 100644 --- a/src/ovl2/ovl2_3.c +++ b/src/ovl2/ovl2_3.c @@ -1,431 +1,123 @@ -#include -#include -#include "types.h" -#include "ovl0/ovl0_5.h" +#include "common.h" -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F88A0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F88A0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F88C8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F88C8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/vec3_abs_angle_diff.s") -// gets the angle difference between two vectors, and -// negates the result if the cross product has a negative Y component -f32 vec3_abs_angle_diff(Vector *arg0, Vector *arg1) { - Vector sp1C; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F8A24.s") - vec3_normalized_cross_product(arg0, arg1, &sp1C); - if (0.0f < sp1C.y) { - return lbvector_Angle(arg1, arg0); - } - return -lbvector_Angle(arg1, arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F8B1C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8A24.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F8C70.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8B1C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F8E6C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8C70.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9020.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F8E6C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F90C0.s") -#include "ovl2_6.h" -extern s32 D_80129118; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F93EC.s") -#include "unk_structs/D_80129114.h" +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9438.s") -extern void func_8001E300(f32 a, s32 b, f32 c, s32 d); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F951C.s") -u32 func_800F9020(struct Normal *arg0, s32 arg1, f32 arg2) { - if (arg1 >= D_80129118 || arg1 < 0 || arg2 < 0.0f || arg2 > 1.0f) { - arg0->z = 0.0f; - arg0->y = 0.0f; - arg0->x = 0.0f; - return 1; - } else { - func_8001E300(arg2, D_80129114->unk4[arg1].unk4, arg2, arg1); - return 0; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9828.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F90C0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9888.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F93EC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F98EC.s") -extern f32 D_801287B8, D_801287BC; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9974.s") -extern f32 D_8012912C, *D_80129130, D_801287C0; -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F951C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9C54.s") -extern u32 D_800E5F90[]; -extern f32 D_800E6BD0[]; -extern f32 func_800F951C(s32, f32, s32, f32); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9C94.s") -f32 func_800F9828(s32 arg0, s32 arg1) { - return func_800F951C(D_800E5F90[arg0], D_800E6BD0[arg0], D_800E5F90[arg1], D_800E6BD0[arg1]); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9F10.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9888.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9F80.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F98EC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800F9FDC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9974.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA1D4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA2D4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9C54.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA414.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9C94.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA438.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9F10.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA5C0.s") -f32 func_800F9F80(Vector *arg0, Vector *arg1, Vector *arg2) { - Vector sp2C; - Vector sp20; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA608.s") - lbvector_Diff(&sp2C, arg2, arg1); - lbvector_Diff(&sp20, arg0, arg1); - return (vec3_dot_product(&sp2C, &sp20) / vec3_mag_square(&sp2C)); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA7EC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800F9FDC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FA92C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA1D4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FAC74.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA2D4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FB164.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA414.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FB814.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA438.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FB914.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA5C0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FB9B4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA608.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FBA78.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA7EC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FBA98.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FA92C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FBBB8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FAC74.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FBDE8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB164.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FBE1C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB814.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FBF18.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB914.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FC03C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FB9B4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FC164.s") -void func_800FBA78(void) { - func_801DC98C_ovl2(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FC3D8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBA98.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FC500.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBBB8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FC53C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBDE8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FC62C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBE1C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FC804.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FBF18.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/spawn_entity.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC03C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCA84.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC164.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCD14.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC3D8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCDC0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC500.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCE50.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC53C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCED8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC62C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCF04.s") -GLOBAL_ASM("asm/non_matchings/ovl2_3/func_800FC804.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCF0C.s") -s32 func_800FCD14(u32 arg0, u8 node, f32 yScale, u8 bankID, u8 entID, - u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, - Vec3f *pos, Vec3f *angle, Vec3f *scale); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCF58.s") -s32 func_800FCDC0(u32 arg0, u8 bankID, u8 entID, - u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, - Vec3f *pos, Vec3f *angle, Vec3f *scale); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCFA4.s") -u32 spawn_entity(u32 arg0, struct Entity *arg1) { - if (!(arg1->respawnFlag & 1)) { - return func_800FCD14(arg0, arg1->nodeNum, arg1->scale[1], arg1->bankID, - arg1->entityID, arg1->action, arg1->respawnFlag, - arg1->unk5, arg1->saveToEeprom, - &arg1->pos, &arg1->angle, &arg1->scale); - } - else { - return func_800FCDC0(arg0, arg1->bankID, arg1->entityID, arg1->action, - arg1->respawnFlag, arg1->unk5, arg1->saveToEeprom, - &arg1->pos, &arg1->angle, &arg1->scale); - } -} - -extern s32 D_800D6E10; -extern s8 D_800E7650[]; -extern s8 D_800E76C0[]; -extern u8 D_800E7730[]; -extern u16 D_800E77A0[]; -extern s8 D_800E7880[]; -extern s8 D_800E78F0[]; -extern s32 D_800E8AE0[]; -extern f32 gEntitiesNextPosXArray[]; -extern f32 gEntitiesNextPosYArray[]; -extern f32 gEntitiesNextPosZArray[]; -extern f32 gEntitiesAngleXArray[]; -extern f32 gEntitiesAngleYArray[]; -extern f32 gEntitiesAngleZArray[]; -extern s32 D_800E91E0[]; -extern f32 gEntitiesScaleZArray[]; -extern f32 gEntitiesScaleYArray[]; -extern f32 gEntitiesScaleXArray[]; - -s32 func_800FCA84(s32 arg0, u8 bankID, u8 entID, - u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, - Vec3f *pos, Vec3f *angle, Vec3f *scale) { - s32 temp_v0; - s8 temp_a0; - - u8 bank = bankID; - switch (bank) { - case 0: - if (entID >= 0x6b) { - return -1; - } - temp_a0 = 0x17; - break; - case 1: - if (entID >= 3) { - return -1; - } - temp_a0 = 0x18; - break; - case 2: - if (entID >= 7) { - return -1; - } - temp_a0 = 0x19; - break; - case 3: - if (entID >= 0xe) { - return -1; - } - temp_a0 = 0x1c; - break; - case 5: - return -1; - case 7: - if (entID >= 0xb) { - return -1; - } - temp_a0 = 0x20; - break; - case 8: - temp_a0 = 0x21; - break; - default: - print_error_stub("setUpDispose failed. DisType =%02d\n", bank); - return -1; - } - - temp_v0 = request_track_general(temp_a0, 0x1E, 0x3C); - if (temp_v0 == -1) { - return -1; - } - - if (++D_800D6E10 >= 0x100) { - D_800D6E10 = 1; - } - - D_800E7650[temp_v0] = D_800D6E10; - D_800E76C0[temp_v0] = arg0; - D_800E7730[temp_v0] = bankID; - D_800E77A0[temp_v0] = entID; - D_800E7880[temp_v0] = action; - D_800E78F0[temp_v0] = unk5; - - D_800E8AE0[temp_v0] = (respawnFlag & 2) ? 2 : 0; - - gEntitiesNextPosXArray[temp_v0] = (*pos)[0]; - gEntitiesNextPosYArray[temp_v0] = (*pos)[1]; - gEntitiesNextPosZArray[temp_v0] = (*pos)[2]; - gEntitiesAngleXArray[temp_v0] = (*angle)[0]; - gEntitiesAngleYArray[temp_v0] = (*angle)[1]; - gEntitiesAngleZArray[temp_v0] = (*angle)[2]; - D_800E91E0[temp_v0] = saveToEeprom; - gEntitiesScaleXArray[temp_v0] = gEntitiesScaleYArray[temp_v0] = gEntitiesScaleZArray[temp_v0] = *scale[0]; -} - -extern u32 D_800E8E60[]; - -s32 func_800FCD14(u32 arg0, u8 node, f32 yScale, u8 bankID, u8 entID, - u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, - Vec3f *pos, Vec3f *angle, Vec3f *scale) { - s32 temp_v0; - - temp_v0 = func_800FCA84(arg0, bankID, entID, action, respawnFlag, unk5, saveToEeprom, pos, angle, scale); - if (temp_v0 == -1) { - return -1; - } - - D_800E5F90[temp_v0] = node; - D_800E6BD0[temp_v0] = yScale; - D_800E8E60[temp_v0] = 0; - return temp_v0; -} - -s32 func_800FCDC0(u32 arg0, u8 bankID, u8 entID, - u8 action, u8 respawnFlag, u8 unk5, s16 saveToEeprom, - Vec3f *pos, Vec3f *angle, Vec3f *scale) { - s32 temp_v0; - - temp_v0 = func_800FCA84(arg0, bankID, entID, action, respawnFlag, unk5, saveToEeprom, pos, angle, scale); - if (temp_v0 == -1) { - return -1; - } - D_800E8E60[temp_v0] = 1; - return temp_v0; -} - -#include "D_8004A7C4.h" - -typedef struct { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u8 filler6[0x26]; -} Struct_801290E0; - -extern Struct_801290E0 *D_801290E0[]; -extern s8 D_800E76C0[]; -extern u32 D_801290E8; - -void *func_800FCE50(void) { - u8 index = D_800E76C0[D_8004A7C4->objId]; - Struct_801290E0 *str; - - if (index != 0xFF) { - str = *D_801290E0; - if ((str[index].unk5 & 0xC) == 4) { - return str + (index + 1); - } - else { - return NULL; - } - } - return D_801290E0 + 2; -} - -void func_800FCED8(UNUSED s32 arg0) { - func_800B1900((u16)D_8004A7C4->objId); -} - -void func_800FCF04(UNUSED s32 arg0) { - -} - -extern u32 D_801242D0; - -void func_800FCF0C(UNUSED s32 arg0) { - func_80199568_ovl2(); - call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0x6B, &D_801242D0); -} - -extern u32 D_8012447C; - -void func_800FCF58(UNUSED s32 arg0) { - func_80199568_ovl2(); - call_virtual_function(D_800E77A0[D_8004A7C4->objId], 3, &D_8012447C); -} - -extern u32 D_80124488; - -void func_800FCFA4(UNUSED s32 arg0) { - func_80199568_ovl2(); - call_virtual_function(D_800E77A0[D_8004A7C4->objId], 7, &D_80124488); -} - -extern u32 D_801244A4; - -void func_800FCFF0(UNUSED s32 arg0) { - func_80199568_ovl2(); - call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0xE, &D_801244A4); -} - -extern u32 D_801244DC; - -void func_800FD03C(UNUSED s32 arg0) { - func_80199568_ovl2(); - call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0x2C, &D_801244DC); -} - -extern u32 D_80129124; -extern u8 D_800D6C90[]; - -void func_800FD088(void) { - s32 temp_s1; - s32 temp_v0; - Struct_801290E0 *phi_s0; - u32 phi_s2; - - phi_s0 = *D_801290E0; - for (phi_s2 = 0; phi_s2 < D_80129124; phi_s2++) { - if (5 == phi_s0->unk1) { - temp_s1 = (phi_s0->unk3 << 8) + phi_s0->unk2; - temp_v0 = func_80114DBC(temp_s1, (u8*)phi_s0 + 8); - D_800D6C90[phi_s2] = 1; - if (temp_v0 != 0) { - D_800E7730[temp_v0] = phi_s0->unk1; - D_800E77A0[temp_v0] = temp_s1; - D_800E7880[temp_v0] = phi_s0->unk3; - } - } - phi_s0++; - } -} - -extern f32 D_800E3910[]; -extern f32 D_800E3750[]; -extern f32 D_800E3590[]; -extern f32 D_800E33D0[]; -extern f32 D_800E3210[]; -extern f32 D_800E3050[]; -extern f32 D_800E3E50[]; -extern f32 D_800E3C90[]; -extern f32 D_800E3AD0[]; -extern f32 D_800E6690[]; -extern f32 D_800E64D0[]; -extern f32 D_800E6850[]; -extern u32 D_800E0490[]; -extern u32 D_801D02AC[][8]; -extern u32 D_8012458C; -extern void func_800E3910(void); - -void func_800FD194(s32 arg0) { - f32 temp1, temp2; - - D_800E3910[D_8004A7C4->objId] = 0.0f; - temp1 = D_800E3910[D_8004A7C4->objId]; - D_800E3750[D_8004A7C4->objId] = temp1; - D_800E3590[D_8004A7C4->objId] = temp1; - D_800E33D0[D_8004A7C4->objId] = temp1; - D_800E3210[D_8004A7C4->objId] = temp1; - D_800E3050[D_8004A7C4->objId] = temp1; - D_800E3E50[D_8004A7C4->objId] = 65535.0f; - temp2 = D_800E3E50[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = temp2; - D_800E3AD0[D_8004A7C4->objId] = temp2; - D_800E6690[D_8004A7C4->objId] = 0.0f; - - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = 65535.0f; - D_800E0490[D_8004A7C4->objId] = 0; - D_801D02AC[D_8004A7C4->objId][0] = 0; - call_virtual_function(D_800E77A0[D_8004A7C4->objId], 0xB, &D_8012458C, D_800E3910); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FCFF0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FD03C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FD088.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_3/func_800FD194.s") diff --git a/src/ovl2/ovl2_4.c b/src/ovl2/ovl2_4.c index 31d5c6591..6e4229bca 100644 --- a/src/ovl2/ovl2_4.c +++ b/src/ovl2/ovl2_4.c @@ -1,169 +1,21 @@ -#include -#include +#include "common.h" -#include "D_8004A7C4.h" -#include "ovl1/ovl1_6.h" +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/func_800FD330.s") -extern void *D_801245C0; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/func_800FD418.s") -extern u32 D_801245C4[][3]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/func_800FD570.s") -void func_800FD330(s32 arg0) { - if (D_800DD710[D_800E0D50[D_8004A7C4->objId]] != -1) { - D_800E10D0[D_8004A7C4->objId] = D_800E10D0[D_800E0D50[D_8004A7C4->objId]]; - D_800E1290[D_8004A7C4->objId] = D_800E1290[D_800E0D50[D_8004A7C4->objId]]; - D_800E1450[D_8004A7C4->objId] = D_800E1450[D_800E0D50[D_8004A7C4->objId]]; - } - call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 1, &D_801245C0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/func_800FD754.s") -extern u32 D_80124624; -extern s32 D_800B4D40; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/func_800FD874.s") -// has an easy way to bring the diff down to one instruction, -// but the operands to that instructions are in the wrong order -#ifdef NON_MATCHING -void func_800FD418(struct GObj *arg0) { - s32 temp_v0 = D_800EC2E0[D_8004A7C4->objId].as_s32; - u32 tmp; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/func_800FD968.s") - // temp_v0 = D_800EC2E0[D_8004A7C4->objId]; - if (!(temp_v0 < 0xA) || D_801245C4[temp_v0][0] == 0) { - func_800B1900(D_8004A7C4->objId & 0xFFFF); - } - if (D_801245C4[temp_v0] == D_801245C4[8]) { - D_800DEF90[D_8004A7C4->objId] = &D_800B4D40; - } - func_800A9864(tmp = D_801245C4[temp_v0][0], 0x0001869F, 0x10); - func_800AA018(D_801245C4[temp_v0][1]); - func_800AA018(D_801245C4[temp_v0][2]); - arg0->unk3C->posVec.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - arg0->unk3C->posVec.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - arg0->unk3C->posVec.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - func_800AF27C(); - func_800B1900((u16) D_8004A7C4->objId); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_4/func_800FD418.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/func_800FD9D4.s") -void func_800A7F74(s32, s32, s32, f32, f32, f32); -s32 func_800FD9D4(s32); -extern u32 D_80124630; -extern const char D_801288E0[]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/D_80128890.s") -// no idea tbh -#ifdef NON_MATCHING -u32 func_800FD570(s32 arg0, u32 arg1, f32 arg2, f32 arg3, f32 arg4) { - Vector sp28; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/jtbl_801288B4.s") - if (arg0 != 0) { - func_800A4794(&sp28, arg0, arg0); - } else { - sp28.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - sp28.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - sp28.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - } - if (D_801245C4[arg1][0] != 0) { - u32 temp_v0_3 = func_800FD9D4(0); - if (temp_v0_3 == -1) { - print_error_stub(D_801288E0); - return 0; - } - D_800EC2E0[temp_v0_3].as_u32 = arg1; - gEntitiesNextPosXArray[temp_v0_3] = sp28.x + arg2; - gEntitiesNextPosYArray[temp_v0_3] = sp28.y + arg3; - gEntitiesNextPosZArray[temp_v0_3] = sp28.z + arg4; - } else if (D_801245C4[arg1] != D_801245C4[9]) { - func_800A7F74(3, 2, D_801245C4[arg1][1], sp28.x + arg2, sp28.y + arg3, sp28.z + arg4); - } else { - func_800A7F74(0, 2, D_801245C4[arg1][1], sp28.x + arg2, sp28.y + arg3, sp28.z + arg4); - } - return 1; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_4/func_800FD570.s") -#endif - - -extern const char D_8012890C[]; - -// uhh idk but it matches better than the function above it -#ifdef NON_MATCHING -s32 func_800FD754(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { - u32 *temp_v0; - - temp_v0 = D_801245C4[arg0 * 3]; - if (temp_v0[0] != 0) { - s32 temp_v0_2 = func_800FD9D4(0); - if (temp_v0_2 == -1) { - print_error_stub(&D_8012890C); - } - else { - D_800EC2E0[temp_v0_2].as_s32 = arg0; - gEntitiesNextPosXArray[temp_v0_2] = arg1; - gEntitiesNextPosYArray[temp_v0_2] = arg2; - gEntitiesNextPosZArray[temp_v0_2] = arg3; - return 1; - } - return 0; - } - if (temp_v0 != D_801245C4[9]) { - func_800A7F74(3, 2, temp_v0[1], arg1, arg2, arg3); - return; - } - func_800A7F74(0, 2, temp_v0[1], arg1, arg2, arg3); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_4/func_800FD754.s") -#endif - - -extern const char *D_8012893C; -u32 func_800FD874(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { - s32 temp_v0; - u32 temp_a1; - - if (D_801245C4[arg0][0] != 0) { - temp_v0 = func_800FD9D4(0); - if (temp_v0 == -1) { - print_error_stub(&D_8012893C); - } else { - D_800EC2E0[temp_v0].as_s32 = arg0; - gEntitiesNextPosXArray[temp_v0] = arg1; - gEntitiesNextPosYArray[temp_v0] = arg2; - gEntitiesNextPosZArray[temp_v0] = arg3; - gEntitiesAngleXArray[temp_v0] = arg4; - gEntitiesAngleYArray[temp_v0] = arg5; - gEntitiesAngleZArray[temp_v0] = arg6; - return 1; - } - } - return 0; -} - -s32 func_800FD968(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { - s32 temp_v0; - - temp_v0 = func_800FD9D4(arg0); - if (temp_v0 != -1) { - gEntitiesNextPosXArray[temp_v0] = arg1; - gEntitiesNextPosYArray[temp_v0] = arg2; - gEntitiesNextPosZArray[temp_v0] = arg3; - } - return temp_v0; -} - -extern const char D_8012896C[]; -s32 func_800FD9D4(s32 arg0) { - s32 temp_v0; - - temp_v0 = request_track_general(0x22, 0x3C, 0x4A); - if (temp_v0 == -1) { - print_error_stub(&D_8012896C); - } else { - gEntityVtableIndexArray[temp_v0] = arg0; - } - - return temp_v0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_4/D_801288D8.s") diff --git a/src/ovl2/ovl2_5.c b/src/ovl2/ovl2_5.c index 1c426fc47..ebb6a8cb4 100644 --- a/src/ovl2/ovl2_5.c +++ b/src/ovl2/ovl2_5.c @@ -1,257 +1,51 @@ -#include -#include -#include +#include "common.h" -#include "unk_structs/D_800E1B50.h" +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDA40.s") -extern Gfx *gDisplayListHeads[4]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDAB8.s") -void func_800FDA40(Vtx *curVtx, f32 arg1, f32 arg2) { - Vtx* vtxList = curVtx; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDBB0.s") - (curVtx++)->v.ob[1] = arg2; - (curVtx++)->v.ob[1] = arg2; - (curVtx++)->v.ob[1] = arg1; - (curVtx++)->v.ob[1] = arg1; - gSPVertex(gDisplayListHeads[0]++, vtxList, 4, 0); - gSP2Triangles(gDisplayListHeads[0]++, 2, 3, 1, 0x0, 0, 2, 1, 0x0); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDCB0.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDE64.s") -void func_800FDAB8(Vtx *curVtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { - f32 vtx_3_4_tmp_z; - Vtx *vtxList = curVtx += 4; - f32 vtx_1_2_tmp_v; - f32 arg4_tmp; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDE6C.s") - vtx_3_4_tmp_z = ((-40.0f) * arg3) + 20.0f; - arg4_tmp = arg4; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDF88.s") - (curVtx )->v.ob[1] = arg2; - (curVtx )->v.ob[2] = ((-40.0f) * arg4_tmp) + 20.0f; - vtx_1_2_tmp_v = 4032.0f * arg4; - (curVtx++)->v.tc[1] = vtx_1_2_tmp_v; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FDFF4.s") - (curVtx )->v.ob[1] = arg2; - (curVtx )->v.ob[2] = ((-40.0f) * arg4) + 20.0f; - (curVtx++)->v.tc[1] = vtx_1_2_tmp_v; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FE0AC.s") - (curVtx )->v.ob[1] = arg1; - (curVtx )->v.ob[2] = vtx_3_4_tmp_z; - (curVtx++)->v.tc[1] = 4032.0f * arg3; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FE154.s") - (curVtx )->v.ob[1] = arg1; - (curVtx )->v.ob[2] = vtx_3_4_tmp_z; - (curVtx++)->v.tc[1] = 4032.0f * arg3; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FEE6C.s") - gSPVertex(gDisplayListHeads[0]++, vtxList, 4, 0); - gSP2Triangles(gDisplayListHeads[0]++, 2, 3, 1, 0x0, 0, 2, 1, 0x0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FEF44.s") -#ifdef NON_MATCHING -void *func_800FDBB0 (Vtx *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { - Vtx *list = arg0 += 4; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF0A8.s") - (list++)->v.ob[1] = arg2; - (list++)->v.ob[1] = arg2; - (list++)->v.ob[1] = arg1; - (list++)->v.ob[1] = arg1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF0C4.s") - (list )->v.ob[1] = arg3; - (list )->v.ob[2] = (-40.0f * arg4) + 20.0f; - (list++)->v.tc[1] = 4032.0f * arg4; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF0E0.s") - (list )->v.ob[1] = arg3; - (list )->v.ob[2] = (-40.0f * arg4) + 20.0f; - (list++)->v.tc[1] = 4032.0f * arg4; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF0FC.s") - gSPVertex(gDisplayListHeads[0]++, arg0, 6, 0); - gSP2Triangles(gDisplayListHeads[0]++, 2, 3, 5, 0, 4, 2, 5, 0); - gSP2Triangles(gDisplayListHeads[0]++, 4, 5, 1, 0, 0, 4, 1, 0); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDBB0.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF12C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDCB0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF144.s") -void func_800FDE64(UNUSED s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF1CC.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF200.s") -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDE6C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/func_800FF2C8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FDF88.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/D_801288E0.s") -struct UNK_D_8012B9AC { - u8 filler[0x30]; - u32 unk30; -}; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/D_8012890C.s") -extern struct UNK_D_8012B9AC *D_8012B9AC; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/D_8012893C.s") -void func_800FDFF4(s32 arg0) { - Gfx *temp_v1; - Gfx *temp_v1_2; - void *temp_v1_3; - void *temp_v1_4; - - if (arg0 != D_8012B9AC->unk30) { - if (arg0 != 0) { - gDPPipeSync(gDisplayListHeads[0]++); - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_CLD_SURF, G_RM_CLD_SURF2); - } else { - gDPPipeSync(gDisplayListHeads[0]++); - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_ZB_OVL_SURF, G_RM_ZB_OVL_SURF2); - } - D_8012B9AC->unk30 = arg0; - } -} - -void func_800FE0AC(f32 arg0, f32 arg1) { - f32 max_val = 80.0f; - f32 phi_f0 = arg1 - arg0; - - if (max_val <= phi_f0) { - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, 0, 0, 0, 0xFF); - return; - } - if (phi_f0 < 0.0f) { - phi_f0 = 0.0f; - } - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, 0, 0, 0, (s32)((phi_f0 / max_val) * 255)); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FE154.s") - -extern u32 D_80104A08; -extern u32 D_80104958; - -struct UNK_FUNC_800FEE6C { - u8 filler[0x08]; - struct UNK_FUNC_800FEE6C* unk8; - u32 unkC; - u32 unk10; - u32 unk14; - u8 filler2[0x84 - 0x04 - 0x14]; - struct UNK_FUNC_800FEE6C_2 *unk84; -}; - -struct UNK_FUNC_800FEE6C_2 { - u8 filler[0x20]; - u8 unk20; -}; - - -void func_800FEE6C(struct UNK_FUNC_800FEE6C *arg0) { - s32 sp34; - void *phi_a2; - struct UNK_FUNC_800FEE6C *phi_s0; - u8 phi_v0; - - sp34 = 0; - phi_v0 = arg0->unk84->unk20; - if ((phi_v0 & 3) == 0) { - if ((phi_v0 & 8) != 0) { - phi_a2 = &D_80104A08; - } else { - phi_a2 = &D_80104958; - } - func_800FE154(arg0, &sp34, phi_a2); - } - if (sp34 != 0) { - if ((arg0->unk14 == 1) || (arg0->unk8 != 0)) { - gSPPopMatrix(gDisplayListHeads[0]++, G_MTX_MODELVIEW); - } - } - if (arg0->unkC == 0) { - phi_s0 = arg0->unk8; - while (phi_s0 != 0) { - func_800FEE6C(phi_s0); - phi_s0 = phi_s0->unk8; - } - } -} - -extern Gfx D_801246C0[]; -extern Gfx D_80124708[]; -extern u8 *D_8012B99C; - -struct UNK_FUNC_800FEF44 { - u8 filler[0x3C]; - struct UNK_FUNC_800FEE6C *unk3C; -}; - -void func_800FEF44(struct UNK_FUNC_800FEF44 *arg0) { - struct UNK_D_8012B9AC sp3C; - - if (arg0->unk3C != 0) { - D_8012B9AC = &sp3C; - sp3C.unk30 = 0; - gSPDisplayList(gDisplayListHeads[0]++, D_801246C0); - gDPSetTextureImage(gDisplayListHeads[0]++, G_IM_FMT_I, G_IM_SIZ_16b, 1, D_8012B99C); - gDPSetTile(gDisplayListHeads[0]++, G_IM_FMT_I, G_IM_SIZ_16b, 0, 0, 7, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0); - gDPLoadSync(gDisplayListHeads[0]++); - gDPLoadBlock(gDisplayListHeads[0]++, G_TX_LOADTILE, 0x000, 0x000, 0x1FF, 0x200) - gDPPipeSync(gDisplayListHeads[0]++); - gDPSetTile(gDisplayListHeads[0]++, G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0, G_TX_MIRROR|G_TX_WRAP, 5, 0); - gDPSetTileSize(gDisplayListHeads[0]++, 0, 0 << 2, 0 << 2, (32 - 1) << 2, (32 - 1) << 2); - func_800FEE6C(arg0->unk3C); - gSPDisplayList(gDisplayListHeads[0]++, D_80124708); - } -} - -void func_800FF0A8(struct Sub800E1B50 *arg0) { - if (arg0 != 0) { - arg0->unk20 = arg0->unk20 | 2; - } -} - -void func_800FF0C4(struct Sub800E1B50 *arg0) { - if (arg0 != 0) { - arg0->unk20 = arg0->unk20 & ~2; - } -} - -void func_800FF0E0(struct Sub800E1B50 *arg0) { - if (arg0 != 0) { - arg0->unk20 = arg0->unk20 | 8; - } -} - -// Obviously not the correct type -extern void **D_8012B990; - -void **func_800FF0FC(void) { - void **temp_v1; - - temp_v1 = D_8012B990; - if (temp_v1 == 0) { - return NULL; - } - D_8012B990 = *temp_v1; - return temp_v1; -} - -void func_800FF12C(void **arg0) { - *arg0 = D_8012B990; - D_8012B990 = arg0; -} - -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FF144.s") - -struct UNK_FUNC_80FF1CC { - u8 filler[0x24]; - void *unk24; -}; - -void func_800FF1CC(struct UNK_FUNC_80FF1CC *arg0) { - if (arg0 != 0) { - func_80009DF4_ovl2(arg0->unk24, arg0); - func_800FF12C(arg0); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FF200.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_5/func_800FF2C8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_5/D_8012896C.s") diff --git a/src/ovl2/ovl2_6.c b/src/ovl2/ovl2_6.c index 9029305ee..951d5acec 100644 --- a/src/ovl2/ovl2_6.c +++ b/src/ovl2/ovl2_6.c @@ -1,208 +1,25 @@ -#include "types.h" -#include -#include -#include -u32 func_80101920(Vector *a0, struct Normal *a1, Vector *a2, struct Normal *a3); -u32 func_80101BA0(Vector *a0, struct Normal *a1, Vector *a2, struct Normal *a3); +#include "common.h" -struct UNK_D_8012BBF8 { - struct UNK_D_8012BBF8_unk0 *unk0; - float unk4; - u16 unk8; - u16 unkA; - u32 unkC; -}; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_800FF5E0.s") -struct UNK_D_8012B9B8 { - /*0x00*/ u32 unk0; - /*0x04*/ u32 unk4; - /*0x08*/ u16 unk8; - /*0x0A*/ u16 unkA; - /*0x0C*/ u32 unkC; - /*0x10*/ float unk10; - /*0x14*/ float unk14; - /*0x18*/ u32 unk18; - /*0x1C*/ u32 unk1C; - /*0x20*/ u32 unk20; - /*0x24*/ u32 unk24; - /*0x28*/ u32 unk28; - /*0x2C*/ u32 unk2C; -}; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_800FF64C.s") -struct UNK_D_8012BBF8_unk0 { - /*0x00*/ float unk0; - /*0x04*/ u32 unk4; - /*0x08*/ float unk8; - /*0x0C*/ float unkC; - /*0x10*/ float unk10; - /*0x14*/ u8 unk14; - /*0x15*/ u8 unk15; - /*0x16*/ u8 unk16; - /*0x17*/ u8 unk17; - /*0x18*/ u8 unk18; - /*0x19*/ u8 unk19; - /*0x1A*/ u8 unk1A; - /*0x1B*/ u8 unk1B; - /*0x1C*/ float unk1C; - /*0x20*/ float unk20; - /*0x24*/ float unk24; - /*0x28*/ float unk28; - /*0x2C*/ float unk2C; -}; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_800FF71C.s") -extern struct UNK_D_8012BBF8 D_8012BBF8[10]; -extern struct UNK_D_8012B9B8 D_8012B9B8[]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_800FF9B4.s") -void func_800FF5E0(s32 arg0, f32 arg1, f32 arg2) { - struct UNK_D_8012B9B8 *temp_a1; - struct UNK_D_8012BBF8 *temp_v0; - struct UNK_D_8012BBF8_unk0 *temp_v1; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_80100790.s") - temp_v0 = &D_8012BBF8[arg0]; - temp_v1 = temp_v0->unk0; - temp_v0->unk4 = temp_v0->unk4 + arg2; - temp_a1 = &D_8012B9B8[arg0]; - temp_v1->unk20 = temp_v1->unk20 + arg1; - temp_v1->unk24 = temp_v1->unk24 + arg2; - temp_v1->unk28 = temp_a1->unk10; - temp_v1->unk2C = temp_a1->unk14; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_80100AC8.s") -extern u32 D_8012B9B0; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_80100DF8.s") -struct UNK_D_800D478C { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u8 unk6; - u8 unk7; - u32 unk8; -}; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_80100E50.s") -extern struct UNK_D_800D478C D_800D478C[]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_80100E7C.s") -// Almost matching -GLOBAL_ASM("asm/non_matchings/ovl2_6/func_800FF64C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_80100EE4.s") -#include "PR/gbi.h" -#include "ovl1/ovl1_5.h" -extern Gfx *gDisplayListHeads[4]; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_8010133C.s") - -#define G_CC_UNK1 PRIMITIVE, 0, TEXEL0, 0, 0, 0, 0, TEXEL0 -#define G_CC_UNK2 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0 - -#define TRANSPARENT_SURFACE (1 << 1) - -// S2D code :o -void func_800FF71C(struct UnkStruct800AC954 *arg0, u8 arg1, u8 arg2) { - gDPPipeSync(gDisplayListHeads[0]++); - gDPSetCycleType(gDisplayListHeads[0]++, G_CYC_1CYCLE) - if (arg0->renderFlags & TRANSPARENT_SURFACE) { - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gSPObjRenderMode(gDisplayListHeads[0]++, (G_OBJRM_BILERP | G_OBJRM_XLU)); - } else { - gDPSetRenderMode(gDisplayListHeads[0]++, G_RM_OPA_SURF, G_RM_OPA_SURF2); - gSPObjRenderMode(gDisplayListHeads[0]++, G_OBJRM_BILERP); - } - if (arg2 & (1 | 2)) { - if (arg2 & 1) { - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, - arg0->primColorRed, - arg0->primColorGreen, - arg0->primColorBlue, - arg0->primColorAlpha); - gDPSetEnvColor(gDisplayListHeads[0]++, - arg0->envColorRed, - arg0->envColorGreen, - arg0->envColorBlue, - arg0->envColorAlpha); - gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_BLENDPEDECALA, G_CC_BLENDPEDECALA); - return; - } else { - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, - arg0->primColorRed, - arg0->primColorGreen, - arg0->primColorBlue, - arg0->primColorAlpha); - gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_UNK1, G_CC_UNK1); - return; - } - } - if (arg1 == 4) { - gDPSetPrimColor(gDisplayListHeads[0]++, 0, 0, - arg0->primColorRed, - arg0->primColorGreen, - arg0->primColorBlue, - arg0->primColorAlpha); - gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_UNK2, G_CC_UNK2); - return; - } - gDPSetCombineMode(gDisplayListHeads[0]++, G_CC_DECALRGBA, G_CC_DECALRGBA); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_6/func_800FF9B4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80100790.s") - -void *func_80100AC8(void *arg0); -GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80100AC8.s") - -extern u32 D_80124740[]; - -u32 func_80100DF8(s32 arg0) { - u32 phi_v0; - u32 i; - - phi_v0 = D_80124740[arg0]; - for (i = 0; i < D_8012B9B0; i++) { - if (phi_v0 == D_8012B9B8[i].unk4) { - return 1; - } - } - return 0; -} - -void func_80100E50(u32 arg0) { - func_8000A180(arg0, &func_80100AC8, 0, 0); -} - -extern f32 D_80128A2C, D_80128A30; -u32 func_80100E7C(f32 arg0) { - if (0.0f <= arg0) { - if (arg0 <= D_80128A2C) { - return 0; - } - return 1; - } - if (D_80128A30 <= arg0) { - return 3; - } - return 2; -} - -f32 func_80100EE4(s32 arg0); -GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80100EE4.s") - -void func_8010133C(void) { - u32 i; - - for (i = 0; i < 10; i++) { - D_8012BBF8[i].unk0 = NULL; - } -} - -void func_8010137C(void) { - s32 i; - - func_8010133C(); - for (i = 0; i < 4; i++) { - if (func_80100DF8(i) != 0) { - func_80100E50(i); - } - } - func_80008A18(func_8000A180(0, 0, 0x1A, 0x80000000), &func_80100EE4, 1, 0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_6/func_8010137C.s") diff --git a/src/ovl2/ovl2_7.c b/src/ovl2/ovl2_7.c index eafcb779b..165324469 100644 --- a/src/ovl2/ovl2_7.c +++ b/src/ovl2/ovl2_7.c @@ -1,1449 +1,279 @@ -#include -#include -#include "D_8004A7C4.h" -#include "ovl1/ovl1_6.h" -#include "buffers.h" -#include "unk_structs/D_800DE350.h" +#include "common.h" -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80111F10.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101400.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112000.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101920.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801121E0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101BA0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801123AC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101D50.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112498.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101DA8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011253C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101E14.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112600.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101E5C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801126A4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80101F4C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112768.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010203C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801127D8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010217C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112828.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801021BC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801128A4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801021FC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129AC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010221C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129C4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80102324.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129DC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80102364.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801129F4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801023FC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112A0C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801024E8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112A40.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80102570.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112B4C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103004.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112CD4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801033A8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112ED4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103528.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80112F70.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103930.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80113028.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801039E8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80113300.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103AA0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801133C8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103B58.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80113F08.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103CC8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114974.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103D80.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801149C0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103DE4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114A14.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103EA0.s") -void func_80114CCC(void) { - func_80114974(); - func_800FD088(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80103F58.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114CF4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104010.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114D54.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801040CC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114DBC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104184.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80114E80.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010423C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115070.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801042F4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011511C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801043B0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801151BC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104468.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115270.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104520.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115330.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801045DC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801153B8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801046A0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011544C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010474C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801154F0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801047F0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115578.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801048A4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115618.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104958.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011572C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104A08.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115888.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104AB4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011591C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104B70.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115A7C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104C24.s") -void func_80115AAC(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104D2C.s") -void func_80115ACC(struct GObj *arg0); -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115ACC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80104FB8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115B64.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801050E0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115C4C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80105180.s") -void func_80115EAC(struct GObj *this); -extern f32 D_80128CF0; -#ifdef NON_MATCHING -void func_80115D38(struct GObj *this) { - // f32 temp_f0; - s32 idx = request_track_general(0x1E, 0x1E, 0x3C); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801051AC.s") - // idx = request_track_general(0x1E, 0x1E, 0x3C); - D_8004A7C4 = D_800DE350[idx]; - func_80008DA8(gEntityGObjProcessArray[idx]); - func_800AF980(0x17); - func_800A9864(0x20060, 0x1869F, 0x10); - // temp_f0 = D_80128CF0; - gEntitiesNextPosXArray[idx] = gEntitiesNextPosXArray[this->objId]; - gEntitiesNextPosYArray[idx] = gEntitiesNextPosYArray[this->objId] + 220.0f; - gEntitiesNextPosZArray[idx] = gEntitiesNextPosZArray[this->objId]; - gEntitiesScaleZArray[idx] = D_80128CF0; - gEntitiesScaleYArray[idx] = D_80128CF0; - gEntitiesScaleXArray[idx] = D_80128CF0; - func_800AA018(0x202E5); - func_800AA018(0x202E6); - D_800DEF90[D_8004A7C4->objId] = &func_80115ACC; - D_800E98E0[this->objId] = idx; - D_8004A7C4 = this; - func_801153B8(this); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115D38.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801051DC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115EAC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80105218.s") -void func_80115EDC(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80105238.s") -void func_80115EFC(s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80105284.s") -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80115F04.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116118.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801161D4.s") - -void func_80116218(s32 arg0) { - func_80008DA8(0); -} - -void func_8011623C(s32 arg0) { - func_80008DA8(0); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116260.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801162F4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116438.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011646C.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801164A0.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801164D4.s") - - -#include "ovl1/ovl1_6.h" - -extern const f32 D_80128D1C, D_80128D20, D_80128D24,D_80128D28; -s32 random_soft_s32_range(s32); -// loop doesnt pad enough bytes -#ifdef NON_MATCHING -void func_80116508(struct GObj *arg0) { - f32 temp_f0_2; - f32 temp_f0_3; - f32 temp_f0_4; - f32 temp_f2; - f32 temp_f2_2; - f32 temp_f2_3; - f32 temp_f30; - - u32 tmp = arg0->objId; - - D_800EA6E0[tmp] = gEntitiesNextPosYArray[tmp]; - D_800E98E0[tmp] = 0; - temp_f30 = D_80128D1C; - for (;;) { - D_800E3210[D_8004A7C4->objId] = (random_soft_s32_range(2) != 0) ? 0.25f : -0.25f; - while (TRUE) { - if (D_800E98E0[tmp] == 0) { - f32 temp_f0 = gEntitiesNextPosYArray[tmp] - D_800EA6E0[tmp]; - if (temp_f0 >= 15.0f) { - D_800E3210[D_8004A7C4->objId] = -0.25f; - } else if (temp_f0 <= -10.0f) { - D_800E3210[D_8004A7C4->objId] = 0.25f; - } - finish_current_thread(1); - } else { - break; - } - } - if (D_800E98E0[tmp] == 1) { - D_800E3590[D_8004A7C4->objId] = 0.0f; - D_800E3050[D_8004A7C4->objId] = D_800E3590[D_8004A7C4->objId]; - D_800E3AD0[D_8004A7C4->objId] = temp_f30; - D_800E3210[D_8004A7C4->objId] = D_80128D20 * 16.0f; - D_800E3750[D_8004A7C4->objId] = D_80128D24; - D_800E33D0[D_8004A7C4->objId] = 0.0f; - D_800E3910[D_8004A7C4->objId] = 0.0f; - D_800E3E50[D_8004A7C4->objId] = temp_f30; - finish_current_thread(0xF); - D_800E3910[D_8004A7C4->objId] = 0.0f; - temp_f0_2 = D_800E3910[D_8004A7C4->objId]; - D_800E3750[D_8004A7C4->objId] = temp_f0_2; - D_800E3590[D_8004A7C4->objId] = temp_f0_2; - D_800E33D0[D_8004A7C4->objId] = temp_f0_2; - D_800E3210[D_8004A7C4->objId] = temp_f0_2; - D_800E3050[D_8004A7C4->objId] = temp_f0_2; - D_800E3E50[D_8004A7C4->objId] = temp_f30; - temp_f2 = D_800E3E50[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = temp_f2; - D_800E3AD0[D_8004A7C4->objId] = temp_f2; - finish_current_thread(1); - D_800E3590[D_8004A7C4->objId] = 0.0f; - D_800E3050[D_8004A7C4->objId] = D_800E3590[D_8004A7C4->objId]; - D_800E3AD0[D_8004A7C4->objId] = temp_f30; - D_800E3210[D_8004A7C4->objId] = 0.0f; - D_800E3750[D_8004A7C4->objId] = D_80128D28; - D_800E33D0[D_8004A7C4->objId] = 0.0f; - D_800E3910[D_8004A7C4->objId] = 0.0f; - D_800E3E50[D_8004A7C4->objId] = temp_f30; - finish_current_thread(0x16); - D_800E3910[D_8004A7C4->objId] = 0.0f; - temp_f0_3 = D_800E3910[D_8004A7C4->objId]; - D_800E3750[D_8004A7C4->objId] = temp_f0_3; - D_800E3590[D_8004A7C4->objId] = temp_f0_3; - D_800E33D0[D_8004A7C4->objId] = temp_f0_3; - D_800E3210[D_8004A7C4->objId] = temp_f0_3; - D_800E3050[D_8004A7C4->objId] = temp_f0_3; - D_800E3E50[D_8004A7C4->objId] = temp_f30; - temp_f2_2 = D_800E3E50[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = temp_f2_2; - D_800E3AD0[D_8004A7C4->objId] = temp_f2_2; - D_800E98E0[tmp] = 0; - } - else if (D_800E98E0[tmp] == 2) { - D_800E3590[D_8004A7C4->objId] = 0.0f; - D_800E3050[D_8004A7C4->objId] = D_800E3590[D_8004A7C4->objId]; - D_800E3AD0[D_8004A7C4->objId] = temp_f30; - D_800E3210[D_8004A7C4->objId] = -8.0f; - D_800E33D0[D_8004A7C4->objId] = 0.0f; - D_800E3910[D_8004A7C4->objId] = 0.0f; - D_800E3E50[D_8004A7C4->objId] = temp_f30; - finish_current_thread(0xA); - D_800E3910[D_8004A7C4->objId] = 0.0f; - temp_f0_4 = D_800E3910[D_8004A7C4->objId]; - D_800E3750[D_8004A7C4->objId] = temp_f0_4; - D_800E3590[D_8004A7C4->objId] = temp_f0_4; - D_800E33D0[D_8004A7C4->objId] = temp_f0_4; - D_800E3210[D_8004A7C4->objId] = temp_f0_4; - D_800E3050[D_8004A7C4->objId] = temp_f0_4; - D_800E3E50[D_8004A7C4->objId] = temp_f30; - temp_f2_3 = D_800E3E50[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = temp_f2_3; - D_800E3AD0[D_8004A7C4->objId] = temp_f2_3; - func_800AFA14(); - } - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116508.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116B68.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116B90.s") - -void func_80116CA0(void) { - func_80116B90(); -} - -void func_80116CC0(void) { - func_80116B90(); -} - -void func_80116CE0(void) { - func_80116B90(); -} - -void func_80116D00(void) { - func_80116B90(); -} - -void func_80116D20(void) { - func_80116B90(); -} - -void func_80116D40(void) { - func_80116B90(); -} - -void func_80116D60(void) { - func_80116B90(); -} - -void func_80116D80(void) { - func_80116B90(); -} - -void func_80116DA0(void) { - func_80115070(); -} - -void func_80116DC0(void) { - func_80115070(); -} - -void func_80116DE0(void) { - func_80115070(); -} - -void func_80116E00(void) { - func_80115070(); -} - -void func_80116E20(void) { - func_801153B8(); -} - -void func_80116E40(void) { - func_801153B8(); -} - -void func_80116E60(void) { - func_801153B8(); -} - -void func_80116E80(void) { - func_801153B8(); -} - -void func_80116EA0(void) { - func_801153B8(); -} - -void func_80116EC0(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80105530.s") -void func_80116EE0(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801056C8.s") -void func_80116F00(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801057C4.s") -void func_80116F20(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801058B8.s") -void func_80116F40(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801060C4.s") -void func_80116F60(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801063F0.s") -void func_80116F80(struct GObj *arg0); -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116F80.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010669C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80116FF8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80106834.s") -void func_80117078(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80106930.s") -void func_80117098(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80106C5C.s") -void func_801170B8(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80107074.s") -void func_801170D8(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801072E0.s") -void func_801170F8(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801073C4.s") -void func_80117118(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801077D4.s") -void func_80117138(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801078A0.s") -void func_80117158(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80107F94.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117178.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80108078.s") -void func_801171F0(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80108858.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117210.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80108E08.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117328.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109240.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801173F4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010924C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117570.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109318.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011764C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109504.s") -void func_80117698(void) { - func_8011764C(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_801096F0.s") -void func_801176B8(void) { - func_8011764C(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109784.s") -void func_801176D8(void) { - func_8011764C(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109970.s") -void func_801176F8(void) { - func_8011764C(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109B5C.s") -void func_80117718(void) { - func_8011764C(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109BF0.s") -void func_80117738(void) { - func_8011764C(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109DD8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117758.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109E00.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117784.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109E44.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801177B0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109F60.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801177DC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_80109FAC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117808.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010A138.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117834.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010A2C4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117904.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010AA80.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117AB4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010AC1C.s") -void func_80117D70(s32 arg0) { - func_80117834(); - func_80117904(arg0); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010AEE0.s") -void func_80117DA0(s32 arg0) { - func_80117834(); - finish_current_thread(0x1E); - func_80117904(arg0); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010AEF0.s") -void func_80117DD8(s32 arg0) { - func_80117834(); - finish_current_thread(0x3C); - func_80117904(arg0); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B0B0.s") -void func_80117E10(s32 arg0) { - func_80117834(); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B0D8.s") -void func_80117E38(s32 arg0) { - func_80117834(); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B11C.s") -void func_80117E60(s32 arg0) { - func_80117834(); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B238.s") -void func_80117E88(s32 arg0) { - func_80117834(); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B284.s") -void func_80117EB0(s32 arg0) { - func_80117834(); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B480.s") -void func_80117ED8(s32 arg0) { - func_80117834(); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B67C.s") -void func_80117F00(s32 arg0) { - func_80117834(); - func_80117AB4(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010B860.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80117F28.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010BA44.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801180B8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010BB08.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118130.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010BBD4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801181AC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010BD0C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118270.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010BD84.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011829C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010BE7C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801182C8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010BFAC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801182F4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010C184.s") -void func_80118320(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010C274.s") -void func_80118340(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010C608.s") -void func_80118360(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010C734.s") -void func_80118380(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010CABC.s") -void func_801183A0(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010CE44.s") -void func_801183C0(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010D138.s") -void func_801183E0(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010D42C.s") -void func_80118400(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010D668.s") -extern void func_80112B4C(void); -extern void func_8011E524(void); -extern void func_801129F4(void); -extern void func_80112B4C(void); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010D8A4.s") -void func_80118420(u32 *arg0) { - func_80112B4C(); - if ((D_800DD8D0[*arg0] * 2) < 0) { - func_8011E524(); - func_801129F4(); - D_800DEF90[D_8004A7C4->objId] = &func_80112B4C; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DA28.s") -void func_80118498(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DB64.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801184B8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DC00.s") -void func_80118578(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DC24.s") -void func_80118598(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DC5C.s") -void func_801185B8(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DC8C.s") -void func_801185D8(void) { - func_801153B8(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DCAC.s") -void func_801185F8(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DCDC.s") -void func_80118618(void) { - func_80115070(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DD8C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118638.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DDA4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118760.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010DF9C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801187A4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010E048.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011884C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010E260.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011890C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010E274.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118A60.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010E288.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118B60.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010E2A0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118BC8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/mtx_create_translate_scale.s") -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118C88.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118CA8.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118CC8.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118D84.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118E44.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118F70.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80118F9C.s") - -void func_80118FC8(void) { - func_80118C88(); -} - -void func_80118FE8(void) { - func_80118CA8(); -} - -void func_80119008(void) { - func_80118C88(); -} - -void func_80119028(void) { - func_80118CA8(); -} - -void func_80119048(void) { - func_80118C88(); -} - -void func_80119068(void) { - func_80118CA8(); -} - -void func_80119088(s32 arg0) { - -} - -void func_80119090(void) { - func_80118CC8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801190B0.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801190DC.s") - -void func_80119108(void) { - func_80118CC8(); -} - -void func_80119128(void) { - func_80118C88(); -} - -void func_80119148(void) { - func_80118CC8(); -} - -void func_80119168(void) { - func_80118C88(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119188.s") - -void func_80119270(void) { - func_80118C88(); -} - -void func_80119290(void) { - func_80118CA8(); -} - -void func_801192B0(s32 arg0) { - -} - -void func_801192B8(s32 arg0) { - -} - -void func_801192C0(void) { - func_80115070(); -} - -void func_801192E0(void) { - func_80115070(); -} - -void func_80119300(void) { - func_80115070(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119320.s") - -void func_801193CC(void) { - func_801153B8(); -} - -void func_801193EC(void) { - func_801153B8(); -} - -void func_8011940C(void) { - func_801153B8(); -} - -void func_8011942C(void) { - func_801153B8(); -} - -void func_8011944C(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011946C.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011948C.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801194AC.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801194CC.s") - -void func_801194EC(void) { - func_80118C88(); -} - -void func_8011950C(void) { - func_80118CA8(); -} - -void func_8011952C(void) { - func_80118C88(); -} - -void func_8011954C(void) { - func_80118CA8(); -} - -void func_8011956C(void) { - func_80118C88(); -} - -void func_8011958C(void) { - func_80118CA8(); -} - -void func_801195AC(void) { - func_80118C88(); -} - -void func_801195CC(void) { - func_80118CA8(); -} - -void func_801195EC(void) { - func_80118C88(); -} - -void func_8011960C(void) { - func_80118CA8(); -} - -void func_8011962C(void) { - func_80118C88(); -} - -void func_8011964C(void) { - func_80118CA8(); -} - -void func_8011966C(void) { - func_80118C88(); -} - -void func_8011968C(void) { - func_80118CA8(); -} - -void func_801196AC(void) { - func_80118C88(); -} - -void func_801196CC(void) { - func_80118CA8(); -} - -void func_801196EC(void) { - func_80115070(); -} - -void func_8011970C(void) { - func_80115070(); -} - -void func_8011972C(void) { - func_80115070(); -} - -void func_8011974C(void) { - func_80115070(); -} - -void func_8011976C(void) { - func_80115070(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011978C.s") - -void func_8011982C(void) { - func_80115070(); -} - -void func_8011984C(void) { - func_80115070(); -} - -void func_8011986C(void) { - func_80115070(); -} - -void func_8011988C(void) { - func_801153B8(); -} - -void func_801198AC(void) { - func_801153B8(); -} - -void func_801198CC(void) { - func_801153B8(); -} - -void func_801198EC(void) { - func_801153B8(); -} - -void func_8011990C(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011992C.s") - -void func_801199E0(void) { - func_8011992C(); -} - -void func_80119A00(void) { - func_8011992C(); -} - -void func_80119A20(void) { - func_8011992C(); -} - -void func_80119A40(void) { - func_8011992C(); -} - -void func_80119A60(void) { - func_8011992C(); -} - -void func_80119A80(void) { - func_8011992C(); -} - -void func_80119AA0(void) { - func_80115070(); -} - -void func_80119AC0(void) { - func_80115070(); -} - -void func_80119AE0(void) { - func_80115070(); -} - -void func_80119B00(void) { - func_80115070(); -} - -void func_80119B20(void) { - func_801153B8(); -} - -void func_80119B40(void) { - func_801153B8(); -} - -void func_80119B60(void) { - func_801153B8(); -} - -void func_80119B80(void) { - func_80115070(); -} - -void func_80119BA0(void) { - func_80115070(); -} - -void func_80119BC0(void) { - func_80115070(); -} - -void func_80119BE0(void) { - func_80115070(); -} - -void func_80119C00(void) { - func_80115070(); -} - -void func_80119C20(void) { - func_80115070(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119C40.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119C6C.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119C98.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119CC4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119CF0.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119D1C.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119D48.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_80119D74.s") - -void func_80119DA0(void) { - func_8011544C(); -} - -void func_80119DC0(void) { - func_8011544C(); -} - -void func_80119DE0(void) { - func_8011544C(); -} - -void func_80119E00(void) { - func_8011544C(); -} - -void func_80119E20(void) { - func_8011544C(); -} - -void func_80119E40(void) { - func_8011544C(); -} - -void func_80119E60(void) { - func_8011544C(); -} - -void func_80119E80(void) { - func_8011544C(); -} - -void func_80119EA0(void) { - func_8011544C(); -} - -void func_80119EC0(void) { - func_8011544C(); -} - -void func_80119EE0(void) { - func_8011544C(); -} - -void func_80119F00(void) { - func_8011544C(); -} - -void func_80119F20(void) { - func_8011544C(); -} - -void func_80119F40(void) { - func_8011544C(); -} - -void func_80119F60(void) { - func_8011544C(); -} - -void func_80119F80(void) { - func_8011544C(); -} - -void func_80119FA0(void) { - func_8011544C(); -} - -void func_80119FC0(void) { - func_8011544C(); -} - -void func_80119FE0(void) { - func_8011544C(); -} - -void func_8011A000(void) { - func_8011544C(); -} - -void func_8011A020(void) { - func_8011511C(); -} - -void func_8011A040(void) { - func_8011511C(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A060.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A0FC.s") - -void func_8011A178(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A198.s") - -void func_8011A214(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A234.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A254.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A274.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A294.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A2F4.s") - -void func_8011A3B8(void) { - func_801153B8(); -} - -void func_8011A3D8(void) { - func_801153B8(); -} - -void func_8011A3F8(void) { - func_801153B8(); -} - -void func_8011A418(void) { - func_801153B8(); -} - -void func_8011A438(void) { - func_801153B8(); -} - -void func_8011A458(void) { - func_801153B8(); -} - -void func_8011A478(void) { - func_801153B8(); -} - -void func_8011A498(void) { - func_80115618(); - func_80008DA8(0); -} - -void func_8011A4C0(void) { - func_80115618(); - func_80008DA8(0); -} - -void func_8011A4E8(void) { - func_80115618(); - func_80008DA8(0); -} - -void func_8011A510(void) { - func_80115618(); - func_80008DA8(0); -} - -void func_8011A538(void) { - func_80115618(); - func_80008DA8(0); -} - -void func_8011A560(void) { - func_80115618(); - func_80008DA8(0); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A588.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A638.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A678.s") - -void func_8011A770(s32 arg0) { - func_80115578(); - func_80118760(arg0); - func_801187A4(); - func_80008DA8(0); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A7A8.s") - -void func_8011A86C(void) { - func_801153B8(); -} - -void func_8011A88C(void) { - func_801153B8(); -} - -void func_8011A8AC(void) { - func_801153B8(); -} - -void func_8011A8CC(void) { - func_801153B8(); -} - -void func_8011A8EC(void) { - func_801153B8(); -} - -void func_8011A90C(void) { - func_801153B8(); -} - -void func_8011A92C(void) { - func_801153B8(); -} - -void func_8011A94C(void) { - func_80115070(); -} - -void func_8011A96C(void) { - func_80115070(); -} - -void func_8011A98C(void) { - func_80115070(); -} - -void func_8011A9AC(void) { - func_80115070(); -} - -void func_8011A9CC(void) { - func_80115070(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011A9EC.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AA7C.s") - -void func_8011AB7C(void) { - func_80115070(); -} - -void func_8011AB9C(void) { - func_80115070(); -} - -void func_8011ABBC(void) { - func_80115070(); -} - -void func_8011ABDC(void) { - func_80115070(); -} - -void func_8011ABFC(void) { - func_80115070(); -} - -void func_8011AC1C(void) { - func_80115070(); -} - -void func_8011AC3C(void) { - func_80118C88(); -} - -void func_8011AC5C(void) { - func_80118CA8(); -} - -void func_8011AC7C(void) { - func_801153B8(); -} - -void func_8011AC9C(void) { - func_801153B8(); -} - -void func_8011ACBC(void) { - func_801153B8(); -} - -void func_8011ACDC(void) { - func_801153B8(); -} - -void func_8011ACFC(void) { - func_801153B8(); -} - -void func_8011AD1C(void) { - func_801153B8(); -} - -void func_8011AD3C(void) { - func_801153B8(); -} - -void func_8011AD5C(void) { - func_801153B8(); -} - -void func_8011AD7C(void) { - func_801153B8(); -} - -void func_8011AD9C(void) { - func_801153B8(); -} - -void func_8011ADBC(void) { - func_801153B8(); -} - -void func_8011ADDC(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011ADFC.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AE6C.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AEF0.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011AF50.s") - -void func_8011AFB0(void) { - func_801153B8(); -} - -void func_8011AFD0(void) { - func_801153B8(); -} - -void func_8011AFF0(void) { - func_801153B8(); -} - -void func_8011B010(void) { - func_801153B8(); -} - -void func_8011B030(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B050.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B0A4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B188.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B22C.s") - -void func_8011B328(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B348.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B3B8.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B3F4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B464.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B528.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B554.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B580.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B5AC.s") - -void func_8011B5D8(void) { - func_801153B8(); -} - -void func_8011B5F8(void) { - func_801153B8(); -} - -void func_8011B618(void) { - func_801153B8(); -} - -void func_8011B638(void) { - func_801153B8(); -} - -void func_8011B658(void) { - func_801153B8(); -} - -void func_8011B678(void) { - func_801153B8(); -} - -void func_8011B698(void) { - func_801153B8(); -} - -void func_8011B6B8(void) { - func_801153B8(); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B6D8.s") - -void func_8011B794(s32 arg0) { - func_80115578(); - func_80118760(arg0); - func_801187A4(); - func_80008DA8(0); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_7/func_8011B7CC.s") - -void func_8011B838(void) { - func_801153B8(); -} - -void func_8011B858(void) { - func_80118C88(); -} - -extern f32 D_800D6B14; -extern s32 D_800D6E14; -void func_800AECC0(f32); -void func_800AED20(f32); - -void func_8011B878(s32 arg0) { - func_80115578(); - func_80118760(arg0); - func_800AECC0(0.0f); - func_800AED20(0.0f); - while (D_800D6E14 == 0) { - finish_current_thread(1); - } - func_800AECC0(D_800D6B10); - func_800AED20(D_800D6B10); - finish_current_thread((s32) (30.0f * D_800D6B14)); - func_800AECC0(0.0f); - func_800AED20(0.0f); - func_80008DA8(NULL); -} - -void func_8011B944(struct GObj *arg0) { - func_8011B878(arg0); -} - -void func_8011B964(void) { - func_80118C88(); -} - -void func_8011B984(void) { - func_80115070(); -} - -void func_8011B9A4(struct GObj *arg0) { - func_8011B878(arg0); -} - -void func_8011B9C4(void) { - func_80118C88(); -} - -void func_8011B9E4(struct GObj *arg0) { - func_8011B878(arg0); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_7/func_8010E324.s") diff --git a/src/ovl2/ovl2_8.c b/src/ovl2/ovl2_8.c index e75e6dbce..fbf20c291 100644 --- a/src/ovl2/ovl2_8.c +++ b/src/ovl2/ovl2_8.c @@ -1,818 +1,108 @@ -// plyeff.cc - player effects? - -#include -#include -#include "types.h" -#include "ovl2_8.h" -#include "ovl2_6.h" -#include "sounds.h" -#include "D_8004A7C4.h" -#include "unk_structs/D_800DE350.h" -#include "ovl1/ovl1_6.h" -extern Controller_800D6FE8 gKirbyController; - - - -void *func_8011BA10(struct CollisionTriangle *tri, u32 arg1) { - u32 i; - struct DynGeo_List *destructGroups; - struct vCollisionHeader *vColHeader; - u16 *destrucIndex; - - if (arg1 != 20) { - vColHeader = D_8012D948[arg1].unk4; - } else { - vColHeader = D_8012940C.unk4; - } - - destructGroups = &vColHeader->header.Destructable_Groups[tri->collisionIndex]; - - destrucIndex = &vColHeader->header.Destructable_Indices[destructGroups->Index_To_Dynamic_Geo_Group]; - - for (i = 0; i < destructGroups->Num_Dynamic_Geo_Group_Members; i++) { - vColHeader->header.Triangles[*destrucIndex].normalType &= ~3; - destrucIndex++; - } -} - -struct Struct800DFBD0 { - - u8 filler[0x54]; - s8 unk54; -}; - -extern u32 D_801290D0; - - -struct LayoutNode *func_8011BABC(struct CollisionTriangle *tri, u32 arg1) { - u32 i; - struct DynGeo_List *destructGroups; - struct vCollisionHeader *vColHeader; - u16 *destrucIndex; - u32 phi_a0; - - if (arg1 != 20) { - vColHeader = D_8012D948[arg1].unk4; - phi_a0 = D_8012D948[arg1].unk1; - } else { - vColHeader = D_8012940C.unk4; - phi_a0 = D_801290D0; - } - - destructGroups = &vColHeader->header.Destructable_Groups[tri->collisionIndex]; - - destrucIndex = &vColHeader->header.Destructable_Indices[destructGroups->Index_To_Dynamic_Geo_Group]; - - for (i = 0; i < destructGroups->Num_Dynamic_Geo_Group_Members; i++) { - vColHeader->header.Triangles[*destrucIndex].normalType &= ~3; - destrucIndex++; - } - - return D_800DFBD0[phi_a0][destructGroups->Unk_Index]; -} - -extern func_800A4794(Vec3f, struct LayoutNode *, struct vCollisionHeader *, struct DynGeo_List *); -extern func_800FD754(s32 *, f32, f32, f32); -extern func_800A4DB8(Vec3f, struct LayoutNode *); -extern func_800A802C(s32 *, s32, s32, Vec3f, Vec3f); - - -struct LayoutNode *func_8011BB98(struct CollisionTriangle *tri, u32 arg1) { - u32 i; - struct DynGeo_List *destructGroups; - struct LayoutNode *temp_s0; - struct vCollisionHeader *vColHeader; - u16 *destrucIndex; - u32 phi_t1; - Vec3f sp44; - Vec3f sp38; - Vec3f sp2C; - - if (arg1 != 20) { - vColHeader = D_8012D948[arg1].unk4; - phi_t1 = D_8012D948[arg1].unk1; - } else { - vColHeader = D_8012940C.unk4; - phi_t1 = D_801290D0; - } - - destructGroups = &vColHeader->header.Destructable_Groups[tri->collisionIndex]; - - destrucIndex = &vColHeader->header.Destructable_Indices[destructGroups->Index_To_Dynamic_Geo_Group]; - - for (i = 0; i < destructGroups->Num_Dynamic_Geo_Group_Members; i++) { - vColHeader->header.Triangles[*destrucIndex].normalType &= ~3; - destrucIndex++; - } - - temp_s0 = D_800DFBD0[phi_t1][destructGroups->Unk_Index]; - temp_s0->unk54 = 2; - - if (tri->collisionParameter == 0) { - func_800A4794(sp44, temp_s0, vColHeader, destructGroups); - func_800FD754(NULL, sp44[0], sp44[1], sp44[2]); - } else { - func_800A4794(sp38, temp_s0, vColHeader, destructGroups); - func_800A4DB8(sp2C, temp_s0); - func_800A802C(NULL, 3, 54, sp38, sp2C); - } - return temp_s0; -} - -void func_8011BD08(struct CollisionTriangle *tri, u32 arg1) { - func_8011BB98(tri, arg1); - play_sound(SOUND_BGBRAKE1); -} - -// start is the same as the above functions -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011BD30.s") - -extern u8 D_80126E20[]; -u32 func_8011BED0(u16 arg0, u16 arg1, u16 arg2) { - if ((arg0) == 9) { - if (arg1 == 0) { - return 1; - } - if (arg1 == arg2 || ((arg1 < 8) && (D_80126E20[arg1] & D_80126E20[arg2]))) { - return 1; - } - return 0; - } - return 1; -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011BF4C.s") - -void func_8011C2A0(void *arg0) { - play_sound(11); - func_8011BA10(*(u32 *)((u32)arg0+0x84), 20); // todo: struct -} - -void vec3_cross_product(Vector *v1, Vector *v2, Vector *dst) { - dst->x = (v1->y * v2->z) - (v1->z * v2->y); - dst->y = (v1->z * v2->x) - (v1->x * v2->z); - dst->z = (v1->x * v2->y) - (v1->y * v2->x); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C344.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C4E8.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C720.s") - -extern s32 D_8011D0FC; // probably part of a struct - -void func_8011C838(void) { - struct UnkStruct800DE350 *temp = D_800DE350[request_track_general(18, 0, 1)]; - - temp->unk48 = &D_8011D0FC; -} - -struct UnkStruct800D6F18 { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; -}; - -extern s32 D_800D6F10; -extern struct UnkStruct800D6F18 D_800D6F18[2]; -//regalloc -#ifdef NON_MATCHING -void func_8011C87C(void) { - u32 i; - - gKirbyState.unk4 = 0; - gKirbyState.isHoldingEntity = 0; - gKirbyState.inhaledEntityData = 0; - gKirbyState.secondInhale = 0; - gKirbyState.firstInhale = 0; - gKirbyState.currentInhale = 0; - - for (i = 0; i < 2; i++) { - D_800D6F18[i].unk4 = 0; - D_800D6F18[i].unk8 = 0; - D_800D6F18[i].unkC = 0; - D_800D6F18[i].unk0 = 0; - } - - D_800D6F10 = 0; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C87C.s") -#endif - -void func_8011C8D0(void) { - func_80105180(&gPositionState); - D_800D6F18[1].unkC = 0; -} - - -extern f32 D_80128E28; -extern s32 D_800BE50C; -extern f32 D_800BE510; -extern f32 D_80128E24; -extern s32 D_800B531C; -extern s32 D_8011CFF4; -extern s32 D_8012EADC; -extern s32 D_8012EAE0; -extern f32 gKirbyHp; -extern s32 D_800D6E54; - -void func_800F88C8(s32, s32, f32); -// some sort of init_kirby function? -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011C8F8.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011CCB8.s") - -void func_800AECC0(f32); -void func_800AED20(f32); -extern s32 D_800E8AE0[]; - - -void func_8011CF58(void) { - if (D_800E8AE0[D_8004A7C4->objId] & 6) { - func_800AECC0(1.0f); - func_800AED20(1.0f); - } else { - func_800AECC0(2.0f); - func_800AED20(2.0f); - } -} - -void func_8011CFE0(void) { - gKirbyState.unk4 = 0; - gKirbyState.numberInhaled = 0; -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011CFF4.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D0FC.s") - -struct UnkStruct801290D8 { - u8 filler[0x14]; - u16 unk14; -}; - -extern u8 D_8012E7D7; -extern s32 D_800D6B54, D_800D6B58, D_800BE4F8, D_800D708C; -extern struct UnkStruct801290D8 *D_801290D8; -s32 change_kirby_hp(f32); - -void func_8011D40C(void) { - if (D_800D6B54 == 0) { - D_8012E7D7 = 1; - change_kirby_hp(-6.0f); - D_800D6B54 = 1; - D_800D6B58 = 0x96; - D_800BE4F8 = 6; - func_800FA414(6); - D_800D708C = D_801290D8->unk14; - func_80020998_ovl2(0, 0x7800); - play_music(0, 5); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D4A4.s") - -extern s32 D_801926E8; -extern s32 D_80190358; - -void func_8011D614(void) { - func_8011CF58(); - func_800A9760(0x20007); - - D_800E0490[D_8004A7C4->objId] = &D_801926E8; - - gKirbyState.unk15C = &D_80190358; - gKirbyState.unk154 = 2; -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D67C.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011D858.s") - -extern f32 func_800F951C(s32 arg1,f32 arg2,s32 arg3,f32 arg4); -f32 func_8011D9E0(s32 arg1, f32 arg2, s32 arg3, f32 arg4) { - f32 temp_f0; - - temp_f0 = func_800F951C(arg1, arg2, arg3, arg4); - if (temp_f0 == D_80128EF8) { - return D_80128EFC; - } - return temp_f0; -} - - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011DA34.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011DAF8.s") - -void func_8011DC04(u32 arg0) { - func_800A77E8(arg0, &D_8012E818, &D_8012E81C); -} - -void func_8011DC30(u32 arg0) { - func_800A77E8(arg0, &D_8012E820, &D_8012E824); -} - -void func_8011DC5C(void) { - if (gKirbyState.unk58 != 0) { - func_800A7870(&gKirbyState.unk58, &gKirbyState.unk5C); - } - gKirbyState.unk58 = 0; - gKirbyState.unk5C = 0; - if (gKirbyState.unk60 != 0) { - func_800A7870(&gKirbyState.unk60, &gKirbyState.unk64); - } - gKirbyState.unk60 = 0; - gKirbyState.unk64 = 0; -} - -void func_8011DCD0(void) { - if (gKirbyState.unk60 != 0) { - func_800A7870(&D_8012E820, &D_8012E824); - } - gKirbyState.unk60 = 0; - gKirbyState.unk64 = (u16)0; -} - -void func_8011DD18(s32 arg0) { - if (gGameState != 0x21) { - if (arg0 != gKirbyState.ability) { - gKirbyState.ability = arg0; - func_8012310C(arg0); - } - } -} +#include "common.h" -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011DD5C.s") - -void func_8011E0E8(void) { - if (gKirbyState.unk4C != 0) { - if (gKirbyState.unk48 == 0) { - func_800A22D4(gKirbyState.unk4C); - } else { - func_800A1F30(gKirbyState.unk4C); - } - gKirbyState.unk4C = 0; - gKirbyState.unk48 = 0; - } - if (gKirbyState.unk50 != 0) { - if (gKirbyState.unk48 == 0) { - func_800A22D4(gKirbyState.unk50); - } else { - func_800A1F30(gKirbyState.unk50); - } - gKirbyState.unk50 = 0; - gKirbyState.unk48 = 0; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010E5B0.s") -void func_8011E190(void) { - u32 temp_a0; - u32 temp_v0; - - if (gGameState != 0x21) { - temp_a0 = gKirbyState.currentInhale; - temp_v0 = gKirbyState.currentInhale; - if (temp_v0 != 0) { - gKirbyState.ability = (s32) gKirbyState.currentInhale; - func_8012310C(temp_a0); - } - gKirbyState.secondInhale = 0; - gKirbyState.firstInhale = 0; - gKirbyState.currentInhale = 0; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010E6F0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010E740.s") -extern s32 D_80126EF8[][0x90 / 4]; -s32 func_8011E1E8(s32 arg0, s32 arg1) { - if (arg1 >= 8) { - return arg1; - } - if (arg0 >= 8) { - return arg0; - } - return D_80126EF8[arg0][arg1]; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010E8F0.s") -void func_8011E234(void) { - D_8012E922 = 0x14; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010EA20.s") -u8 func_8011E244(void) { - if (D_800E8920[0] == 1) { - return D_8012E9B8; - } else { - return 0x14; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010EA68.s") -u8 func_8011E270(void) { - if (D_8012E8C2 == 0x12 || D_8012E8C2 == 0x13) { - return 1; - } - return 0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010EE24.s") -extern f32 D_80128F18; -f32 func_8011E2A0(void) { - f32 temp_f2; - - if ((gKirbyState.isTurning & 0x4000) == 0) { - temp_f2 = (f32)gKirbyState.unk114->unk10 * D_80128F18; - if (temp_f2 != 0.0f) { - return temp_f2 * D_80128F18; - } - } - return 0.0f; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010EEE8.s") -void func_8011E31C(Vector *arg0) { - arg0->x = gPositionState.kirbyHeadPos[0]; - arg0->y = gPositionState.kirbyHeight[1]; - arg0->z = gPositionState.kirbyHeadPos[2]; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010EFA8.s") -s32 func_8011E340(void) { - if (gKirbyState.floorCollisionNext != 0) { - return gKirbyState.unk114; - } else { - return 0; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010F140.s") -s32 func_8011E368(void) { - return D_800D6F10; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010F964.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011E374.s") - -void func_8011E438(void) { - gKirbyState.unk4 = 0; - gKirbyState.unk17 = 1; - gKirbyState.abilityInUse = 0; - set_kirby_action_2(0x48, 0x1C); - D_800E6850[0] = 0.0f; - D_800E64D0[0] = D_800E6690[0] = D_800E6850[0]; - D_800E3210[0] = 0.0f; - D_800E3750[0] = D_80128F20; - D_800E3C90[0] = 16.0f; - gEntitiesScaleZArray[0] = D_80128F24; - gEntitiesScaleXArray[0] = gEntitiesScaleYArray[0] = gEntitiesScaleZArray[0]; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010F9AC.s") -void func_8011E4E4(u32 arg0) { - gKirbyState.unk17 = 1; - gKirbyState.unk18 = 1; - gKirbyState.abilityState = arg0; - gKirbyState.unk68 = 1; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_8010FC30.s") -void func_8011E504(void) { - gKirbyState.unk17 = 0; - gKirbyState.unk18 = 0; - gKirbyState.abilityState = 0; - gKirbyState.unk24 = 0; - gKirbyState.unk68 = 0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_80110014.s") -void func_8011E524(void) { - if (gKirbyState.unk16C == 0) { - gKirbyState.unk16C = 1; - } +void func_80110130(void) { } -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011E548.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/func_80110138.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011E978.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A50.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011EBD4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A54.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011ED68.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A58.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011F690.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A5C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8011FEF8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A60.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A64.s") -extern f32 D_80129068; -void func_80120AF8(Vector *arg0); -void func_80120A28(void) { - Vector sp24; - if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { - D_800E6690[D_8004A7C4->objId] = D_800E6A10[D_8004A7C4->objId] * D_80129068; - D_800E6850[D_8004A7C4->objId] = 0.0f; - } else { - func_80120AF8(&sp24); - D_800E6690[D_8004A7C4->objId] = D_800E6A10[D_8004A7C4->objId] * sp24.z; - D_800E6850[D_8004A7C4->objId] = 0.0f; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A68.s") -extern f32 D_80129070, D_8012906C; -struct UnkStruct80128434 { - Vector unk0; - u32 unkC; - Vector unk10; -}; - -extern struct UnkStruct80128434 D_80128434[]; -void func_80120AF8(Vector *arg0) { - if (D_800E8920[D_8004A7C4->objId] == 0) { - if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { - arg0->z = D_8012906C; - } else { - arg0->z = D_80129070; - } - arg0->y = 1.0f; - arg0->x = 1.0f; - // return; - } else { - // * 0x1C - arg0->x = D_80128434[gKirbyState.unk10A].unk0.x; - arg0->y = D_80128434[gKirbyState.unk10A].unk0.y; - arg0->z = D_80128434[gKirbyState.unk10A].unk0.z; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A6C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A70.s") -// some prototype meme (and the early return doesnt help) -#ifdef NON_MATCHING -extern u32 D_80128348[]; -u32 func_80120BCC(void) { - u32 phi_v1; - - phi_v1 = 0; - if (gKirbyState.ability != 0) { - phi_v1 = 0; - if (gKirbyState.abilityInUse == 0) { - gKirbyState.hpAfterDamage = gKirbyHp; - if (gKirbyState.abilityDropTimer == 0) { - gKirbyState.abilityDropTimer = D_80128348[gKirbyState.hpAfterDamage] + 0x2D; - return; - } - gKirbyState.droppedAbility = gKirbyState.ability; - gKirbyState.abilityDropTimer = 0; - gKirbyState.isTakingDamage = 1; - gKirbyState.ability = 0; - phi_v1 = 1; - } - } - return phi_v1; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80120BCC.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A74.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80120CCC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A78.s") -// take damage? -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80120E74.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A7C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801210B4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A80.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801210FC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A84.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A88.s") -u32 func_80121194(void) { - if (D_8012E7D7 == 0 - && ((D_800E6A10[D_8004A7C4->objId] == 1.0f && gKirbyController.buttonHeld & L_JPAD) - || (D_800E6A10[D_8004A7C4->objId] == -1.0f && gKirbyController.buttonHeld & R_JPAD)) - ) { - return 1; - } - return 0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A8C.s") -u8 kirby_in_inactionable_state(void) { - if ((gKirbyState.unk17 != 0) && (gKirbyState.abilityState != 0)) { - return 3; - } - if (gKirbyState.abilityState != 0) { - return 2; - } - if (gKirbyState.unk17 != 0) { - return 1; - } - return 0; -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A90.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121284.s") - -extern const f32 D_80129074; -extern s32 D_800E85A0[]; -void func_801212A4(void) { - Vector currPos; - Vector nextPos; - - if (D_800D6B54 == 0) { - currPos.x = gEntitiesPosXArray[D_8004A7C4->objId]; - currPos.y = gEntitiesPosYArray[D_8004A7C4->objId]; - currPos.z = gEntitiesPosZArray[D_8004A7C4->objId]; - nextPos.x = gEntitiesNextPosXArray[D_8004A7C4->objId]; - nextPos.y = gEntitiesNextPosYArray[D_8004A7C4->objId]; - nextPos.z = gEntitiesNextPosZArray[D_8004A7C4->objId]; - if (func_8010474C(&currPos, &nextPos) != 0) { - if (D_800D6B54 == 0) { - func_8011D40C(); - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = D_80129074; - } - } - } else { - if ((gKirbyState.ceilingCollisionNext != 0) && (gKirbyState.floorCollisionNext != 0) && (gKirbyState.action != 0x1D) - &&(gKirbyState.ceilingType != 4) && (gKirbyState.ceilingType != 5) - ) { - change_kirby_hp(-6.0f); - set_kirby_action_1(0x16, 0x17); - } - else if ((gKirbyState.rightCollisionNext != 0) && (gKirbyState.leftCollisionNext != 0) && (gKirbyState.unk104 != 2) && (gKirbyState.unk106 != 2)) { - change_kirby_hp(-6.0f); - set_kirby_action_1(0x16, 0x17); - } - else if ((gKirbyState.unk140 != 0) - && (D_800E7B20[D_8004A7C4->objId] != 0) && (D_800E7CE0[D_8004A7C4->objId] == 0) - && (gKirbyState.action != 0x1D) && (gKirbyState.unk68 == 0) && (gKirbyState.action != 0x16) - ) { - if (change_kirby_hp(-1.0f) == 0) { - set_kirby_action_1(0x16, 0x17); - } else { - func_80120BCC(); - if (gKirbyState.unk140 & 0x40000) { - D_800E85A0[D_8004A7C4->objId] = 1; - } else if (gKirbyState.unk140 & 0x80000) { - D_800E85A0[D_8004A7C4->objId] = -1; - } - gKirbyState.unk24 = 1; - set_kirby_action_1(0x14, 0x16); - } - } - } - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A94.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801215DC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A98.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121658.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128A9C.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801217B8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AA0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121828.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AA4.s") -void func_801219C8(void) { - if (func_801215DC() == 2) { - gKirbyState.isTurning |= 1; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AA8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121A04.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AAC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121BCC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AB0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121C90.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AB4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121D3C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AB8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121F14.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128ABC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80121F50.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AC0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8012209C.s") - -u32 func_80122460(void) { - if ((gKirbyState.ceilingCollisionNext != 0) && (D_800E3210[D_8004A7C4->objId] > 0.0f)) { - if ((gKirbyState.ceilingType == 4) || (gKirbyState.ceilingType == 5)) { - if (func_8010D8A4(&gPositionState) != 0) { - return 1; - } - } - } else if ((gKirbyState.floorCollisionNext != 0) - && (D_800E3210[D_8004A7C4->objId] <= 0.0f) - && (gKirbyState.floorType == 4) - && (func_8010D8A4(&gPositionState) != 0)) { - - return 1; - } - return 0; -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122558.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801226FC.s") - -u8 func_801229D0(void) { - if (gPositionState.byteArray[2] != 0x14) { - D_8012E922 = (s16) gPositionState.byteArray[2]; - } - else if (gPositionState.byteArray[3] != 0x14) { - D_8012E922 = (s16) gPositionState.byteArray[3]; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AC4.s") -extern const char *D_80128DC0; -extern s32 D_80128420[]; -extern s16 D_8012E894; -void func_80122A10(s32 arg0) { - if ((D_8012E894 > 0) && (D_8012E894 < 5)) { - func_800A8100(0, 1, D_80128420[D_8012E894], arg0); - return; - } - // "plydmg ptcl kind over![plylib.cc] max: %x, kind: %x\n" - print_error_stub(&D_80128DC0, 5, D_8012E894); -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122A80.s") - - - - -extern s16 D_8012844C[][2]; - -extern void func_800A7F74(u32 a, u32 b, u16 c, f32 d, f32 e, f32 f); - -#ifdef NON_MATCHING -void func_80122B40(void) { - u16 phi_a2; - - if (D_800E8AE0[D_8004A7C4->objId] & 7) { - if (D_800E8AE0[D_8004A7C4->objId] & 6) - phi_a2 = 19; - else - phi_a2 = 14; - } else { - // TODO: Fix some regalloc over here! - if (gKirbyState.vel[2] < -12.5f) - phi_a2 = D_8012844C[gKirbyState.unk10A * 7][1]; - else - phi_a2 = D_8012844C[gKirbyState.unk10A * 7][0]; - } - func_800A7F74(5, 1, phi_a2, gEntitiesNextPosXArray[D_8004A7C4->objId], gEntitiesNextPosYArray[D_8004A7C4->objId], gEntitiesNextPosZArray[D_8004A7C4->objId]); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122B40.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122C30.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122CA0.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122CE8.s") - -void func_80122F08(u32 arg0) { - if (!(arg0 != 0x20007 && arg0 != 0x20008 && arg0 != 0x20009)) { - func_800A9760(arg0); - } else { - func_800A8EC0(arg0); - } - func_800AFA88(D_8004A7C4); -} - -// set_kirby_action? Two of them? -void set_kirby_action_1(s32 actionChange, s32 action) { - if (actionChange != 0xFFFF) { - gKirbyState.actionChange = actionChange; - gKirbyState.previousAction = gKirbyState.action; - gKirbyState.action = action; - } -} - -void set_kirby_action_2(s32 actionChange, u32 action) { - gKirbyState.actionChange = actionChange; - gKirbyState.previousAction = gKirbyState.action; - gKirbyState.action = action; -} - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80122FB0.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123004.s") - -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_8012307C.s") - -void func_8012307C(s32 arg0, s32 arg1, f32 arg2, s32 arg3); -void func_801230E8(s32 arg0, s32 arg1, s32 arg2) { - func_8012307C(arg0, arg1, 0.0f, arg2); -} - -void func_8012310C(s32 currentInhale) { - if (currentInhale != 0) { - play_sound(0x104); - } - func_800BC298(currentInhale); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AC8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123144.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128ACC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123170.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AD0.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801231D8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AD4.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123240.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AD8.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_801232A8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128ADC.s") -GLOBAL_ASM("asm/non_matchings/ovl2_8/func_80123354.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_8/D_80128AE0.s") diff --git a/src/ovl2/ovl2_9.c b/src/ovl2/ovl2_9.c new file mode 100644 index 000000000..b736a6c53 --- /dev/null +++ b/src/ovl2/ovl2_9.c @@ -0,0 +1,39 @@ +#include "common.h" + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80110150.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_801103C4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80110438.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_801105E8.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80110B00.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80110CCC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80110E94.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80110FD4.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111184.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_8011145C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_801114E0.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111534.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111550.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111574.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_801117BC.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111A04.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111C4C.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111C88.s") + +#pragma GLOBAL_ASM("asm/nonmatchings/ovl2/ovl2_9/func_80111ECC.s") diff --git a/src/ovl20/tamper_check.c b/src/ovl20/tamper_check.c new file mode 100644 index 000000000..bc0cbe820 --- /dev/null +++ b/src/ovl20/tamper_check.c @@ -0,0 +1,41 @@ +#include +#include "macros.h" + +extern u32 gGameTampered; +u32 D_803000E0[] = { + 0xDA041370, 0x5206ECBC, 0xD9BDE3B8, 0xDA1CECB0, + 0xF1B9E2E6, 0xD9BFECB8, 0xDA17ECB0, 0x7076ECA8, + 0xC1B8E8A0, 0xC998ECE8, 0xEC58ECAB, 0xFDB9ECA8, + 0xEDB9ECA5, 0xFDB9FC8D, 0xDA01ECB0, 0x72A0ECAC, + 0xC1B8EEA0, 0xC998FCE8, 0xEE98ECAB, 0xFDB9ECA8, + 0xEDB9ECAD, 0xFDB9FC8D, 0xEDB9ECAB, 0xD9BBECA9, + 0xEDB9ECA9, 0xFDB9ECA8, 0x7206ECBC, 0xDA04EC80, + 0xFE59ECA0, 0xFDB9ECA8, 0xFDB9ECA8, 0xFDB9ECA8, +}; +u32 D_80300170[ARRAY_COUNT(D_803000E0) + 0x10]; + +extern u32 dma_read; + +extern u32 func_80300170(void); +#define FUNC_ADDR_TO_JAL(x) ((((u32)&x & 0xFFFFFF) / 4) | 0xC000000) + +#define ASM_DEOBFUSCATOR 0xFDB9ECA8 + +// deobfuscates the function directly after this one and calls it +// potentially as a piracy/tamper check +void tamper_check_ovl20(void) { + u32 i; + for (i = 0; i < ARRAY_COUNT(D_80300170); i++) { + D_80300170[i] = D_803000E0[i] ^ ASM_DEOBFUSCATOR; + } + + // sets a jal address at runtime...? + D_80300170[0x4] = FUNC_ADDR_TO_JAL(dma_read); + + osWritebackDCache(&D_80300170, 0xC0); + osInvalICache(&D_80300170, 0xC0); + gGameTampered = 0; + if ((*func_80300170)() == 0) { + gGameTampered = 1; + } +} diff --git a/src/ovl3/ovl3.c b/src/ovl3/ovl3.c deleted file mode 100644 index ea0a5472f..000000000 --- a/src/ovl3/ovl3.c +++ /dev/null @@ -1,338 +0,0 @@ -#include -#include -#include "types.h" -#include "D_8004A7C4.h" -#include "ovl1/ovl1_6.h" - -extern struct Player gKirbyState; -extern u32 func_80121194(void); -extern u32 D_800D6FAC; -extern void set_kirby_action_1(s16 a, s16 b); - - -extern Controller_800D6FE8 gKirbyController; - -u32 func_80151100_ovl3(void) { - if (!(gKirbyState.isTurning & 1)) { - if (gKirbyState.unk17 == 0) { - if (func_80121194() != 0) { - gKirbyState.isTurning |= 1; - } - } - } - return 0; -} - -u32 func_80151160_ovl3(void) { - if (D_800D6FAC == 0) { - if (((gKirbyController.buttonHeld & 0x400) == 0) && ((gKirbyController.buttonPressed & 0x8000) != 0)) { - if (((D_800E8AE0[D_8004A7C4->objId] & 6) == 6) && (gKirbyController.buttonHeld & 0xB00)) { - gKirbyState.unk44 = 1; - set_kirby_action_1(0x17, 0x1B); - } - else { - set_kirby_action_1(3, 5); - } - return 2; - } - if (((D_800E8AE0[D_8004A7C4->objId] & 6) == 6) && ((gKirbyController.buttonHeld & 0x800) != 0)) { - if ((gKirbyState.action != 0xA) && (gKirbyState.action != 0xB)) { - gKirbyState.unk44 = 1; - set_kirby_action_1(0x17, 0x1B); - return 2; - } - } - } - return 0; -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3/func_80151288_ovl3.s") - -extern u16 D_800D6FB2, D_800D6FB0, D_80198838; -extern u32 D_800D6FA8; -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3/func_80151448_ovl3.s") - -u32 func_801517FC_ovl3(void) { - if (func_80179130_ovl3() != 0) { - return 3; - } else { - if (D_800E8920[D_8004A7C4->objId] == 0) { - set_kirby_action_1(6, 6); - return 3; - } - return 0; - } -} - -u32 func_80151864_ovl3(void) { - if (D_800D6FAC == 0) { - if ((gKirbyController.buttonHeld & 0x400) != 0) { - if (gKirbyState.unk4 == 0) { - if ((gKirbyState.isTurning & 2) == 0) { - gKirbyState.unk30 = 0; - gKirbyState.unk7 = (u8)0; - set_kirby_action_1(9, 0xE); - return 4; - } - } - } - } - return 0; -} - -extern u32 func_80122558(void); - -u32 func_801518E0_ovl3(void) { - if (func_80122558() != 0) { - return 8; - } - return 0; -} - -extern u32 func_801226FC(void); - -u32 func_8015190C_ovl3(void) { - if (func_801226FC() != 0) { - return 7; - } - return 0; -} - -extern f32 D_800E3210[]; -u32 func_80151938_ovl3(void) { - if (gKirbyState.unk151 != 0 && !(gKirbyState.isTurning & 1) && - gKirbyState.unk4 == 0 && D_800E3210[D_8004A7C4->objId] <= 0.0f && - func_801210FC() != 0) - { - set_kirby_action_1(0xF, 0xC); - return 6; - } - return 0; -} - -u32 func_801519D4_ovl3(void) { - if (gKirbyState.unk4 == 0) { - if ((gKirbyController.buttonPressed & 0x400) != 0) { - gKirbyState.unk7 = 0; - set_kirby_action_1(9, 0xE); - return 0xB; - } - } - if ((gKirbyState.isTurning & 1) == 0) { - if (D_800D6FAC == 0) { - if (func_80121194() != 0) { - gKirbyState.unk2C = 0xE; - gKirbyState.isTurning |= 1; - } else { - if ((gKirbyController.buttonHeld & 0x300) != 0) { - if ((gKirbyController.buttonHeld & 0x400) == 0) { - gKirbyState.unk38 = 0.0f; - set_kirby_action_1(1, 3); - return 0xB; - } - } - } - } - } else { - if (gKirbyState.unk2C != 0) { - gKirbyState.unk2C = (s32) (gKirbyState.unk2C - 1); - } else { - if ((gKirbyController.buttonHeld & 0x300) != 0) { - if ((gKirbyController.buttonHeld & 0x400) == 0) { - gKirbyState.unk38 = 0.0f; - set_kirby_action_1(1, 3); - return 0xB; - } - } - } - } - return 0; -} - -extern f32 D_800E64D0[]; -extern u32 D_8012E7F4; - -u32 func_80151AF4_ovl3(void) { - if ((D_8012E7F4 & 1) == 0) { - if ((gKirbyController.buttonHeld & (L_JPAD | R_JPAD)) == 0) { - if (D_800E64D0[D_8004A7C4->objId] == 0.0f) { - set_kirby_action_1(0, 1); - return 0xC; - } - } - } - return 0; -} - -u32 func_80151B78_ovl3(void) { - if (gKirbyState.unk17 != 0) { - if (gKirbyState.unk30 != 0) { - set_kirby_action_1(0, 1); - return 0xD; - } - return 0; - } else { - if (gKirbyState.unk30 != 0) { - set_kirby_action_1(0, 1); - return 0xD; - } - else if (func_801210B4() == 0) { - switch (gKirbyState.unk4) { - case 0: - break; - case 1: - if ((D_800D6FAC == 0) && (gKirbyController.buttonHeld & D_JPAD)) { - set_kirby_action_1(0xB, 0x10); - return 0xD; - } - break; - case 2: - break; - } - } else { - set_kirby_action_1(1, 3); - return 0xD; - } - } - return 0; -} - -extern f32 D_8012E7F8; - -extern f32 D_80196DD0; - -u8 func_80151C78_ovl3(void) { - if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { - if (D_800E8920[D_8004A7C4->objId] != 0) { - switch (gKirbyState.unk4) { - case 0: - if (gKirbyController.buttonHeld & D_JPAD) { - set_kirby_action_1(9, 14); - } - else { - set_kirby_action_1(0, 1); - } - break; - case 1: - if (gKirbyController.buttonHeld & D_JPAD) { - set_kirby_action_1(0xB, 0x10); - } - else { - set_kirby_action_1(0, 1); - } - break; - case 2: - if (gKirbyController.buttonHeld & D_JPAD) { - set_kirby_action_1(0x12, 0x12); - } - else { - set_kirby_action_1(0, 1); - } - break; - } - return 0xE; - } - if (func_80179130_ovl3() != 0) { - return 0xE; - } - if ((gKirbyController.buttonHeld & (L_JPAD | R_JPAD | D_JPAD)) == 0) { - if ((D_800E9560[D_8004A7C4->objId] == 0) && (D_800E64D0[D_8004A7C4->objId] == 0.0f) && (D_800E3210[D_8004A7C4->objId] <= D_80196DD0)) { - set_kirby_action_1(6, 6); - return 0xE; - } - } - } else { - if (D_800E8920[D_8004A7C4->objId] != 0) { - set_kirby_action_1(1, 3); - } else { - set_kirby_action_1(3, 5); - } - D_8012E7F8 = 0.0f; - return 0xE; - } - return 0; -} - -extern u32 D_800D6B54; -#ifdef NON_MATCHING -//generated by mips_to_c commit 09d006c9da5d6bbcd31ac6ca5c9165c1a8533a83 -u32 ovl3_process_command_string(u8 *arg0) { - u32 idx = 0; - u32 phi_v0_2 = 0; - - if (D_800D6B54 != 0) { - return 0; - } - while (arg0[idx] != 0xF) { - switch (arg0[idx]) { - case 1: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_80151100_ovl3(); - } - break; - case 2: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_80151160_ovl3(); - } - break; - case 3: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_801517FC_ovl3(); - } - break; - case 4: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_80151864_ovl3(); - } - break; - case 5: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_80151288_ovl3(); - } - break; - case 6: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_80151938_ovl3(); - } - break; - case 8: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_801518E0_ovl3(); - } - break; - case 7: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_8015190C_ovl3(); - } - break; - case 9: - if (gKirbyState.unk17 == 0) { - phi_v0_2 = func_80151448_ovl3(); - } - break; - case 11: - phi_v0_2 = func_801519D4_ovl3(); - break; - case 12: - phi_v0_2 = func_80151AF4_ovl3(); - break; - case 13: - phi_v0_2 = func_80151B78_ovl3(); - break; - case 14: - phi_v0_2 = func_80151C78_ovl3();\ - break; - } - if (phi_v0_2 == 0) { - // idx = arg0[1]; - arg0++; - } - } - return idx; -} - -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3/func_80151E94_ovl3.s") -#endif - - diff --git a/src/ovl3/ovl3_1.c b/src/ovl3/ovl3_1.c deleted file mode 100644 index c9d6bf78e..000000000 --- a/src/ovl3/ovl3_1.c +++ /dev/null @@ -1,165 +0,0 @@ -#include -#include - -#include "types.h" -#include "ovl1/ovl1_6.h" -#include "ovl2/ovl2_6.h" -#include "ovl2/ovl2_8.h" -#include "D_8004A7C4.h" - -// this is probably some sprite struct? -struct CacheLine_f { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; -}; - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80152070_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80152124_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_801521F0_ovl3.s") - -// TODO: force the loop to not unroll -#ifdef NON_MATCHING -extern const char D_80196E94[]; -s32 func_8015229C_ovl3(struct CacheLine_f *dst, struct CacheLine_f *src, u8 linecount, f32 scale) { - s32 i; - - if (linecount >= 17) { - print_error_stub(&D_80196E94, 16); - return 0; - } - for (i = 0; i < linecount; i++) { - dst[i].unk0 = src[i].unk0 * scale; - dst[i].unk4 = src[i].unk4; - dst[i].unk8 = src[i].unk8 * scale; - dst[i].unkC = src[i].unkC; - } - return 1; -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_8015229C_ovl3.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80152348_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80152828_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_801529C0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_801530BC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80153668_ovl3.s") - -void func_80153808_ovl3(void) { - if ((gKirbyState.floorCollisionNext & 0xC00) != 0) { - if ((gKirbyState.floorCollisionNext & 0x400) != 0) { - if (D_800E6A10[D_8004A7C4->objId] == 1.0f) { - gKirbyState.unk150 = 2; - } else { - gKirbyState.unk150 = 1; - } - } else { - if (D_800E6A10[D_8004A7C4->objId] == -1.0f) { - gKirbyState.unk150 = 2; - } else { - gKirbyState.unk150 = 1; - } - } - } else { - gKirbyState.unk150 = 0; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_801538C8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80153984_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80153A18_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80153AD4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80153B98_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80153FC8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_8015439C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80154428_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_8015449C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80154578_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80154648_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_8015488C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_801548DC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80154CFC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155088_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155424_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155498_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_8015550C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_801555B0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155664_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_801556D8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155838_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155C68_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155D50_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155DF0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_1/func_80155E58_ovl3.s") - -extern void func_800A7F74(s32, s32, s32, f32, f32, f32); -extern struct LayoutNode *func_8011BABC(struct CollisionTriangle *, u32); -extern s32 func_8011BD30(s32); - -s32 func_80155ED8_ovl3(struct CollisionTriangle *arg0, u32 arg1) { - func_8011BABC(arg0, arg1)->unk54 = 2; - play_sound(602); - return 1; -} - -extern s32 D_8012E804; - -s32 func_80155F0C_ovl3(struct CollisionTriangle *arg0, u32 arg1) { - struct LayoutNode *tmp; - Vector sp38; - Vector sp2C; - - if ((D_8012E804 == 2) || (arg0->collisionParameter == 0)) { - tmp = func_8011BABC(arg0, arg1); - tmp->unk54 = 2; - play_sound(0xA); - func_800A4794(&sp38, tmp); - func_800A4DB8(&sp2C, tmp); - func_800A802C(6, 3, arg0->breakParticle * 2, &sp38, &sp2C); - func_800BB468(0, 0); - } else { - func_800A4794(&sp38, func_8011BD30(arg0)); - if (1) {} - func_800A7F74(6, 3, (arg0->breakParticle * 2) + 1, - D_800EA6E0[D_8004A7C4->objId], - D_800EA8A0[D_8004A7C4->objId], - D_800EAA60[D_8004A7C4->objId] - ); - D_800E8220[D_8004A7C4->objId] = 1; - return 1; - } - return 0; -} diff --git a/src/ovl3/ovl3_2.c b/src/ovl3/ovl3_2.c deleted file mode 100644 index e57d0543b..000000000 --- a/src/ovl3/ovl3_2.c +++ /dev/null @@ -1,136 +0,0 @@ -#include -#include -#include "types.h" -#include "ovl1/ovl1_6.h" -#include "D_8004A7C4.h" -extern struct Player gKirbyState; - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80156050_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80156594_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_801567B8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80157738_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80157C5C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80157D58_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80157E38_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80157F18_ovl3.s") - -void func_801580C4_ovl3(struct GObj *arg0, f32 arg1); -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_801580C4_ovl3.s") - -extern f32 D_80196F58; -void func_8015814C_ovl3(struct GObj *arg0, void (*arg1)(s32), f32 arg2) { - gKirbyState.unk44 = 0; - while ((gKirbyState.isTurning & 1) != 0) { - finish_current_thread(1); - } - gKirbyState.unk18 = 0; - func_80157C5C_ovl3(arg0); - gKirbyState.unk30 = 0; - arg1(arg0); - func_80157D58_ovl3(arg0); - while (gKirbyState.unk30 == 0) { - finish_current_thread(1); - } - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_80196F58; - while ((gKirbyState.isTurning & 1) != 0) { - finish_current_thread(1); - } - func_801580C4_ovl3(arg0, arg2); - func_80157E38_ovl3(arg0); - gKirbyState.unk44 = 1; - func_800AFA14(); -} - - -extern f32 func_800F951C(s32, f32, s32, f32); -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158294_ovl3.s") - -extern s32 D_800BE4F8; -void func_801583BC_ovl3(struct GObj *arg0) { - func_80158294_ovl3(arg0); - if (gKirbyState.unk2C-- == 0) { - gKirbyState.unk2C = 0x7FFFFFFF; // TODO: change to INT_MAX - D_800BE4F8 = 2; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158410_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_8015849C_ovl3.s") - -void func_80158508_ovl3(struct GObj *arg0) { - func_801583BC_ovl3(arg0); -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158528_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158564_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_801585A0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158604_ovl3.s") - -void func_80158668_ovl3(void) { - func_80158294_ovl3(); -} - -void func_80158688_ovl3(void) { - func_80158294_ovl3(); -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_801586A8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158744_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_801587AC_ovl3.s") - -void func_8015880C_ovl3(void) { - func_80158294_ovl3(); -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_8015882C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_801588D0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158924_ovl3.s") - -// important??? -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158B10_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158C40_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158CA8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158DB4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80158EEC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80159164_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80159ADC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80159BA0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80159EA0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_80159EF0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_8015A144_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_8015A31C_ovl3.s") - - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_8015A44C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_8015A92C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_2/func_8015A9F8_ovl3.s") diff --git a/src/ovl3/ovl3_5.c b/src/ovl3/ovl3_5.c deleted file mode 100644 index cb625127d..000000000 --- a/src/ovl3/ovl3_5.c +++ /dev/null @@ -1,1700 +0,0 @@ -#include -#include -#include "types.h" -#include "sounds.h" -#include "stages.h" -#include "buffers.h" - -#include "D_8004A7C4.h" -#include "ovl1/ovl1_6.h" -#include "ovl2/ovl2_8.h" - -extern void func_800AA78C(s32, s32, f32); -extern void play_sound(s32 a); - -extern struct Player gKirbyState; - -VTABLE vtbl_80196990 = { - 0x8016CA8C, 0x8016D3A8, 0x8016DA14, 0x8016DDE8, - 0x8016E638, 0x8016E8A0, 0x8016EF5C, 0x8016F6DC, - 0x8016F80C, 0x8016FD88, 0x801702F0, 0x80170794, - 0x80170AC4, 0x801712F8, 0x80171E00, 0x801727D8, - 0x801741DC, 0x80174504, 0x801747F0, 0x80174A30, - 0x80174C10, 0x8017599C, 0x80176490, 0x80176860, - 0x80172AE4, 0x801736BC, 0x80173CB4, 0x80173EC0, - 0x801772E0, 0x801776E8, 0x80177B40, 0x80177E78, -}; - -VTABLE D_80196A10 = { - 0x801782C8, 0x80178728, 0x801789D8, 0x80179370, - 0x80179C28, 0x8017B068, 0x8017B78C, 0x8017BD68, - 0x8017BF34, 0x8017C418, 0x8017CF60, 0x8017D8E8, - 0x8017E074, 0x8017E284, 0x8017EA0C, 0x8017F1C0, - 0x80180818, 0x80181014, 0x80181110, 0x80181AF0, - 0x80181F64, 0x80182D9C, 0x801835AC, 0x80183E38, - 0x80184538, 0x80184B24, 0x80184CA4, 0x801856A4, - 0x80185788, 0x80185A9C, 0x80186750, 0x80186E30, - 0x80189914, 0x8018CC54, 0x8018DDCC, 0x8018E164, - 0x8018E608, 0x8017C418, 0x80156050, 0x801567B8, - 0x8015A44C, 0x8015849C, 0x80158528, 0x8015882C, - 0x80158924, 0x80158C40, 0x80158DB4, 0x80159164, - 0x80159BA0, 0x8015A144, 0x801585A0, 0x80158604, - 0x801586A8, 0x801587AC, -}; - -VTABLE D_80196AE8 = { - 0x8016D1E8, 0x8016D81C, 0x8016DD0C, 0x8016E15C, - 0x8016EE5C, 0x8016F240, 0x8016F7C8, 0x8016FB58, - 0x8016FFF8, 0x80170638, 0x80170A24, 0x80170D88, - 0x801717F0, 0x80172234, 0x80172A3C, 0x80174284, - 0x801746E0, 0x8017499C, 0x80174B7C, 0x80175754, - 0x801760FC, 0x80176DE0, 0x80173260, 0x80173AF4, - 0x80173E40, 0x80174144, 0x80177438, 0x8017782C, - 0x80177CBC, 0x80177FB4, 0x80178420, 0x8017883C, - 0x80178B18, 0x8017982C, 0x8017A390, 0x8017B3C4, - 0x8017B8F4, 0x8017BEF4, 0x8017C1FC, 0x8017CAF8, -}; - -VTABLE D_80196B88 = { - 0x8017D430, 0x8017DBB8, 0x8017E1EC, 0x8017E54C, - 0x8017EDDC, 0x8017F988, 0x80180B58, 0x801810D0, - 0x801815F4, 0x80181CFC, 0x8018271C, 0x80183428, - 0x80183A1C, 0x80183FF4, 0x801848A4, 0x80184C64, - 0x80185224, 0x80185748, 0x80185968, 0x80186248, - 0x80186A20, 0x80188238, 0x8018B228, 0x8018D4C8, - 0x8018DFB4, 0x8018E3B0, 0x8018F368, 0x80156594, - 0x80157738, 0x8015A92C, 0x80158508, 0x80158564, - 0x801588D0, 0x80158B10, 0x80158CA8, 0x80158EEC, - 0x80159ADC, 0x80159EF0, 0x8015A31C, 0x80158668, - 0x80158688, 0x80158744, 0x8015880C, -}; - -u32 D_80196C34[] = { - BANK_INDEX(2, 315), - BANK_INDEX(2, 316), - BANK_INDEX(2, 317), - BANK_INDEX(2, 318), - BANK_INDEX(2, 319), - BANK_INDEX(2, 320), -}; - - -extern const char D_801972D0[]; -extern s32 D_800BE514; - -extern u32 D_800BE4FC; - - -extern struct { - s32 unk0; - Vector unk4; - Vector unk10; - f32 unk1C; - u32 unk20; - u8 unk21; -} *D_8012E944; - -void func_80177000_ovl3(struct GObj *arg0); -void func_8016C558_ovl3(struct GObj *arg0); - -void func_80152348_ovl3(f32); - -extern s32 D_80196D48[]; -extern u16 D_800D6FB0; -extern f32 D_80197840; - -extern f32 D_80192704, D_801926E8; - -// very close if you ask me -// just need to fix the switch case and -// separate some deduplicated immediate loads -#ifdef NON_MATCHING -void func_8016BF60_ovl3(struct GObj *arg0) { - if (gKirbyState.unk28 != 0) { - gKirbyState.action = 0x1F; - gKirbyState.previousAction = 0x1F; - func_801DB1E0_ovl3(); - func_800AFA14(); - } - D_800DF150[D_8004A7C4->objId] = func_8016C558_ovl3; - assign_new_process_entry(gEntityGObjProcessArray3[D_8004A7C4->objId], func_80177000_ovl3); - func_8011C8F8(); - func_800A9864(D_80196D48[gKirbyState.unk4], 0x20, 0x10); - gKirbyState.unk154 = 2; - if (D_800D6FB0 != 0) { - gKirbyState.inhaledEntityData = 0; - gKirbyState.isHoldingEntity = 0; - gKirbyState.unk4 = 0; - switch (D_800D6FB0 >> 8) { - case 1: - func_80227F38_ovl19(); - break; - case 2: - gKirbyState.abilityState = 0x4B; - break; - } - } - if (gKirbyState.unk4 == 1) { - D_800E0490[D_8004A7C4->objId] = &D_80192704; - } else { - D_800E0490[D_8004A7C4->objId] = &D_801926E8; - } - func_800F8E6C(arg0); - func_80152348_ovl3(20.0f); - D_8012E944 = func_800FF144(); - if (D_8012E944 != 0) { - D_8012E944->unk10.x = 18.0f; - D_8012E944->unk10.y = 20.0f; - D_8012E944->unk10.z = -240.0f; - D_8012E944->unk21 = 0; - } - if (gKirbyState.unk4 != 0) { - func_8011CCB8(); - } - gKirbyState.floatTimer = 0xF0; - D_80198830.unk0 = 0; - D_80198830.unk2 = 2; - if (D_800BE4FC == 2) { - switch (D_800BE514 & 0x7FFFFFFF) { - case 1: - gEntityVtableIndexArray[D_8004A7C4->objId] = 0; - break; - case 0: - case 9: - if (D_800BE514 & 0x80000000) { - D_800E6A10[D_8004A7C4->objId] = -1.0f; - gKirbyState.unkB = 4; - } else { - D_800E6A10[D_8004A7C4->objId] = 1.0f; - gKirbyState.unkB = 3; - } - gEntityVtableIndexArray[D_8004A7C4->objId] = 0x47; - break; - case 4: - case 11: - if (D_800BE514 & 0x80000000) { - D_800E6A10[D_8004A7C4->objId] = -1.0f; - } else { - D_800E6A10[D_8004A7C4->objId] = 1.0f; - } - gKirbyState.unkB = 1; - gEntityVtableIndexArray[D_8004A7C4->objId] = 0x47; - break; - case 12: - gKirbyState.unk3C = (D_800BE514 & 0x7FFFFFFF); - if (D_800BE514 & 0x80000000) { - D_800E6A10[D_8004A7C4->objId] = -1.0f; - } else { - D_800E6A10[D_8004A7C4->objId] = 1.0f; - } - gKirbyState.unkB = 2; - gEntityVtableIndexArray[D_8004A7C4->objId] = 0x47; - break; - case 5: - case 6: - if (gKirbyState.unk4 == 0) { - gKirbyState.unk3C = (D_800BE514 & 0x7FFFFFFF); - gKirbyState.unkB = 5; - } else { - gKirbyState.unk3C = 0; - if ((D_800BE514 & 0x7FFFFFFF) == 5) { - gKirbyState.unkB = 2; - } else { - gKirbyState.unkB = 1; - } - } - if (D_800BE514 & 0x80000000) { - D_800E6A10[D_8004A7C4->objId] = -1.0f; - } else { - D_800E6A10[D_8004A7C4->objId] = 1.0f; - } - gEntityVtableIndexArray[D_8004A7C4->objId] = 0x47; - break; - case 7: - case 8: - if (gKirbyState.unk4 == 0) { - gKirbyState.unk3C = (D_800BE514 & 0x7FFFFFFF); - gKirbyState.unkB = 6; - } else { - gKirbyState.unk3C = 0; - gKirbyState.unkB = 1; - } - if (D_800BE514 & 0x80000000) { - D_800E6A10[D_8004A7C4->objId] = -1.0f; - } else { - D_800E6A10[D_8004A7C4->objId] = 1.0f; - } - gEntityVtableIndexArray[D_8004A7C4->objId] = 0x47; - break; - default: - print_error_stub(&D_801972D0, (D_800BE514 & 0x7FFFFFFF)); - gEntityVtableIndexArray[D_8004A7C4->objId] = 0; - break; - } - } else { - gEntityVtableIndexArray[D_8004A7C4->objId] = 0; - } - call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 0x56, vtbl_80196990); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016BF60_ovl3.s") -#endif - -void func_8016C510_ovl3(struct GObj *arg0) { - call_virtual_function(gEntityVtableIndexArray[D_8004A7C4->objId], 0x56, vtbl_80196990); -} - -extern f32 gKirbyHp; -extern s32 D_800D6B54; -extern u32 gGameTampered; - - -extern s32 D_80193168; -extern f32 D_80197344; -extern f32 D_80197348; -void func_8011D4A4(f32); -s32 func_801693C4_ovl3(s32); -s32 random_soft_s32_range(s32); -s32 func_8012209C(void); - -// kirby jump start? -void func_8016C558_ovl3(struct GObj *arg0) { - f32 **tmp; - s32 idx; - Vector sp24; - - func_8011E548(); - func_8011DAF8(); - if (gKirbyState.unk17 != 0) { - gKirbyState.unkA = 0; - } - if (gKirbyState.unk68 == 2) { - func_8015449C_ovl3(&D_80193168, 0); - } - call_virtual_function(D_800DDFD0[D_8004A7C4->objId], 0x53, &D_80196AE8); - if (func_8012209C() != 0) { - gKirbyState.unk17 = 1; - } - if (gKirbyState.unk17 != 0) { - func_8015A9F8_ovl3(); - } - if ((gKirbyState.abilityInUse == 0xF) && (gKirbyState.unk38 == D_80197344)) { - func_80121BCC(0xF9); - } else { - func_80121BCC(0xFB); - } - func_80121A04(); - func_80121D3C(); - func_801212A4(); - if ((D_800D6B54 == 0) && (gKirbyHp != 0.0f)) { - if ((gKirbyState.unk15C != 0) && (gKirbyState.unk14 == 0)) { - func_8011D4A4(gKirbyState.unk158); - } - func_80121F50(); - } - if (D_800E3210[D_8004A7C4->objId] <= 0.0f) { - gKirbyState.isTurning &= ~4; - } - if (gKirbyState.ceilingCollisionNext != 0) { - if (gKirbyState.vel[1] > 8.0f) { - if (gKirbyState.action != 0xD) { - if (gKirbyState.action != 9) { - idx = func_801693C4_ovl3(1); - if (idx != -1) { - tmp = D_800E0490[D_8004A7C4->objId]; - D_800EC2E0[idx].as_s32 = 0; - D_800EC660[idx] = tmp[1][1] - + tmp[1][0]; - } - } - } - } - } - if (gKirbyState.action == 0xB) { - func_800B2340(&sp24, D_800DFBD0[D_8004A7C4->objId][2], 0xFFFF); - if (!(&sp24)) { - // fake match :) - } - D_8012E944->unk4.x = sp24.x; - D_8012E944->unk4.y = sp24.y; - D_8012E944->unk4.z = sp24.z; - D_8012E944->unk1C = gEntitiesAngleYArray[D_8004A7C4->objId]; - } else { - if (gEntityVtableIndexArray[D_8004A7C4->objId] != 0x50) { - func_800FF200(D_8012E944); - } - } - if ((gKirbyState.action != 0xD) - && (gKirbyState.action != 6) - && (gKirbyState.ceilingCollisionNext != 0)) - { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = D_80197348; - } - } - if (gKirbyState.unk15 != 0) { - gKirbyState.unk15--; - } - if (gKirbyState.unk16 != 0) { - gKirbyState.unk16--; - } - if (D_800E8920[D_8004A7C4->objId] != 0) { - if (gGameTampered != 0) { - gKirbyState.floatTimer = random_soft_s32_range(0x3C) + 0x5A; - } else { - gKirbyState.floatTimer = 0xF0; - } - gKirbyState.unkBA = 0; - } - if (gKirbyState.action != 0x17) { - if (gKirbyState.unkD == -2) { - set_kirby_action_1(0x10, 1); - } - } - if (gKirbyState.abilityInUse != 1) { - if (D_80198830.unk0 == 0) { - D_80198830.unk2 = D_80198830.unk2 + 1; - if (D_80198830.unk2 < 2) { - D_80198830.unk0 = 0x1E; - } else { - D_80198830.unk0 = 0; - D_80198830.unk2 = 2; - } - } else if (D_80198830.unk0 > 0) { - D_80198830.unk0--; - } - } - if (gKirbyState.abilityInUse != 0xC) { - if (D_80198830.unkA == 0) { - if (D_800E8920[D_8004A7C4->objId] != 0 - || (D_800E8AE0[D_8004A7C4->objId] & 6)) - { - D_80198830.unk8 = 3; - } - } else { - D_80198830.unkA--; - } - } -} - -#ifdef __MIPS_TO_C -void func_8016CA8C_ovl3(struct GObj *arg0) { - gKirbyState.unk30 = 0; - gKirbyState.unk2C = 0; - func_8011CF58(); - D_800DDFD0[D_8004A7C4->objId] = 0; - if (gKirbyState.unk4 == 1) { - D_800E0490[D_8004A7C4->objId] = &D_80192704; - } else { - D_800E0490[D_8004A7C4->objId] = &D_801926E8; - } - if (gKirbyState.unk4 == 1) { - gKirbyState.unk15C = &D_801903E0; - } else { - gKirbyState.unk15C = &D_80190358; - } - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_8019734C; - if ((gKirbyState.unk4 == 2) && (func_800AA888(0x20007, D_8004A7C4) == 0)) { - func_80122F08(0x20007); - } - if (gKirbyState.unk150 == 0 || (D_800E8AE0[D_8004A7C4->objId] & 6)) { - if (gKirbyState.unk4 == 2) { - if ((gKirbyState.previousAction != 0) && (gKirbyState.previousAction != 0x11)) { - func_800AA78C(0x200C3, 0x20007, 12.0f); - } - func_801230E8(0x200C3, 0x200C4, 0); - func_800AFA14(); - } - phi_v1 = gKirbyState.unk4; - if (gKirbyState.unk4 == 0) { - phi_v1 = gKirbyState.unk4; - if (D_800E7B20[D_8004A7C4->objId] <= D_80197350) { - if (gKirbyState.previousAction != 0) { - func_800AA78C(0x200D3, 0x20007, 12.0f); - } - func_801230E8(0x200D3, 0x200D4, 0); - func_800AFA14(); - phi_v1 = gKirbyState.unk4; - } - } - if ((phi_v1 == 1) || ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0)) { - if (phi_v1 == 0) { - if (gKirbyState.previousAction != 0) { - func_800AA78C(0x2009B, 0x20007, 12.0f); - } - func_801230E8(0x2009B, 0x2009C, 0); - } else { - if (gKirbyState.previousAction != 0) { - func_800AA78C(0x20169, 0x20009, 12.0f); - } - func_801230E8(0x20169, 0x2016A, 0); - } - func_800AFA14(); - } - if (gKirbyState.previousAction != 0) { - func_800AA78C(0x2009B, 0x20007, 12.0f); - } - gKirbyState.unk44 = -1; -loop_34: - temp_s1 = random_soft_s32_range(8) + 8; - if (temp_s1 > 0) { -loop_35: - func_801230E8(0x2009B, 0x2009C, 1); - temp_s0 = phi_s0 + 1; - phi_s0 = temp_s0; - if (temp_s0 < temp_s1) { - goto loop_35; - } - } -loop_36: - temp_v0_6 = random_soft_s32_range(3); - if (temp_v0_6 == gKirbyState.unk44) { - goto loop_36; - } - D_8012E804 = temp_v0_6; - temp_s0_2 = (temp_v0_6 * 8) + &D_80196C34; - func_800AA78C(*temp_s0_2, 0x20007, 12.0f); - func_80123004(temp_s0_2, 0, 0); - while (gKirbyState.isTurning & 1 || func_800AF230() != 0) { - func_800AA78C(0x2009B, 0x20007, 12.0f); - } - finish_current_thread(1); - goto loop_38; - } - gKirbyState.unk3C = 0; - D_800E9AA0[D_8004A7C4->objId] = gKirbyState.turnDirection; - gKirbyState.isTurning |= 2; - while (1) { - if (gKirbyState.unk150 == 2) { - gKirbyState.unk30 = 1; - } else { - gKirbyState.unk30 = 0; - } - if (gKirbyState.unk3C != 0) { - if (gKirbyState.unk30 == 0) { - switch (gKirbyState.unk4) { - case 0: - func_800AA78C(0x20017, 0x20007, 3.0f); - break; - case 1: - func_800AA78C(0x2015B, 0x20009, 3.0f); - break; - case 2: - if (gKirbyState.previousAction != 0x11) { - func_800AA78C(0x200B9, 0x20007, 3.0f); - } - break; - } - } else { - switch (gKirbyState.unk4) { - case 0: - func_800AA78C(0x20015, 0x20007, 3.0f); - break; - case 1: - func_800AA78C(0x20159, 0x20009, 3.0f); - break; - case 2: - if (gKirbyState.previousAction != 0x11) { - func_800AA78C(0x200B7, 0x20007, 3.0f); - } - break; - } - } - } else { - gKirbyState.unk3C++; - } - if (gKirbyState.unk30 == 0) { - switch (gKirbyState.unk4) { - case 0: - func_801230E8(0x20017, 0x20018, 0); - break; - case 1: - func_801230E8(0x2015B, 0x2015C, 0); - break; - case 2: - func_801230E8(0x200B9, 0x200BA, 0); - break; - } - } else { - switch (gKirbyState.unk4) { - case 0: - func_801230E8(0x20015, 0x20016, 0); - break; - case 1: - func_801230E8(0x20159, 0x2015A, 0); - break; - case 2: - func_801230E8(0x200B7, 0x200B8, 0); - break; - } - } - D_800E9720[D_8004A7C4->objId] = 0xF; - while (D_800E9720[D_8004A7C4->objId]-- != 0) { - finish_current_thread(1); - } - if (D_800D6B54 == 0) { - play_sound(0xEB); - } - loop_86: - if ((gKirbyState.isTurning & 1) != 0) { - continue; - } - finish_current_thread(1); - goto loop_86; - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016CA8C_ovl3.s") -#endif - -extern s32 D_8012E7E0; -s32 ovl3_process_command_string(u8 *); - -void func_8016D1E8_ovl3(struct GObj *arg0) { - u8 cmd[] = {2, 3, 9, 0xB, 0xF}; - s32 phi_a0; - - D_800E98E0[D_8004A7C4->objId] = gKirbyState.unk150; - func_80153984_ovl3(); - func_8011CF58(); - if (ovl3_process_command_string(&cmd) != 0 || gKirbyState.unk17 != 0) { - gKirbyState.isTurning &= ~2; - return; - } - else if (gKirbyState.unk150 != 0) { - phi_a0 = gKirbyState.turnDirection; - if (phi_a0 == 0) { - if (gKirbyState.unk150 != D_800E98E0[D_8004A7C4->objId]) { - assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], func_8016C510_ovl3); - phi_a0 = D_8012E7E0; - if (1) {} - } - } else { - if (D_800E9AA0[D_8004A7C4->objId] == 0) { - assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], func_8016C510_ovl3); - phi_a0 = D_8012E7E0; - } - } - D_800E9AA0[D_8004A7C4->objId] = phi_a0; - } - else if (gKirbyState.unk150 != D_800E98E0[D_8004A7C4->objId]) { - assign_new_process_entry(gEntityGObjProcessArray[D_8004A7C4->objId], func_8016C510_ovl3); - } -} - - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016D3A8_ovl3.s") - -extern void func_800AECC0(f32); -extern void func_800AED20(f32); - -void func_8016D81C_ovl3(struct GObj *arg0) { - u8 cmd[] = {2, 4, 3, 9, 8, 7, 0xC, 0xF}; - - func_80153984_ovl3(); - if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { - func_800AECC0(2.0f); - func_800AED20(2.0f); - } else { - func_800AECC0(3.0f); - func_800AED20(3.0f); - } - if (ovl3_process_command_string(&cmd) == 0) { - func_801219C8(); - if (!(gKirbyState.isTurning & 1)) { - if (func_801210FC(&gKirbyState) == 0) { - if (!(gKirbyController.buttonHeld & 0x300)) { - if (D_800E9720[D_8004A7C4->objId] < 10) { - D_800E9720[D_8004A7C4->objId]++; - } - } - } else if (gKirbyController.buttonHeld & 0x300) { - if ((D_800E9720[D_8004A7C4->objId] > 0) && (D_800E9720[D_8004A7C4->objId] < 7)) { - gKirbyState.unk38 = arg0->unk40 * 0.5f; - if (gKirbyState.unk38 >= 25.0f) { - gKirbyState.unk38 -= 25.0f; - } - set_kirby_action_1(2, 4); - } else { - D_800E9720[D_8004A7C4->objId] = 0; - } - } - } else { - gKirbyState.unk44 = 0; - D_800E9720[D_8004A7C4->objId] = 0; - } - } - func_8011ED68(); -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016DA14_ovl3.s") - -void func_8016DD0C_ovl3(struct GObj *arg0) { - u8 cmd[] = {4, 2, 3, 9, 8, 7, 0xF}; - - func_80153984_ovl3(); - func_8011CF58(); - if (ovl3_process_command_string(&cmd) == 0) { - if ((D_800E64D0[D_8004A7C4->objId] == 0.0f) && ((gKirbyController.buttonHeld & 0x300) == 0)) { - gKirbyState.unk7 = 0; - set_kirby_action_1(0, 1); - } else if (func_801215DC() == 2) { - gKirbyState.isTurning |= 1; - } - func_8011ED68(); - } -} - - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016DDE8_ovl3.s") - -extern const f32 D_80197364; -extern const f32 D_801973A4; -extern s32 *D_80190F2C; -extern u16 D_8012BCA0; -extern s32 *D_801903E0, *D_80190358; -extern s32 D_8019395C; - -extern f32 D_80197368; -extern f32 D_8019736C; -void func_8016854C_ovl3(s32 *, s32, f32); - -u8 D_80196C64[] = {1, 5, 9, 8, 7, 6, 0xF}; - -#ifdef NON_MATCHING -void func_8016E15C_ovl3(struct GObj *arg0) { - u8 cmd[] = {1, 5, 9, 8, 7, 6, 0xF}; - - func_80153984_ovl3(); - if (ovl3_process_command_string(&cmd) != 0) { - gKirbyState.unk15C = (gKirbyState.unk4 == 1) ? &D_80190358 : &D_801903E0; - } - else if (gKirbyState.ceilingCollisionNext != 0) { - if (func_80122460() != 0) { - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_80197364; - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = D_80197364; - D_8012BCA0 &= 0x07; - gKirbyState.unk15C = (gKirbyState.unk4 == 1) ? &D_801903E0 : &D_80190358; - set_kirby_action_1(0xA, 0xD); - if (gKirbyState.unk4 == 2) { - gKirbyState.unk4 = 0; - gKirbyState.unkD = -3; - return; - } - } else { - if (((D_800E8AE0[D_8004A7C4->objId] & 6) == 0) - && (gKirbyState.unk68 == 0) - && (func_8015449C_ovl3(&D_8019395C, 0) != 0) - && (gKirbyState.unkD == 2)) - { - gKirbyState.unk4 = 0; - gKirbyState.unkD = -3; - } - D_800E3210[D_8004A7C4->objId] = 0.0f; - func_800BB468(0xB, 0xA); - if (func_80179130_ovl3() == 0) { - set_kirby_action_1(6, 6); - } - } - } else { - if (gKirbyState.unk30 != 0) { - if (func_80179130_ovl3() == 0) { - set_kirby_action_1(6, 6); - } - } else { - if (gKirbyState.isFullJump == 0) { - func_8011EBD4(); - } - if ((D_800E83E0[D_8004A7C4->objId] & 0xFFFF) == 2) { - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = D_80197368; - func_800BB468(0xB, 0xA, D_800E3750, &gKirbyState); - if (func_80179130_ovl3() == 0) { - set_kirby_action_1(6, 6); - } - } else { - if ((D_800E8AE0[D_8004A7C4->objId] & 6) == 0) { - if ((gKirbyState.unk9 & 1) == 0) { - if (gKirbyState.unkCC < D_800E3210[D_8004A7C4->objId]) { - if (gKirbyState.unk4 == 0) { - func_8016854C_ovl3(&D_80190F2C, arg0->unk3C->unk10, 1.0f); - } - } - } - } - } - } - } - if (gKirbyState.horizontalCollision == 0) { - func_8011ED68(); - } else { - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_8019736C; - } - if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { - func_800AECC0(1.0f); - func_800AED20(1.0f); - return; - } - func_800AECC0(2.0f); - func_800AED20(2.0f); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016E15C_ovl3.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016E638_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016E8A0_ovl3.s") - -s32 func_80111A04(s32, s32); - -void func_8016EE5C_ovl3(struct GObj *arg0) { - if ((gKirbyState.unkCC < D_800E3210[D_8004A7C4->objId]) && (gKirbyState.unk4 == 0)) { - func_80111C4C(func_80111A04(&D_80190F2C, D_8004A7C4->objId)); - } - if (gKirbyController.buttonHeld & 0x8000) { - D_800E64D0[D_8004A7C4->objId] = D_800EA8A0[D_8004A7C4->objId]; - D_800E6690[D_8004A7C4->objId] = D_800EAA60[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_800EAC20[D_8004A7C4->objId]; - set_kirby_action_1(3, 5); - } -} - -extern f32 D_8019737C, D_80197380; -s32 func_800AA888(s32); - -// regalloc -// this file sucks -#ifdef NON_MATCHING -void func_8016EF5C_ovl3(struct GObj *arg0) { - func_8011CF58(); - D_800DDFD0[D_8004A7C4->objId] = 5; - D_800E0490[D_8004A7C4->objId] = (gKirbyState.unk4 == 1) ? &D_80192704 : &D_801926E8; - gKirbyState.unk15C = (gKirbyState.unk4 == 1) ? &D_801903E0 : &D_80190358; - D_800E83E0[D_8004A7C4->objId] = 0; - D_800E9560[D_8004A7C4->objId] = 0; - D_800E9720[D_8004A7C4->objId] = 0x17; - if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { - func_80120A28(); - D_800E3750[D_8004A7C4->objId] = D_8019737C; - D_800E3C90[D_8004A7C4->objId] = 1.0f; - } else { - D_800E3750[D_8004A7C4->objId] = D_80197380; - D_800E3C90[D_8004A7C4->objId] = 16.0f; - } - switch (gKirbyState.unk4) { - case 0: - if (func_800AA888(0x20007) == 0) { - func_80122F08(0x20007); - } - if (gKirbyState.previousAction == 0x1B) { - func_800AA78C(0x20089, 0x20007, 12.0f); - } - func_801230E8(0x20089, 0x2008A, 0); - break; - case 1: - if (func_800AA888(0x20009) == 0) { - func_80122F08(0x20009); - } - if (gKirbyState.previousAction == 0x1B) { - func_800AA78C(0x20165, 0x20009, 12.0f); - } - func_801230E8(0x20165, 0x20166, 0); - break; - case 2: - if (func_800AA888(0x20007) == 0) { - func_80122F08(0x20007); - } - if (gKirbyState.previousAction == 0x1B) { - func_800AA78C(0x200C1, 0x20007, 12.0f); - } - func_801230E8(0x200C1, 0x200C2, 0); - break; - } - func_800AFA14(); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016EF5C_ovl3.s") -#endif - - -extern s32 D_800D6FAC; -extern f32 D_80197384; -extern f32 D_80197388; -extern f32 D_8019738C; -u8 cmd_8016F240[] = {1, 5, 9, 8, 7, 6, 0xF}; -// im sure somebody can do this one :) -#ifdef NON_MATCHING -void func_8016F240_ovl3(struct GObj *arg0) { - - func_80153984_ovl3(); - func_8011CF58(); - if (ovl3_process_command_string(&cmd_8016F240) == 0) { - if ((gKirbyState.unk17 == 0) || (gKirbyState.unkB != 2)) { - if ((gKirbyState.unk17 == 0) && gKirbyController.buttonPressed & 0x8000) { - D_800E9560[D_8004A7C4->objId] = 2; - } else { - if (D_800E9560[D_8004A7C4->objId] != 0) { - D_800E9560[D_8004A7C4->objId]--; - } - } - if (D_800E8920[D_8004A7C4->objId] != 0) { - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = D_80197384; - if (D_800D6B54 == 0) { - play_sound(0x149); - } - if (gKirbyState.unk17 != 0) { - D_800E9560[D_8004A7C4->objId] = 0; - } - if (D_800E9560[D_8004A7C4->objId] != 0) { - func_80122B40(); - set_kirby_action_1(3, 5); - } else if (D_800E64D0[D_8004A7C4->objId] == 0.0f) { - gKirbyState.unk7 = 0; - if ((gKirbyState.unk17 == 0) && (D_800D6FAC == 0) - && (gKirbyController.buttonHeld & 0x400 != 0) - && (gKirbyState.unk4 == 1)) - { - set_kirby_action_1(0xB, 0x10); - } else { - set_kirby_action_1(7, 7); - } - } else { - gKirbyState.unk44 = 0; - if (gKirbyState.unk7 == 0) { - func_80122B40(); - set_kirby_action_1(1, 3); - } else { - gKirbyState.unk38 = 0.0f; - set_kirby_action_1(2, 4); - } - func_80122FB0(1); - } - } else if ((D_800E83E0[D_8004A7C4->objId] & 0xFFFF) == 2) { - D_800EC2E0[0].as_s32 = 0x80000000; - gKirbyState.unk7 = 0; - if ((D_800E8AE0[D_8004A7C4->objId] & 6) == 0) { - D_800E3210[D_8004A7C4->objId] = 8.0f; - } else { - D_800E3210[D_8004A7C4->objId] = 4.0f; - } - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3C90[D_8004A7C4->objId] = 0.0f; - set_kirby_action_1(5, 5); - } else if (func_80179130_ovl3(5) != 0) { - gKirbyState.unk7 = 0; - } else { - if ((D_800E8AE0[D_8004A7C4->objId] & 6) != 0) { - D_800E3750[D_8004A7C4->objId] = D_80197388; - D_800E3C90[D_8004A7C4->objId] = 1.0f; - } else if (gKirbyState.unk4 == 0) { - if (D_800E9720[D_8004A7C4->objId]-- == 0) { - set_kirby_action_1(8, 8); - } - } - } - } - } else { - gKirbyState.unk7 = 0; - } - if (gKirbyState.horizontalCollision == 0) { - func_8011ED68(); - } else { - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_8019738C; - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016F240_ovl3.s") -#endif - -// cmd_strings - -u8 D_80196C74[] = {1, 2, 3, 9, 4, 0xD, 0xF}; -u8 D_80196C7C[] = {1, 5, 9, 8, 7, 0xF}; -u8 D_80196C84[] = {1, 2, 0xF}; -u8 D_80196C88[] = {1, 0xF}; -u8 D_80196C8C[] = {2, 9, 0xF}; -u8 D_80196C90[] = {5, 9, 0xF}; -u8 D_80196C94[] = {9, 2, 0xF}; -u8 D_80196C98[] = {1, 2, 9, 0xF}; -u8 D_80196C9C[] = {3, 0xF}; - - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016F6DC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016F7C8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016F80C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016FB58_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016FD88_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8016FFF8_ovl3.s") - - - -#ifdef NON_MATCHING -void func_801702F0_ovl3(struct GObj *arg0) { - gKirbyState.unk30 = 0; - gKirbyState.unk7 = 0; - func_8011CF58(); - D_800DDFD0[D_8004A7C4->objId] = 9; - gKirbyState.unk68 = (gKirbyState.unk68 != 3) ? 1 : 3; - gKirbyState.unk15C = (gKirbyState.unk4 == 1) ? &D_801903E0 : &D_80190358; - if (gKirbyState.ceilingCollisionNext != 0) { - play_sound(0xFF); - // something's wrong here { - if ((gKirbyState.unk4 == 1) || (gKirbyState.previousAction == 9)) { - D_800E3210[D_8004A7C4->objId] = 5.0f; - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3C90[D_8004A7C4->objId] = 5.0f; - } else { - D_800E3210[D_8004A7C4->objId] = D_801973A4; - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3C90[D_8004A7C4->objId] = 5.0f; - } - // } - if (D_800E6A10[D_8004A7C4->objId] == -1.0f) { - if (gKirbyState.unk4 == 1) { - func_801230E8(0x20177, 0x20178, 1); - } else { - func_801230E8(0x200F7, 0x200F8, 1); - } - } else if (gKirbyState.unk4 == 1) { - func_801230E8(0x20179, 0x2017A, 1); - } else { - func_801230E8(0x200FB, 0x200FC, 1); - } - D_800E3210[D_8004A7C4->objId] = 0.0f; - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3C90[D_8004A7C4->objId] = 0.0f; - } else { - play_sound(0x101); - D_800E3210[D_8004A7C4->objId] = -5.0f; - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3C90[D_8004A7C4->objId] = 5.0f; - if (D_800E6A10[D_8004A7C4->objId] == -1.0f) { - func_801230E8(0x200F9, 0x200FA, 1); - } else { - func_801230E8(0x200FD, 0x200FE, 1); - } - } - gKirbyState.unk30++; - func_800AFA14(); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801702F0_ovl3.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80170638_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80170794_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801708A0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80170A24_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80170AC4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80170D88_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801712F8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801717F0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80171E00_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80172234_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801727D8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80172A3C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80172AE4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80173260_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801736BC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80173AF4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80173CB4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80173E40_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80173EC0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017404C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174144_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801741DC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174284_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174504_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174680_ovl3.s") - -extern u16 D_800D6FEA; -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801746E0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801747F0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017492C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017499C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174A30_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174AEC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174B7C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80174C10_ovl3.s") - -extern f32 D_8019747C; - -void func_80175754_ovl3(struct GObj *arg0) { - func_80153984_ovl3(); - func_801217B8(); - if (gKirbyState.horizontalCollision != 0) { - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_8019747C; - } - if (gKirbyState.unk30 != 0) { - if (gKirbyState.unk8 != 0) { - set_kirby_action_1(0xB, 0x10); - } else if (func_80179130_ovl3() == 0) { - if (D_800E8920[D_8004A7C4->objId] == 0) { - set_kirby_action_1(6, 6); - } else { - switch (gKirbyState.unk4) { - case 0: - if ((gKirbyController.buttonHeld & 0x400) != 0) { - set_kirby_action_1(9, 0xE); - } else { - set_kirby_action_1(0, 1); - } - break; - case 1: - if ((gKirbyController.buttonHeld & 0x400) != 0) { - set_kirby_action_1(0xB, 0x10); - } else { - set_kirby_action_1(0, 1); - } - break; - case 2: - if ((gKirbyController.buttonHeld & 0x400) != 0) { - set_kirby_action_1(0x12, 0x12); - } else { - set_kirby_action_1(0, 1); - } - break; - } - } - } - gKirbyState.unk24 = 0; - D_800E7CE0[D_8004A7C4->objId] = 0x2D; - if ((gKirbyState.unk4 != 0) && (gKirbyState.damageType >= 2)) { - D_800E7CE0[D_8004A7C4->objId] += 0x1A; - } - } - func_8011ED68(); -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017599C_ovl3.s") - - -extern f32 D_801974B4; - -void func_801760FC_ovl3(struct GObj *arg0) { - struct GObj *temp_v0; - u32 temp_v1; - u8 temp_v0_2; - - func_80153984_ovl3(); - func_801217B8(); - if (gKirbyState.horizontalCollision != 0) { - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = D_801974B4; - } - if (gKirbyState.unk30 != 0) { - if (gKirbyState.unk8 != 0) { - set_kirby_action_1(0xB, 0x10); - } else if (func_80179130_ovl3() == 0) { - if (D_800E8920[D_8004A7C4->objId] == 0) { - set_kirby_action_1(6, 6); - } else { - switch (gKirbyState.unk4) { - case 0: - if ((gKirbyController.buttonHeld & 0x400) != 0) { - set_kirby_action_1(9, 0xE); - } else { - set_kirby_action_1(0, 1); - } - break; - case 1: - if ((gKirbyController.buttonHeld & 0x400) != 0) { - set_kirby_action_1(0xB, 0x10); - } else { - set_kirby_action_1(0, 1); - } - break; - case 2: - if ((gKirbyController.buttonHeld & 0x400) != 0) { - set_kirby_action_1(0x12, 0x12); - } else { - set_kirby_action_1(0, 1); - } - break; - } - } - } - gKirbyState.unk24 = 0; - } -} - -extern u8 D_80198825; -extern Gfx **gDisplayListHeads; -// When the easy GBI macro function doesnt match!!!!!!!!!!!!!!!!!!!!!!! -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801762E0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80176398_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017644C_ovl3.s") - - -extern s32 D_80198824; -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80176484_ovl3.s") - -extern f32 D_801974B8, D_801974BC; -extern s32 D_800D6B58; -extern s32 D_800BE4F8; -extern void func_800B1870(s32); - -void func_80176814_ovl3(struct GObj *arg0); - -// this function sucks -// one instruction length difference btw -#ifdef NON_MATCHING -void func_80176490_ovl3(struct GObj *arg0) { - f32 temp_f12; - - gKirbyState.unk30 = 1; - func_800AECC0(D_800D6B10); - func_800AED20(D_800D6B10); - D_800DF150[D_8004A7C4->objId] = func_80176814_ovl3; - func_80122FB0(0); - func_800B1F68(gEntityGObjProcessArray4[D_8004A7C4->objId], func_800B1870); - func_80122F08(0x20007); - temp_f12 = D_801974BC; - gEntitiesScaleXArray[D_8004A7C4->objId] = D_801974B8; - gEntitiesScaleYArray[D_8004A7C4->objId] = D_801974B8; - gEntitiesScaleZArray[D_8004A7C4->objId] = D_801974B8; - gKirbyState.unk15C = 0; - D_800DF310[D_8004A7C4->objId] = 0; - D_800D6F10 = 0; - gKirbyState.numberInhaled = 0; - gKirbyState.unk7 = 0; - gKirbyState.unk4 = 0; - gKirbyState.isInhaling = 0; - gKirbyState.isInhalingBlock = 0; - gKirbyState.numberInhaling = gKirbyState.numberInhaled; - D_800E8060[D_8004A7C4->objId] = -1; - D_800E6690[D_8004A7C4->objId] = 0.0f; - D_800E64D0[D_8004A7C4->objId] = D_800E6690[D_8004A7C4->objId]; - D_800E6850[D_8004A7C4->objId] = temp_f12; - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = temp_f12; - gEntitiesAngleXArray[D_8004A7C4->objId] = 0.0f; - if (!(gKirbyState.isTurning & 1)) { - gEntitiesAngleYArray[D_8004A7C4->objId] = D_800E17D0[D_8004A7C4->objId]; - } - func_800FB914(0); - func_80020C88_ovl3(); - func_800A7EB4(); - if ((gKirbyState.floorCollisionNext != 0) && (gKirbyState.ceilingCollisionNext != 0)) { - gKirbyState.unk30 = 0; - } - if ((gKirbyHp == 0.0f) && (D_800E7B20[D_8004A7C4->objId] != 0.0f)) { - play_sound(0xDC); - } else if (gKirbyState.damageType >= 2) { - play_sound(0xD9); - } else { - play_sound(0xD8); - } - func_8011DA34(); - func_80020998_ovl3(0, 0x7800); - play_music(0, 5); - func_80176398_ovl3(); - func_800BB498(); - func_800BB468(2, 0); - D_800D6B58 = 0x400; - D_800D6B54 = 1; - D_800BE4F8 = 6; - func_801230E8(0x20065, 0x20066, 1); - D_800D6B58 = 0x5A; - D_800D6B54 = 1; - D_800BE4F8 = 6; - func_800AFA14(); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80176490_ovl3.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80176814_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80176860_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80176DE0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177000_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177098_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801770E0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177130_ovl3.s") - -void func_8017716C_ovl3(struct GObj *arg0) { - -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177174_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177270_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801772CC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801772E0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177438_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801776E8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017782C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177B40_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177CBC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177E78_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80177FB4_ovl3.s") - -#ifdef NON_MATCHING -void func_801782C8_ovl3(struct GObj *arg0) { - func_8011CF58(); - D_800DDFD0[D_8004A7C4->objId] = 0x1E; - D_800E0490[D_8004A7C4->objId] = &D_801926E8; - gKirbyState.unk15C = &D_80190358; - D_800E3750[D_8004A7C4->objId] = gKirbyState.unkC4; - D_800E3C90[D_8004A7C4->objId] = ABSF(gKirbyState.unkC8); - D_800E64D0[D_8004A7C4->objId] = D_800E6A10[D_8004A7C4->objId] * gKirbyState.unkC0; - D_800E6690[D_8004A7C4->objId] = D_800E6A10[D_8004A7C4->objId] * gKirbyState.unkBC; - D_800E6850[D_8004A7C4->objId] = 0.0f; - func_801230E8(0x20087, 0x20088, 0); - func_800AFA14(); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801782C8_ovl3.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80178420_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80178728_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017883C_ovl3.s") - -extern void func_80122CA0(struct GObj *arg0, s32 arg1, f32 arg2); -extern f32 D_80197528; - -void func_801789D8_ovl3(struct GObj *arg0) { - func_8011CF58(); - D_800DDFD0[D_8004A7C4->objId] = 0x20; - D_800E0490[D_8004A7C4->objId] = &D_801926E8; - gKirbyState.unk15C = &D_80190358; - D_800E3750[D_8004A7C4->objId] = 0.0f; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = D_80197528; - gKirbyState.unk44 = 0; - gKirbyState.unk3C = 2; - D_800E9560[D_8004A7C4->objId] = 8; - func_800AA78C(0x200CF, 0x20007, 3.0f); - func_801230E8(0x200CF, 0x200D0, 0); - D_800DF310[D_8004A7C4->objId] = func_80122CA0; - func_800AFA14(); -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80178B18_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80179060_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80179130_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80179370_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017982C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80179C28_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017A2C0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017A390_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017B068_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017B3C4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017B78C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017B8F4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017BD68_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017BEF4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017BF34_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017C1FC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017C418_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017CAF8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017CF60_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017D430_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017D8E8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017DAD8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017DBB8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017DF60_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017E074_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017E1EC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017E284_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017E54C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017EA0C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017EDDC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017F1C0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017F8B8_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8017F988_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80180818_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80180B58_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80181014_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801810D0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80181110_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801815F4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80181AF0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80181CFC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80181F64_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80182658_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018271C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80182D9C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801831EC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80183428_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801835AC_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80183A1C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80183E38_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80183FF4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80184538_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801848A4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80184B24_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80184C64_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80184CA4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80185180_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80185224_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_801856A4_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80185748_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80185788_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80185968_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80185A9C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80186248_ovl3.s") - - -// s32 func_801693C4_ovl3(s32); -s32 func_801210B4(void); - -// regalloc -// this file sucks -#ifdef NON_MATCHING -void func_80186750_ovl3(struct GObj *arg0) { - if (gKirbyState.abilityInUse == 0) { - gKirbyState.unk30 = 0; - gKirbyState.unk7 = 0; - gKirbyState.unk7C = 0.0f; - gKirbyState.unk80 = gKirbyState.unk7C; - func_8011CF58(); - gKirbyState.abilityInUse = gKirbyState.ability; - D_800DDFD0[D_8004A7C4->objId] = 0x3C; - D_800E0490[D_8004A7C4->objId] = &D_801926E8; - gKirbyState.unk15C = &D_80190358; - gKirbyState.unk154 = 2; - D_800E98E0[D_8004A7C4->objId] = 0; - gKirbyState.unk40 = D_80197840; - gKirbyState.unk78 = -D_800E6A10[D_8004A7C4->objId]; - D_800EC2E0[func_801693C4_ovl3(0x11)].as_s32 = 0; - D_800EC2E0[func_801693C4_ovl3(0x11)].as_s32 = 1; - func_80120A28(); - gKirbyState.unk3C = 0; - gKirbyState.unk44 = 0; - func_801230E8(0x2007F, 0x20080, 1); - D_800E9560[D_8004A7C4->objId] = 0; - if ((gKirbyController.buttonHeld & 0x300) != 0) { - gKirbyState.unk44 = - gKirbyState.unk3C = 3; - } else { - gKirbyState.unk44 = - gKirbyState.unk3C = 2; - } - } - switch (gKirbyState.unk44) { - case 2: - func_801230E8(0x2007D, 0x2007E, 1); - func_800AFA14(); - case 3: - if (func_801210B4() == 1) { - D_800E6690[D_8004A7C4->objId] = 0.25f; - D_800E6850[D_8004A7C4->objId] = 2.0f; - } else { - D_800E6690[D_8004A7C4->objId] = -0.25f; - D_800E6850[D_8004A7C4->objId] = 2.0f; - } - func_801230E8(0x20083, 0x20084, 0); - func_800AFA14(); - case 1: - gKirbyState.abilityInUse = 0; - gKirbyState.unk78 = D_800E6A10[D_8004A7C4->objId]; - func_801230E8(0x20081, 0x20082, 1); - } - gKirbyState.unk30++; - func_800AFA14(); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80186750_ovl3.s") -#endif - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80186A20_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80186E30_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80187FD0_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80188078_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018813C_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80188184_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80188238_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_80189914_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018B188_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018B228_ovl3.s") - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018CC54_ovl3.s") - -void func_8018D460_ovl3(struct GObj *arg0, s32 arg1, f32 arg2) { - if (arg1 == 0 && arg2 != 0.0f) { - if (gKirbyState.unk30 == 0 && gKirbyState.unk17 == 0) { - func_8011DC5C(); - func_8011DC04(0x3C); - } - } -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018D4C8_ovl3.s") - - -extern u32 *D_8018DF78; -extern f32 D_800E6A10[]; - -#ifdef NON_MATCHING -void func_8018DDCC_ovl3(struct GObj *arg0) { - Controller_800D6FE8 *dsa; - u32 dsa2; - - gKirbyState.unk7C = 0.0f; - gKirbyState.unk44 = 0; - gKirbyState.unk30 = 0; - gKirbyState.unk7 = 0; - gKirbyState.unk80 = gKirbyState.unk7C; - func_8011CF58(); - D_800DDFD0[D_8004A7C4->objId] = 0x40; - func_80120A28(); - gKirbyState.abilityInUse = gKirbyState.ability; - gKirbyState.unk78 = -D_800E6A10[D_8004A7C4->objId]; - func_80122F08(0x2002B); - gKirbyState.unk154 = 2; - play_sound(0x42); - func_801230E8(0x20274, 0x20275, 1); - func_801230E8(0x20276, 0x20277, 0); - - dsa = (&gKirbyController); - while (dsa->buttonHeld & 0x4000) { - if (gKirbyState.unk17 == 0) { - finish_current_thread(1); - } - } - play_sound(0x43); - func_801230E8(0x20278, 0x20279, 0); - D_800DF310[D_8004A7C4->objId] = &D_8018DF78; - finish_current_thread(0xC); - gKirbyState.unk78 = D_800E6A10[D_8004A7C4->objId]; - func_800AF27C(); - gKirbyState.abilityInUse = 0; - gKirbyState.unk30++; - func_800AFA14(); -} -#else -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018DDCC_ovl3.s") -#endif - -void func_8018DF78_ovl3(struct GObj *arg0, s32 arg1, f32 arg2) { - if (arg1 == 0 && arg2 != 0.0f) { - gKirbyState.unk44++; - } -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018DFB4_ovl3.s") - -extern Vector D_80198848; -extern Vector D_80198858; - -extern const f32 D_80197B68; -void func_8018E36C_ovl3(struct GObj *arg0, s32 arg1, f32 arg2); -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018E164_ovl3.s") - -void func_8018E36C_ovl3(struct GObj *arg0, s32 arg1, f32 arg2) { - if (arg1 == 0 && arg2 != 0.0f) { - func_801632B8_ovl3(0xA); - } -} - -extern const f32 D_80197B6C; - -void func_8018E3B0_ovl3(struct GObj *this) { - func_80153984_ovl3(); - if (gKirbyState.unk30 != 0) { - D_800E64D0[D_8004A7C4->objId] = D_80198848.x; - D_800E6690[D_8004A7C4->objId] = D_80198848.y; - D_800E6850[D_8004A7C4->objId] = D_80198848.z; - if (D_800E8920[D_8004A7C4->objId] != 0) { - if ((gKirbyController.buttonHeld & 0x400) != 0) { - set_kirby_action_1(9, 0xE); - return; - } - if (gKirbyState.unk7 != 0) { - gKirbyState.unk44 = 0; - gKirbyState.unk38 = 0.0f; - set_kirby_action_1(2, 4); - return; - } - if (D_800E64D0[D_8004A7C4->objId] != 0.0f) { - set_kirby_action_1(1, 3); - return; - } - set_kirby_action_1(0, 1); - return; - } - D_800E3210[D_8004A7C4->objId] = D_80198858.x; - D_800E3750[D_8004A7C4->objId] = D_80198858.y; - D_800E3C90[D_8004A7C4->objId] = D_80198858.z; - if (gKirbyState.previousAction == 5 && D_800E3210[D_8004A7C4->objId] > 0.0f) { - D_800EC2E0[D_8004A7C4->objId].as_s32 = 0x80000000; - set_kirby_action_1(4, 5); - } else { - if (D_800E3210[D_8004A7C4->objId] > 0.0f) { - D_800E3750[D_8004A7C4->objId] = 0; - D_800E3210[D_8004A7C4->objId] = D_800E3750[D_8004A7C4->objId]; - D_800E3C90[D_8004A7C4->objId] = D_80197B6C; - } - set_kirby_action_1(6, 6); - } - } -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018E608_ovl3.s") - -// kirby footsteps? -void func_8018F2B4_ovl3(struct GObj *arg0, s32 arg1, f32 arg2) { - if (arg1 == 0 && arg2 != 0.0f) { - if (D_800E8AE0[D_8004A7C4->objId] & 7) { - if ((D_800E8AE0[D_8004A7C4->objId] & 2)) { - play_sound(SOUND_OYOGIWALK1); - } - else play_sound(SOUND_ASIOTOMIZU1); - } - else if (gKirbyState.unk7 == 1) { - play_sound(SOUND_ASIOTO1D); - } - else play_sound(SOUND_ASIOTO1); - } -} - -GLOBAL_ASM("asm/non_matchings/ovl3/ovl3_5/func_8018F368_ovl3.s") diff --git a/src/ovl5/ovl5_11.c b/src/ovl5/ovl5_11.c new file mode 100644 index 000000000..a0c2d14b6 --- /dev/null +++ b/src/ovl5/ovl5_11.c @@ -0,0 +1,414 @@ +#include "common.h" +#include "buffers.h" +#include "main/object_manager.h" +#include "main/contpad.h" +#include "GObj.h" +#include "ovl1/ovl1_1.h" +#include "ovl1/ovl1_2.h" +#include "ovl1/ovl1_3.h" +#include "ovl1/ovl1_5.h" +#include "track_arrays.h" +#include "ovl1/ovl1_7.h" +#include "ovl2/ovl2_8.h" +#include "ovl5/ovl5_11.h" + +extern u8 D_8018A12C_ovl5[]; +extern s32 D_8018EDEC_ovl5; // track +extern SPObj *D_80189DE8_ovl5; +extern SPObj *D_80189E08_ovl5; +extern SPObj *D_80189E28_ovl5; +extern SPObj *D_80189E48_ovl5; +extern SPObj *D_80189E68_ovl5; +extern SPObj *D_80189E88_ovl5; +extern SPObj *D_8018A0C0_ovl5; +extern u32 sKirbyHeadphoneModel; // model ptr +extern u32 D_8018A118_ovl5; // model ptr +extern u32 D_8018A0F0_ovl5; // model ptr +extern Gfx D_80189D10_ovl5[]; +extern f32 D_8018A0E0_ovl5[][2]; +extern u8 D_8018EDE1_ovl5; +extern u8 D_8018EDE0_ovl5; +extern s32 D_8018EDE4_ovl5; +extern s32 D_8018EDE8_ovl5; +extern u32 D_8018EDF4_ovl5; +extern u32 D_8018EDF8_ovl5; +extern s32 D_8018EDFC_ovl5; +extern u32 D_8018A11C_ovl5[]; // model ptr array +extern GObj *D_800DE350[]; + +void func_80180510_ovl5(s32 arg0); +void func_80180468_ovl5(s32 arg0); +void func_80180AE0_ovl5(s32 arg0); +void func_80181E58_ovl5(s32 arg0); +void func_80181DF8_ovl5(s32 arg0); +void func_80181D00_ovl5(GObj *arg0); +void func_801813FC_ovl5(GObj *arg0); +void func_80181AEC_ovl5(GObj *arg0); +void func_80181C00_ovl5(GObj *o); +void func_80180FF8_ovl5(GObj *o); +void func_80180C08_ovl5(GObj *o); + +void func_80180360_ovl5(s32 arg0) { + switch (D_800E98E0[omCurrentObj->objId]) { + case 0: + func_80180468_ovl5(arg0); + return; + case 1: + func_80180AE0_ovl5(arg0); + return; + case 2: + func_80180C08_ovl5(arg0); + return; + case 3: + func_8018124C_ovl5(arg0); + return; + case 4: + func_801813FC_ovl5(arg0); + return; + case 5: + func_80181AEC_ovl5(arg0); + return; + case 6: + func_80181C00_ovl5(arg0); + return; + case 7: + func_80181D00_ovl5(arg0); + return; + case 8: + func_80181DF8_ovl5(arg0); + /* fallthrough */ + default: + return; + } +} + +void func_8018043C_ovl5(s32 arg0) { + D_800E9C60[D_8018EDEC_ovl5] = D_8018A12C_ovl5[arg0 * 8]; +} + +void func_80180468_ovl5(s32 arg0) { + D_800E98E0[omCurrentObj->objId] = 10; + D_800E9AA0[omCurrentObj->objId].as_s32 = 0; + D_800E9C60[omCurrentObj->objId] = 0; + D_800DF150[omCurrentObj->objId] = func_80180510_ovl5; + while (1) { + ohSleep(1); + } +} + +// https://decomp.me/scratch/HLgy8 +#pragma GLOBAL_ASM("asm/nonmatchings/ovl5/ovl5_11/func_80180510_ovl5.s") + +void func_80180AE0_ovl5(s32 arg0) { + SPObj *spobj; + + D_800DEF90[omCurrentObj->objId] = NULL; + func_800B1F68(gEntityGObjProcessArray5[omCurrentObj->objId], func_800B1434); + func_8000A5FC(arg0, &func_800AD1A0, 0x12, 0x80000000, 0x12); + func_8015C740_ovl5(arg0, &D_80189DE8_ovl5); + spobj = func_8015C740_ovl5(arg0, &D_80189DE8_ovl5); + spobj->xOffset = 160.0f; + spobj->yOffset = 10.0f; + spobj->unk5A |= 1; + spobj->unkBA |= 1; + func_8015C740_ovl5(arg0, &D_80189E08_ovl5); + func_8015C740_ovl5(arg0, &D_80189E28_ovl5); + func_8015C740_ovl5(arg0, &D_80189E48_ovl5); + func_8015C740_ovl5(arg0, &D_80189E68_ovl5); + func_8015C740_ovl5(arg0, &D_80189E88_ovl5); + func_800AFA14(); +} + +// https://decomp.me/scratch/kIAAf +#pragma GLOBAL_ASM("asm/nonmatchings/ovl5/ovl5_11/func_80180C08_ovl5.s") + +void func_80180FF8_ovl5(GObj *o) { + if (D_800E98E0[omCurrentObj->objId] != 0) { + if (D_8018EDE1_ovl5 == 0) { + if (D_800EA6E0[omCurrentObj->objId] > -45.0f) { + D_800EA6E0[omCurrentObj->objId] += D_800EA8A0[omCurrentObj->objId]; + gEntitiesAngleYArray[omCurrentObj->objId] = (D_800EA6E0[omCurrentObj->objId] * 3.1415927f) / 180.0f; + D_800EA8A0[omCurrentObj->objId] += (D_800EA6E0[omCurrentObj->objId] > 0.0f) ? -0.8f : 0.8f; + } else { + D_800EA6E0[omCurrentObj->objId] = -45.0f; + gEntitiesAngleYArray[omCurrentObj->objId] = (D_800EA6E0[omCurrentObj->objId] * 3.1415927f) / 180.0f; + D_800E98E0[omCurrentObj->objId] = 0; + } + } else if (D_800EA6E0[omCurrentObj->objId] < 45.0f) { + D_800EA6E0[omCurrentObj->objId] += D_800EA8A0[omCurrentObj->objId]; + gEntitiesAngleYArray[omCurrentObj->objId] = (D_800EA6E0[omCurrentObj->objId] * 3.1415927f) / 180.0f; + D_800EA8A0[omCurrentObj->objId] += (D_800EA6E0[omCurrentObj->objId] < 0.0f) ? 0.8f : -0.8f; + } else { + D_800EA6E0[omCurrentObj->objId] = 45.0f; + gEntitiesAngleYArray[omCurrentObj->objId] = (D_800EA6E0[omCurrentObj->objId] * 3.1415927f) / 180.0f; + D_800E98E0[omCurrentObj->objId] = 0; + } + } +} + +#ifdef MIPS_TO_C + +void func_8018124C_ovl5(s32 arg0) { + struct EntityThing800E9AA0 *temp_v0; + + func_800A9864(D_8018A108_ovl5, 0x1869F, 0x10); +loop_1: + if (D_8018EDE1_ovl5 == 1) { + temp_v0 = D_800E9AA0[D_8018EDEC_ovl5]; + if (temp_v0 == NULL) { + if ((func_800AA934(D_8018A10C_ovl5.unk0) == 0) && (func_800AA934(D_8018A10C_ovl5.unk4) == 0)) { + func_800AECC0(2.0f); + func_800AED20(2.0f); + func_800AA018(D_8018A10C_ovl5.unk0); + } else if (func_800AA934(D_8018A10C_ovl5.unk4) == 1) { + func_800AECC0(0.0f); + func_800AED20(0.0f); + } + } else if ((temp_v0 == 1) && ((D_800E09D0[omCurrentObj->objId] == 0.0f) || (func_800AA934(D_8018A10C_ovl5.unk4) == 0))) { + func_800AECC0(2.0f); + func_800AED20(2.0f); + func_800AA018(D_8018A10C_ovl5.unk4); + } + } else if ((func_800AA934(D_8018A10C_ovl5.unk0) == 1) || (func_800AA934(D_8018A10C_ovl5.unk4) == 1)) { + func_800AECC0(2.0f); + func_800AED20(2.0f); + func_800AA018(D_8018A10C_ovl5.unk8); + } + ohSleep(1); + goto loop_1; +} +#else +#pragma GLOBAL_ASM("asm/nonmatchings/ovl5/ovl5_11/func_8018124C_ovl5.s") +#endif + +void func_801813FC_ovl5(GObj *arg0) { + func_800A9864(D_8018A118_ovl5, 0x1869F, 0x10); + while (1) { + if (D_8018EDE1_ovl5 == 0) { + if (D_800E9AA0[D_8018EDEC_ovl5].as_s32 == 0) { + if ((func_800AA934(D_8018A11C_ovl5[0]) == 0) && (func_800AA934(D_8018A11C_ovl5[1]) == 0)) { + func_800AECC0(2.0f); + func_800AED20(2.0f); + func_800AA018(D_8018A11C_ovl5[0]); + } else if (func_800AA934(D_8018A11C_ovl5[1]) == 1) { + func_800AECC0(0.0f); + func_800AED20(0.0f); + } + } else if ((D_800E9AA0[D_8018EDEC_ovl5].as_s32 == 1)) { + if ((D_800E09D0[omCurrentObj->objId] == 0.0f) || (func_800AA934(D_8018A11C_ovl5[1]) == 0)) { + func_800AECC0(2.0f); + func_800AED20(2.0f); + func_800AA018(D_8018A11C_ovl5[1]); + } + } + } else if ((func_800AA934(D_8018A11C_ovl5[0]) == 1) || (func_800AA934(D_8018A11C_ovl5[1]) == 1)) { + func_800AECC0(2.0f); + func_800AED20(2.0f); + func_800AA018(D_8018A11C_ovl5[2]); + } + ohSleep(1); + } +} + +// struct copy + phantom stack +SPObj *func_801815BC_ovl5(GObj *o, s32 arg1, f32 x, f32 y); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl5/ovl5_11/func_801815BC_ovl5.s") + +void func_80181644_ovl5(SPObj *spobj, u8 cond1, s32 cond2, s32 idx) { + f32 *var_v0; + + if (cond1) { + if (cond2) { + var_v0 = D_8018A018_ovl5[idx]; + } else { + var_v0 = D_8018A060_ovl5[idx]; + } + } else { + var_v0 = D_8018A0A8_ovl5; + } + spobj->primColorRed = var_v0[0]; + spobj->primColorGreen = var_v0[1]; + spobj->primColorBlue = var_v0[2]; + spobj->envColorRed = var_v0[3]; + spobj->envColorGreen = var_v0[4]; + spobj->envColorBlue = var_v0[5]; +} + +void func_801819C8_ovl5(GObj *o, u8 arg1, s32 arg2) { + f32 *temp_s0; + + temp_s0 = D_80189FE8_ovl5[arg1]; + func_80181644_ovl5( + func_801815BC_ovl5( + o, + arg2 / 100, + temp_s0[0], + temp_s0[1] + ), + arg1 == D_8018EDE1_ovl5, + arg1 == 0, + 0 + ); + func_80181644_ovl5( + func_801815BC_ovl5( + o, + (arg2 % 100) / 10, + temp_s0[2], + temp_s0[3] + ), + arg1 == D_8018EDE1_ovl5, + arg1 == 0, + 1 + ); + func_80181644_ovl5( + func_801815BC_ovl5( + o, + arg2 % 10, + temp_s0[4], + temp_s0[5] + ), + arg1 == D_8018EDE1_ovl5, + arg1 == 0, + 2 + ); +} + +void func_80181AEC_ovl5(GObj *o) { + s32 i; + u8 j; + + D_800DEF90[omCurrentObj->objId] = NULL; + func_800B1F68(gEntityGObjProcessArray5[omCurrentObj->objId], func_800B1434); + func_8000A5FC(o, &func_800AD1A0, 0xA, 0x80000000, 0xA); + j = D_8018EDE1_ovl5; + i = D_8018EDE4_ovl5; i++; + while (1) { + if ((i != D_8018EDE4_ovl5) || (D_8018EDE1_ovl5 != j)) { + func_800ACBDC(o); + i = D_8018EDE4_ovl5; + j = D_8018EDE1_ovl5; + func_801819C8_ovl5(o, 0, i + 1); + } + ohSleep(1); + } +} + +void func_80181C00_ovl5(GObj *o) { + s32 i; + u8 j; + + D_800DEF90[omCurrentObj->objId] = NULL; + func_800B1F68(gEntityGObjProcessArray5[omCurrentObj->objId], func_800B1434); + func_8000A5FC(o, &func_800AD1A0, 10, 0x80000000, 10); + j = D_8018EDE1_ovl5; + i = D_8018EDE8_ovl5; i++; + while (1) { + if ((i != D_8018EDE8_ovl5) || (D_8018EDE1_ovl5 != j)) { + func_800ACBDC(o); + i = D_8018EDE8_ovl5; + j = D_8018EDE1_ovl5; + func_801819C8_ovl5(o, 1, i + 1); + } + ohSleep(1); + } +} + +// https://decomp.me/scratch/sOUSa +void func_80181D00_ovl5(GObj *arg0) { + u32 i; + SPObj *spobj; + f32 *pos2D; + + D_800DEF90[omCurrentObj->objId] = NULL; + func_800B1F68(gEntityGObjProcessArray5[omCurrentObj->objId], func_800B1434); + func_8000A5FC(arg0, &func_800AD1A0, 10, 0x80000000, 10); + spobj = func_8015C740_ovl5(arg0, &D_8018A0C0_ovl5); + i = D_8018EDE1_ovl5; i++; + while (1) { + if (i != D_8018EDE1_ovl5) { + pos2D = D_8018A0E0_ovl5[D_8018EDE1_ovl5]; + i = D_8018EDE1_ovl5; + spobj->xOffset = pos2D[0]; + spobj->yOffset = pos2D[1]; + } + ohSleep(1); + } +} + +void func_80181DF8_ovl5(s32 arg0) { + D_800DF150[omCurrentObj->objId] = func_80181E58_ovl5; + func_800A9864(sKirbyHeadphoneModel, 0x1869F, 0x10); + func_800AFA14(); +} + +void func_80181E58_ovl5(s32 arg0) { + Vector pos; + Vector angle; + Vector scale; + + func_800B2340(&pos.x, D_800DFBD0[D_8018EDEC_ovl5][9], D_8018EDEC_ovl5); + gEntitiesNextPosXArray[omCurrentObj->objId] = pos.x; + gEntitiesNextPosYArray[omCurrentObj->objId] = pos.y; + gEntitiesNextPosZArray[omCurrentObj->objId] = pos.z; + func_800B26D8(&angle, D_800DFBD0[D_8018EDEC_ovl5][9], D_8018EDEC_ovl5); + gEntitiesAngleXArray[omCurrentObj->objId] = angle.x; + gEntitiesAngleYArray[omCurrentObj->objId] = angle.y; + gEntitiesAngleZArray[omCurrentObj->objId] = angle.z; + func_800B2928(&scale, D_800DFBD0[D_8018EDEC_ovl5][9], D_8018EDEC_ovl5); + gEntitiesScaleXArray[omCurrentObj->objId] = scale.x; + gEntitiesScaleYArray[omCurrentObj->objId] = scale.y; + gEntitiesScaleZArray[omCurrentObj->objId] = scale.z; +} + +void func_80181FD8_ovl5(void) { + D_8018EDE0_ovl5 = 0; + D_8018EDE4_ovl5 = 0; + D_8018EDE8_ovl5 = 0; + D_8018EDE1_ovl5 = 0; + D_8018EDF4_ovl5 = 0x1869F; + D_8018EDF8_ovl5 = 0x1869F; + D_8018EDFC_ovl5 = sSoundCount; +} + +void func_80182024_ovl5(void) { + func_800A5744(0, 0, 0); + func_800A5A14(0, 0x10, 2); +} + +void func_8018205C_ovl5(s32 arg0) { + if ((D_800D6B24 == 0) && (D_8018EDE0_ovl5 != 0)) { + func_80182024_ovl5(); + } +} + +void func_8018209C_ovl5(void) { + func_800A41B0(2.0f); + func_8000BDF0(0x19, 0x80000000, 0x63, 1, 0); + func_800AE048(0x80); + func_800AE0F0(); + func_800A6E64(); + func_800A8724(0); + func_800A6BC0(0xA); + func_800AAF34(0x10, D_8018A0F0_ovl5, 0); + func_800A71A0(0x10); + func_80181FD8_ovl5(); + D_800E98E0[func_800AEC70(0xB, 0, 0x70)] = 0; + D_800E98E0[func_800AEC70(0xB, 0, 0x70)] = 1; + D_800E98E0[request_track_general(0xB, 0, 0x70)] = 2; + D_800E98E0[request_track_general(0xB, 0, 0x70)] = 8; + D_800E98E0[request_track_general(0xB, 0, 0x70)] = 3; + D_800E98E0[request_track_general(0xB, 0, 0x70)] = 4; + D_800E98E0[func_800AEC70(0xB, 0, 0x70)] = 5; + D_800E98E0[func_800AEC70(0xB, 0, 0x70)] = 6; + D_800E98E0[func_800AEC70(0xB, 0, 0x70)] = 7; + HS64_omMakeGObj(0, &func_8018205C_ovl5, 0x1A, 0x80000000); + func_800A5744(0, 0, 0); + func_800A5A14(0xFF, -0x10, 0); +} + +void func_80182288_ovl5(Gfx **g) { + gSPDisplayList((*g)++, D_80189D10_ovl5); +} + +// this fb clearing function again +#pragma GLOBAL_ASM("asm/nonmatchings/ovl5/ovl5_11/func_801822AC_ovl5.s") diff --git a/src/ovl5/ovl5_11.h b/src/ovl5/ovl5_11.h new file mode 100644 index 000000000..5134db786 --- /dev/null +++ b/src/ovl5/ovl5_11.h @@ -0,0 +1,17 @@ +#ifndef OVL5_11_H +#define OVL5_11_H + +extern f32 D_80189FE8_ovl5[][6]; +extern f32 D_8018A018_ovl5[][6]; +extern f32 D_8018A060_ovl5[][6]; +extern f32 D_8018A0A8_ovl5[]; +extern SPObj D_80189CE8_ovl5; +extern u32 D_8018A0F8_ovl5[]; // model ptrs +extern u32 D_8018A100_ovl5; // model ptr +extern u32 D_8018A0F8_ovl5[2]; // model ptrs +extern u32 D_8018A0F4_ovl5; // model ptr +extern f32 D_80189CE0_ovl5[2]; + +extern u32 D_8018A128_ovl5[]; + +#endif // OVL5_11_H diff --git a/src/ovl6/ovl6.c b/src/ovl6/ovl6.c index 5d934d975..a4341599e 100644 --- a/src/ovl6/ovl6.c +++ b/src/ovl6/ovl6.c @@ -1,266 +1,183 @@ -#include -#include -#include "buffers.h" -#include "D_8004A7C4.h" -#include "ovl6.h" +#include "common.h" -extern void func_800067B8(void); -extern void func_8000AD88(void); -extern u32 D_8015A694; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80151100_ovl6.s") -extern void func_8000E324(void); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80151138_ovl6.s") -extern struct UnkStruct8015A560 *D_8015A560; -extern u32 D_8015A690; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80151204_ovl6.s") -void func_80151100(void) { - if (D_8015A694 != 0) { - func_800067B8(); - } - func_8000AD88(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801512F0_ovl6.s") -extern u16 *gCurrFrameBuffer; -extern u16 *gFrameBuffers[3]; -extern u16 *D_80048C5C; -extern u32 D_80048C6C; -GLOBAL_ASM("asm/non_matchings/ovl6/func_80151138.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801513C8_ovl6.s") -extern Gfx *gDisplayListHeads[4]; -extern void func_8009E8F4(s32 hidden, u32 a, Gfx **b); +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801513F8_ovl6.s") -void func_80151204(s32 arg0) { - gDPPipeSync(gDisplayListHeads[1]++); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); - func_8009E8F4(arg0, 2, &gDisplayListHeads[1]); - gDPPipeSync(gDisplayListHeads[1]++); - gDPSetColorDither(gDisplayListHeads[1]++, G_CD_MAGICSQ); - gDPSetAlphaDither(gDisplayListHeads[1]++, G_AD_DISABLE); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801514A0_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801512F0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015150C_ovl6.s") -void func_801513C8(void) { - func_800A7A70(0, 0x40001, 0x40002); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015166C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801513F8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015170C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801514A0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015198C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015150C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80151CD0_ovl6.s") -extern u32 D_8015A670[]; // Lights? -extern u32 *D_8015A56C; // lights? -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015166C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80151DDC_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015170C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80151E10_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015198C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80151E60_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80151CD0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152138_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80151DDC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801524C8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80151E10.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152B28_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80151E60.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152B9C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152138.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152C10_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801524C8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152C84_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152B28.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152CF8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152B9C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152D00_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152C10.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152DB8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152C84.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80152EA8_ovl6.s") -void func_80152CF8(s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153040_ovl6.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153064_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152D00.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015314C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152DB8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801531FC_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80152EA8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153228_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153040.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801532CC_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153064.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801532F4_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015314C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801533C0_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801531FC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153424_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153228.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015347C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801532CC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801534A8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801532F4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801534D4_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801533C0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153530_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153424.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015358C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015347C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801535E8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801534A8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153644_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801534D4.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153670_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153530.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801536A0_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015358C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801536A8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801535E8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801536E0_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153644.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015370C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153670.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015372C_ovl6.s") -void func_801536A0(s32 arg0) { +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015374C_ovl6.s") -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153868_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801536A8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015392C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801536E0.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153A48_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015370C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153AA8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015372C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153AF8_ovl6.s") -// regalloc -#ifdef NON_MATCHING -void func_8015374C(struct GObj *this) { - struct UnkStruct8004A7C4_3C_80 *temp_v0; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153B34_ovl6.s") - temp_v0 = &this->unk3C->unk80->unk8; - if (this->unk3C->unk80->unk5B != 0) { - gDPPipeSync(gDisplayListHeads[1]++); - gDPSetCombineMode(gDisplayListHeads[1]++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_CLD_SURF, G_RM_CLD_SURF2); - gDPSetPrimColor(gDisplayListHeads[1]++, 0, 0, temp_v0->unk50, temp_v0->unk51, temp_v0->unk52, temp_v0->unk53); - gDPFillRectangle(gDisplayListHeads[1]++, 48, 38, 272, 202); - gDPPipeSync(gDisplayListHeads[1]++); - gDPSetRenderMode(gDisplayListHeads[1]++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); - } -} -#else -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015374C.s") -#endif +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153B80_ovl6.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153C28_ovl6.s") -void func_80153868(void) { - struct GObj *sp1C; +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153CBC_ovl6.s") - if ((D_8015A690 == 0) && (D_800DE44C == 0)) { - sp1C = D_8004A7C4; - request_track_general(0x11, 0x3F, 0x40); - D_8004A7C4 = D_800DE44C; - func_80008DA8(gEntityGObjProcessArray[0x3F]); - func_80008DA8(gEntityGObjProcessArray2[0x3F]); - func_80008DA8(gEntityGObjProcessArray5[0x3F]); - func_80008A18(D_8004A7C4, &func_8000E324, 1, 3); - func_800A9864(D_8015A560->listIndex, 0x1869F, 0xC); - D_8004A7C4 = sp1C; - } -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153D10_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015392C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153D6C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153A48.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153DC8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153AA8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153E1C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153AF8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153F00_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153B34.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80153F2C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153B80.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015403C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153C28.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_8015405C_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153CBC.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154088_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153D10.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154100_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153D6C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154158_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153DC8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154180_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153E1C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801541EC_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153F00.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154214_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80153F2C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154258_ovl6.s") -void func_8015403C(void) { - func_80153F2C_ovl6(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154284_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_8015405C.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154464_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154088.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801544E8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154100.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154628_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154158.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154690_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154180.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801546D8_ovl6.s") -void func_801541EC(void) { - func_8009C0E4(); - func_800A2024(); -} +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154748_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154214.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154810_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154258.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154858_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154284.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801548A4_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154464.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_801548F8_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801544E8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154938_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154628.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154A40_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154690.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154B14_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801546D8.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154BA0_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154748.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154C08_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154810.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154C38_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154858.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154C64_ovl6.s") -GLOBAL_ASM("asm/non_matchings/ovl6/func_801548A4.s") - -GLOBAL_ASM("asm/non_matchings/ovl6/func_801548F8.s") - -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154938.s") - -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154A40.s") - -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154B14.s") - -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154BA0.s") - -void func_80154C08(void) { - func_8000AAE0(); - func_80153064_ovl6(); - func_800AC610(); -} - -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154C38.s") - -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154C64.s") - -GLOBAL_ASM("asm/non_matchings/ovl6/func_80154D60.s") +#pragma GLOBAL_ASM("asm/nonmatchings/ovl6/ovl6/func_80154D60_ovl6.s") diff --git a/tools/Makefile b/tools/Makefile index 23d3c408b..9dff767a5 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -22,7 +22,7 @@ rgb2c_CFLAGS := -Imodern_rgb2c/ patch_libultra_math_SOURCES := patch_libultra_math.c # who cares if you have armips, just use our version -CXX_PROGRAMS := armips/build/armips extract_assets img_getprop +CXX_PROGRAMS := armips_bin/armips extract_assets img_getprop @@ -34,10 +34,10 @@ level_settings/convert: $(wildcard level_settings/*.c) all: $(PROGRAMS) $(CXX_PROGRAMS) level_settings/convert -armips/build: +armips_bin/: cmake -S armips -B $@ -armips/build/armips: armips/build +armips_bin/armips: armips_bin/ +make -C $< extract_assets: new_asset_extractor/extract_assets.cpp new_asset_extractor/src/format.cc diff --git a/tools/asm-processor b/tools/asm-processor new file mode 160000 index 000000000..cf54952d3 --- /dev/null +++ b/tools/asm-processor @@ -0,0 +1 @@ +Subproject commit cf54952d31adb44cefbb96358a542b3fe56c80be diff --git a/tools/asm-processor/.gitignore b/tools/asm-processor/.gitignore deleted file mode 100644 index 5761abcfd..000000000 --- a/tools/asm-processor/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.o diff --git a/tools/asm-processor/LICENSE b/tools/asm-processor/LICENSE deleted file mode 100644 index cf1ab25da..000000000 --- a/tools/asm-processor/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to diff --git a/tools/asm-processor/README.md b/tools/asm-processor/README.md deleted file mode 100644 index 8bcca4acb..000000000 --- a/tools/asm-processor/README.md +++ /dev/null @@ -1,93 +0,0 @@ -# asm-processor - -Pre-process .c files and post-process .o files to enable embedding MIPS assembly into IDO-compiled C. - -## Usage - -Let's say you have a file compiled with `-g` on the IDO compiler, that looks like this: -```c -float func4(void) { - "func4"; - return 0.2f; -} -``` - -This script enables replacing it by: -```asm -GLOBAL_ASM( -.rdata -.word 0x66756e63 # func -.word 0x34000000 # 4\0\0\0 - -.late_rodata -glabel rv -.word 0x3e4ccccd # 0.2f - -.text -glabel func4 -lui $at, %hi(rv) -jr $ra -lwc1 $f0, %lo(rv)($at) -jr $ra -nop -jr $ra -nop -) -``` - -To compile the file, run `./compile.sh file.c`, or invoke the `asm_processor.py` script in a similar manner. (`compile.sh` is mostly just intended to describe example usage.) - -Reading assembly from file is also supported, e.g. `GLOBAL_ASM("file.s")`. - -### What is supported? - -`.text`, `.data`, `.bss` and `.rodata` sections, `.word`/`.incbin`, `.ascii`/`.asciz`, and `-g`, `-g3`, `-O1`, `-O2` and `-framepointer` flags to the IDO compiler. - -### What is not supported? - -* complicated assembly (.ifdef, macro declarations/calls other than `glabel`, pseudo-instructions that expand to several real instructions) -* non-IDO compilers -* `-mips1` (`-mips3` may also not work fully) - -C `#ifdef`s only work outside of `GLOBAL_ASM` calls, but is otherwise able to replace `.ifdef`. - -### What's up with "late rodata"? - -The IDO compiler emits rodata in two passes: first array/string contents, then large literals/switch jump tables. - -Data declared within `.rdata`/`.section .rodata` will end up in the first half, and `.late_rodata`/`.section .late_rodata` in the second half. - -### How does it work? - -It's a bit of a hack! -The basic idea is replace `GLOBAL_ASM` blocks with dummy C functions/global vars of the same sections sizes as the assembly. -Then the C file gets compiled, and the dummy contents overwritten with the injected assembly. - -To accomplish this, asm-processor has logic for guessing the size of assembly contents -(which assumes the assembly isn't too complicated, e.g. no macros), -and for emitting C code of exact sizes for a bunch of different IDO compiler flags. - -The assembler code is padded with nops to line it up with its correct position in the C; -this allows C and asm ELF files to be merged easily without having to fix up e.g. symbol addresses. - -The most difficulty part is `late_rodata`, which is hard to create programmatically. -asm-processor does that by emitting code that uses dummy float literals/double literals/jump tables, -assembles the late_rodata at another location of the .rodata section, then overwrites the dummy rodata. -This does require some movement of symbols and relocations, and quite a bit of care in what code to -emit and how to preserve .double alignment. - -It's worth noting some alternative ways in which asm-processor would have been implemented: -- One idea to get rid of the C/asm size estimations is to emit arbitrary code, and then move code, -symbols and relocations to the correct place after the sizes are known. -Given the machinery for `late_rodata` this wouldn't have been too difficult, and it would have the upside of improved portability. -There is a big downside, however: using dummy code of incorrect size throws off alignment and can introduce unintended padding. -Fixing this would require running multiple passes of asm-processor, with one compile per `ASM_GLOBAL`. -- Another idea is to run the compiler with -S to emit assembly, modify the emitted assembly, then run the assembler -(which in IDO's case may perform additional instruction reordering etc.). -This option has not been investigated in much detail, and would perhaps be superior to the current implementation. -It does have a few unknowns to it, e.g. instruction encoding differences between GNU `as` and IDO's assembler, -how to avoid reordering the injected assembly, and how .rodata/.late_rodata are implemented. - -### Testing - -There are a few tests to ensure you don't break anything when hacking on asm-processor: `./run-tests.sh` should exit without output if they pass, or else output a diff from previous to new version. diff --git a/tools/asm-processor/add-test.sh b/tools/asm-processor/add-test.sh deleted file mode 100755 index 66b8a0291..000000000 --- a/tools/asm-processor/add-test.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -for A in "$@"; do - ./compile.sh "$A" && mips-linux-gnu-objdump -s "${A%.c}.o" > "${A%.c}.objdump" -done diff --git a/tools/asm-processor/asm_processor.py b/tools/asm-processor/asm_processor.py deleted file mode 100644 index 65a5e9080..000000000 --- a/tools/asm-processor/asm_processor.py +++ /dev/null @@ -1,1154 +0,0 @@ -#!/usr/bin/env python3 -import argparse -import tempfile -import struct -import copy -import sys -import re -import os -from collections import namedtuple -from io import StringIO - -MAX_FN_SIZE = 100 -SLOW_CHECKS = False - -EI_NIDENT = 16 -EI_CLASS = 4 -EI_DATA = 5 -EI_VERSION = 6 -EI_OSABI = 7 -EI_ABIVERSION = 8 -STN_UNDEF = 0 - -SHN_UNDEF = 0 -SHN_ABS = 0xfff1 -SHN_COMMON = 0xfff2 -SHN_XINDEX = 0xffff -SHN_LORESERVE = 0xff00 - -STT_NOTYPE = 0 -STT_OBJECT = 1 -STT_FUNC = 2 -STT_SECTION = 3 -STT_FILE = 4 -STT_COMMON = 5 -STT_TLS = 6 - -STB_LOCAL = 0 -STB_GLOBAL = 1 -STB_WEAK = 2 - -STV_DEFAULT = 0 -STV_INTERNAL = 1 -STV_HIDDEN = 2 -STV_PROTECTED = 3 - -SHT_NULL = 0 -SHT_PROGBITS = 1 -SHT_SYMTAB = 2 -SHT_STRTAB = 3 -SHT_RELA = 4 -SHT_HASH = 5 -SHT_DYNAMIC = 6 -SHT_NOTE = 7 -SHT_NOBITS = 8 -SHT_REL = 9 -SHT_SHLIB = 10 -SHT_DYNSYM = 11 -SHT_INIT_ARRAY = 14 -SHT_FINI_ARRAY = 15 -SHT_PREINIT_ARRAY = 16 -SHT_GROUP = 17 -SHT_SYMTAB_SHNDX = 18 -SHT_MIPS_GPTAB = 0x70000003 -SHT_MIPS_DEBUG = 0x70000005 -SHT_MIPS_REGINFO = 0x70000006 -SHT_MIPS_OPTIONS = 0x7000000d - -SHF_WRITE = 0x1 -SHF_ALLOC = 0x2 -SHF_EXECINSTR = 0x4 -SHF_MERGE = 0x10 -SHF_STRINGS = 0x20 -SHF_INFO_LINK = 0x40 -SHF_LINK_ORDER = 0x80 -SHF_OS_NONCONFORMING = 0x100 -SHF_GROUP = 0x200 -SHF_TLS = 0x400 - -R_MIPS_32 = 2 -R_MIPS_26 = 4 -R_MIPS_HI16 = 5 -R_MIPS_LO16 = 6 - - -class ElfHeader: - """ - typedef struct { - unsigned char e_ident[EI_NIDENT]; - Elf32_Half e_type; - Elf32_Half e_machine; - Elf32_Word e_version; - Elf32_Addr e_entry; - Elf32_Off e_phoff; - Elf32_Off e_shoff; - Elf32_Word e_flags; - Elf32_Half e_ehsize; - Elf32_Half e_phentsize; - Elf32_Half e_phnum; - Elf32_Half e_shentsize; - Elf32_Half e_shnum; - Elf32_Half e_shstrndx; - } Elf32_Ehdr; - """ - - def __init__(self, data): - self.e_ident = data[:EI_NIDENT] - self.e_type, self.e_machine, self.e_version, self.e_entry, self.e_phoff, self.e_shoff, self.e_flags, self.e_ehsize, self.e_phentsize, self.e_phnum, self.e_shentsize, self.e_shnum, self.e_shstrndx = struct.unpack('>HHIIIIIHHHHHH', data[EI_NIDENT:]) - assert self.e_ident[EI_CLASS] == 1 # 32-bit - assert self.e_ident[EI_DATA] == 2 # big-endian - assert self.e_type == 1 # relocatable - assert self.e_machine == 8 # MIPS I Architecture - assert self.e_phoff == 0 # no program header - assert self.e_shoff != 0 # section header - assert self.e_shstrndx != SHN_UNDEF - - def to_bin(self): - return self.e_ident + struct.pack('>HHIIIIIHHHHHH', self.e_type, - self.e_machine, self.e_version, self.e_entry, self.e_phoff, - self.e_shoff, self.e_flags, self.e_ehsize, self.e_phentsize, - self.e_phnum, self.e_shentsize, self.e_shnum, self.e_shstrndx) - - -class Symbol: - """ - typedef struct { - Elf32_Word st_name; - Elf32_Addr st_value; - Elf32_Word st_size; - unsigned char st_info; - unsigned char st_other; - Elf32_Half st_shndx; - } Elf32_Sym; - """ - - def __init__(self, data, strtab): - self.st_name, self.st_value, self.st_size, st_info, self.st_other, self.st_shndx = struct.unpack('>IIIBBH', data) - assert self.st_shndx != SHN_XINDEX, "too many sections (SHN_XINDEX not supported)" - self.bind = st_info >> 4 - self.type = st_info & 15 - self.name = strtab.lookup_str(self.st_name) - self.visibility = self.st_other & 3 - - def to_bin(self): - st_info = (self.bind << 4) | self.type - return struct.pack('>IIIBBH', self.st_name, self.st_value, self.st_size, st_info, self.st_other, self.st_shndx) - - -class Relocation: - def __init__(self, data, sh_type): - self.sh_type = sh_type - if sh_type == SHT_REL: - self.r_offset, self.r_info = struct.unpack('>II', data) - else: - self.r_offset, self.r_info, self.r_addend = struct.unpack('>III', data) - self.sym_index = self.r_info >> 8 - self.rel_type = self.r_info & 0xff - - def to_bin(self): - self.r_info = (self.sym_index << 8) | self.rel_type - if self.sh_type == SHT_REL: - return struct.pack('>II', self.r_offset, self.r_info) - else: - return struct.pack('>III', self.r_offset, self.r_info, self.r_addend) - - -class Section: - """ - typedef struct { - Elf32_Word sh_name; - Elf32_Word sh_type; - Elf32_Word sh_flags; - Elf32_Addr sh_addr; - Elf32_Off sh_offset; - Elf32_Word sh_size; - Elf32_Word sh_link; - Elf32_Word sh_info; - Elf32_Word sh_addralign; - Elf32_Word sh_entsize; - } Elf32_Shdr; - """ - - def __init__(self, header, data, index): - self.sh_name, self.sh_type, self.sh_flags, self.sh_addr, self.sh_offset, self.sh_size, self.sh_link, self.sh_info, self.sh_addralign, self.sh_entsize = struct.unpack('>IIIIIIIIII', header) - assert not self.sh_flags & SHF_LINK_ORDER - if self.sh_entsize != 0: - assert self.sh_size % self.sh_entsize == 0 - if self.sh_type == SHT_NOBITS: - self.data = b'' - else: - self.data = data[self.sh_offset:self.sh_offset + self.sh_size] - self.index = index - self.relocated_by = [] - - @staticmethod - def from_parts(sh_name, sh_type, sh_flags, sh_link, sh_info, sh_addralign, sh_entsize, data, index): - header = struct.pack('>IIIIIIIIII', sh_name, sh_type, sh_flags, 0, 0, len(data), sh_link, sh_info, sh_addralign, sh_entsize) - return Section(header, data, index) - - def lookup_str(self, index): - assert self.sh_type == SHT_STRTAB - to = self.data.find(b'\0', index) - assert to != -1 - return self.data[index:to].decode('latin1') - - def add_str(self, string): - assert self.sh_type == SHT_STRTAB - ret = len(self.data) - self.data += string.encode('latin1') + b'\0' - return ret - - def is_rel(self): - return self.sh_type == SHT_REL or self.sh_type == SHT_RELA - - def header_to_bin(self): - if self.sh_type != SHT_NOBITS: - self.sh_size = len(self.data) - return struct.pack('>IIIIIIIIII', self.sh_name, self.sh_type, self.sh_flags, self.sh_addr, self.sh_offset, self.sh_size, self.sh_link, self.sh_info, self.sh_addralign, self.sh_entsize) - - def late_init(self, sections): - if self.sh_type == SHT_SYMTAB: - self.init_symbols(sections) - elif self.is_rel(): - self.rel_target = sections[self.sh_info] - self.rel_target.relocated_by.append(self) - self.init_relocs() - - def find_symbol(self, name): - assert self.sh_type == SHT_SYMTAB - for s in self.symbol_entries: - if s.name == name: - return (s.st_shndx, s.st_value) - return None - - def find_symbol_in_section(self, name, section): - pos = self.find_symbol(name) - assert pos is not None - assert pos[0] == section.index - return pos[1] - - def init_symbols(self, sections): - assert self.sh_type == SHT_SYMTAB - assert self.sh_entsize == 16 - self.strtab = sections[self.sh_link] - entries = [] - for i in range(0, self.sh_size, self.sh_entsize): - entries.append(Symbol(self.data[i:i+self.sh_entsize], self.strtab)) - self.symbol_entries = entries - - def init_relocs(self): - assert self.is_rel() - entries = [] - for i in range(0, self.sh_size, self.sh_entsize): - entries.append(Relocation(self.data[i:i+self.sh_entsize], self.sh_type)) - self.relocations = entries - - def local_symbols(self): - assert self.sh_type == SHT_SYMTAB - return self.symbol_entries[:self.sh_info] - - def global_symbols(self): - assert self.sh_type == SHT_SYMTAB - return self.symbol_entries[self.sh_info:] - - -class ElfFile: - def __init__(self, data): - self.data = data - assert data[:4] == b'\x7fELF', "not an ELF file" - - self.elf_header = ElfHeader(data[0:52]) - - offset, size = self.elf_header.e_shoff, self.elf_header.e_shentsize - null_section = Section(data[offset:offset + size], data, 0) - num_sections = self.elf_header.e_shnum or null_section.sh_size - - self.sections = [null_section] - for i in range(1, num_sections): - ind = offset + i * size - self.sections.append(Section(data[ind:ind + size], data, i)) - - symtab = None - for s in self.sections: - if s.sh_type == SHT_SYMTAB: - assert not symtab - symtab = s - assert symtab is not None - self.symtab = symtab - - shstr = self.sections[self.elf_header.e_shstrndx] - for s in self.sections: - s.name = shstr.lookup_str(s.sh_name) - s.late_init(self.sections) - - def find_section(self, name): - for s in self.sections: - if s.name == name: - return s - return None - - def add_section(self, name, sh_type, sh_flags, sh_link, sh_info, sh_addralign, sh_entsize, data): - shstr = self.sections[self.elf_header.e_shstrndx] - sh_name = shstr.add_str(name) - s = Section.from_parts(sh_name=sh_name, sh_type=sh_type, - sh_flags=sh_flags, sh_link=sh_link, sh_info=sh_info, - sh_addralign=sh_addralign, sh_entsize=sh_entsize, data=data, - index=len(self.sections)) - self.sections.append(s) - s.name = name - s.late_init(self.sections) - return s - - def drop_irrelevant_sections(self): - # We can only drop sections at the end, since otherwise section - # references might be wrong. Luckily, these sections typically are. - while self.sections[-1].sh_type in [SHT_MIPS_DEBUG, SHT_MIPS_GPTAB]: - self.sections.pop() - - def write(self, filename): - outfile = open(filename, 'wb') - outidx = 0 - def write_out(data): - nonlocal outidx - outfile.write(data) - outidx += len(data) - def pad_out(align): - if align and outidx % align: - write_out(b'\0' * (align - outidx % align)) - - self.elf_header.e_shnum = len(self.sections) - write_out(self.elf_header.to_bin()) - - for s in self.sections: - if s.sh_type != SHT_NOBITS and s.sh_type != SHT_NULL: - pad_out(s.sh_addralign) - s.sh_offset = outidx - write_out(s.data) - - pad_out(4) - self.elf_header.e_shoff = outidx - for s in self.sections: - write_out(s.header_to_bin()) - - outfile.seek(0) - outfile.write(self.elf_header.to_bin()) - outfile.close() - - -def is_temp_name(name): - return name.startswith('_asmpp_') - - -# https://stackoverflow.com/a/241506 -def re_comment_replacer(match): - s = match.group(0) - if s[0] in "/#": - return " " - else: - return s - - -re_comment_or_string = re.compile( - r'#.*|/\*.*?\*/|"(?:\\.|[^\\"])*"' -) - - -class Failure(Exception): - def __init__(self, message): - self.message = message - - def __str__(self): - return self.message - - -class GlobalState: - def __init__(self, min_instr_count, skip_instr_count, use_jtbl_for_rodata): - # A value that hopefully never appears as a 32-bit rodata constant (or we - # miscompile late rodata). Increases by 1 in each step. - self.late_rodata_hex = 0xE0123456 - self.namectr = 0 - self.min_instr_count = min_instr_count - self.skip_instr_count = skip_instr_count - self.use_jtbl_for_rodata = use_jtbl_for_rodata - - def next_late_rodata_hex(self): - dummy_bytes = struct.pack('>I', self.late_rodata_hex) - if (self.late_rodata_hex & 0xffff) == 0: - # Avoid lui - self.late_rodata_hex += 1 - self.late_rodata_hex += 1 - return dummy_bytes - - def make_name(self, cat): - self.namectr += 1 - return '_asmpp_{}{}'.format(cat, self.namectr) - - -Function = namedtuple('Function', ['text_glabels', 'asm_conts', 'late_rodata_dummy_bytes', 'jtbl_rodata_size', 'late_rodata_asm_conts', 'fn_desc', 'data']) - - -class GlobalAsmBlock: - def __init__(self, fn_desc): - self.fn_desc = fn_desc - self.cur_section = '.text' - self.asm_conts = [] - self.late_rodata_asm_conts = [] - self.late_rodata_alignment = 0 - self.late_rodata_alignment_from_content = False - self.text_glabels = [] - self.fn_section_sizes = { - '.text': 0, - '.data': 0, - '.bss': 0, - '.rodata': 0, - '.late_rodata': 0, - } - self.fn_ins_inds = [] - self.glued_line = '' - self.num_lines = 0 - - def fail(self, message, line=None): - context = self.fn_desc - if line: - context += ", at line \"" + line + "\"" - raise Failure(message + "\nwithin " + context) - - def count_quoted_size(self, line, z, real_line, output_enc): - line = line.encode(output_enc).decode('latin1') - in_quote = False - num_parts = 0 - ret = 0 - i = 0 - digits = "0123456789" # 0-7 would be more sane, but this matches GNU as - while i < len(line): - c = line[i] - i += 1 - if not in_quote: - if c == '"': - in_quote = True - num_parts += 1 - else: - if c == '"': - in_quote = False - continue - ret += 1 - if c != '\\': - continue - if i == len(line): - self.fail("backslash at end of line not supported", real_line) - c = line[i] - i += 1 - # (if c is in "bfnrtv", we have a real escaped literal) - if c == 'x': - # hex literal, consume any number of hex chars, possibly none - while i < len(line) and line[i] in digits + "abcdefABCDEF": - i += 1 - elif c in digits: - # octal literal, consume up to two more digits - it = 0 - while i < len(line) and line[i] in digits and it < 2: - i += 1 - it += 1 - - if in_quote: - self.fail("unterminated string literal", real_line) - if num_parts == 0: - self.fail(".ascii with no string", real_line) - return ret + num_parts if z else ret - - def align2(self): - while self.fn_section_sizes[self.cur_section] % 2 != 0: - self.fn_section_sizes[self.cur_section] += 1 - - def align4(self): - while self.fn_section_sizes[self.cur_section] % 4 != 0: - self.fn_section_sizes[self.cur_section] += 1 - - def add_sized(self, size, line): - if self.cur_section in ['.text', '.late_rodata']: - if size % 4 != 0: - self.fail("size must be a multiple of 4", line) - if size < 0: - self.fail("size cannot be negative", line) - self.fn_section_sizes[self.cur_section] += size - if self.cur_section == '.text': - if not self.text_glabels: - self.fail(".text block without an initial glabel", line) - self.fn_ins_inds.append((self.num_lines - 1, size // 4)) - - def process_line(self, line, output_enc): - self.num_lines += 1 - if line.endswith('\\'): - self.glued_line += line[:-1] - return - line = self.glued_line + line - self.glued_line = '' - - real_line = line - line = re.sub(re_comment_or_string, re_comment_replacer, line) - line = line.strip() - line = re.sub(r'^[a-zA-Z0-9_]+:\s*', '', line) - changed_section = False - emitting_double = False - if line.startswith('glabel ') and self.cur_section == '.text': - self.text_glabels.append(line.split()[1]) - if not line: - pass # empty line - elif line.startswith('glabel ') or (' ' not in line and line.endswith(':')): - pass # label - elif line.startswith('.section') or line in ['.text', '.data', '.rdata', '.rodata', '.bss', '.late_rodata']: - # section change - self.cur_section = '.rodata' if line == '.rdata' else line.split(',')[0].split()[-1] - if self.cur_section not in ['.data', '.text', '.rodata', '.late_rodata', '.bss']: - self.fail("unrecognized .section directive", real_line) - changed_section = True - elif line.startswith('.late_rodata_alignment'): - if self.cur_section != '.late_rodata': - self.fail(".late_rodata_alignment must occur within .late_rodata section", real_line) - value = int(line.split()[1]) - if value not in [4, 8]: - self.fail(".late_rodata_alignment argument must be 4 or 8", real_line) - if self.late_rodata_alignment and self.late_rodata_alignment != value: - self.fail(".late_rodata_alignment alignment assumption conflicts with earlier .double directive. Make sure to provide explicit alignment padding.") - self.late_rodata_alignment = value - changed_section = True - elif line.startswith('.incbin'): - self.add_sized(int(line.split(',')[-1].strip(), 0), real_line) - elif line.startswith('.word') or line.startswith('.float'): - self.align4() - self.add_sized(4 * len(line.split(',')), real_line) - elif line.startswith('.double'): - self.align4() - if self.cur_section == '.late_rodata': - align8 = self.fn_section_sizes[self.cur_section] % 8 - # Automatically set late_rodata_alignment, so the generated C code uses doubles. - # This gives us correct alignment for the transferred doubles even when the - # late_rodata_alignment is wrong, e.g. for non-matching compilation. - if not self.late_rodata_alignment: - self.late_rodata_alignment = 8 - align8 - self.late_rodata_alignment_from_content = True - elif self.late_rodata_alignment != 8 - align8: - if self.late_rodata_alignment_from_content: - self.fail("found two .double directives with different start addresses mod 8. Make sure to provide explicit alignment padding.", real_line) - else: - self.fail(".double at address that is not 0 mod 8 (based on .late_rodata_alignment assumption). Make sure to provide explicit alignment padding.", real_line) - self.add_sized(8 * len(line.split(',')), real_line) - emitting_double = True - elif line.startswith('.space'): - self.add_sized(int(line.split()[1], 0), real_line) - elif line.startswith('.balign') or line.startswith('.align'): - align = int(line.split()[1]) - if align != 4: - self.fail("only .balign 4 is supported", real_line) - self.align4() - elif line.startswith('.asci'): - z = (line.startswith('.asciz') or line.startswith('.asciiz')) - self.add_sized(self.count_quoted_size(line, z, real_line, output_enc), real_line) - elif line.startswith('.byte'): - self.add_sized(len(line.split(',')), real_line) - elif line.startswith('.half'): - self.align2() - self.add_sized(2*len(line.split(',')), real_line) - elif line.startswith('.type'): - self.asm_conts.append(real_line) - elif line.startswith('.size'): - self.asm_conts.append(real_line) - elif line.startswith('.'): - # .macro, ... - self.fail("asm directive not supported", real_line) - else: - # Unfortunately, macros are hard to support for .rodata -- - # we don't know how how space they will expand to before - # running the assembler, but we need that information to - # construct the C code. So if we need that we'll either - # need to run the assembler twice (at least in some rare - # cases), or change how this program is invoked. - # Similarly, we can't currently deal with pseudo-instructions - # that expand to several real instructions. - if self.cur_section != '.text': - self.fail("instruction or macro call in non-.text section? not supported", real_line) - self.add_sized(4, real_line) - if self.cur_section == '.late_rodata': - if not changed_section: - if emitting_double: - self.late_rodata_asm_conts.append(".align 0") - self.late_rodata_asm_conts.append(real_line) - if emitting_double: - self.late_rodata_asm_conts.append(".align 2") - else: - self.asm_conts.append(real_line) - - def finish(self, state): - src = [''] * (self.num_lines + 1) - late_rodata_dummy_bytes = [] - jtbl_rodata_size = 0 - late_rodata_fn_output = [] - - num_instr = self.fn_section_sizes['.text'] // 4 - - if self.fn_section_sizes['.late_rodata'] > 0: - # Generate late rodata by emitting unique float constants. - # This requires 3 instructions for each 4 bytes of rodata. - # If we know alignment, we can use doubles, which give 3 - # instructions for 8 bytes of rodata. - size = self.fn_section_sizes['.late_rodata'] // 4 - skip_next = False - needs_double = (self.late_rodata_alignment != 0) - for i in range(size): - if skip_next: - skip_next = False - continue - # Jump tables give 9 instructions for >= 5 words of rodata, and should be - # emitted when: - # - -O2 or -O2 -g3 are used, which give the right codegen - # - we have emitted our first .float/.double (to ensure that we find the - # created rodata in the binary) - # - we have emitted our first .double, if any (to ensure alignment of doubles - # in shifted rodata sections) - # - we have at least 5 words of rodata left to emit (otherwise IDO does not - # generate a jump table) - # - we have at least 10 more instructions to go in this function (otherwise our - # function size computation will be wrong since the delay slot goes unused) - if (not needs_double and state.use_jtbl_for_rodata and i >= 1 and - size - i >= 5 and num_instr - len(late_rodata_fn_output) >= 10): - cases = " ".join("case {}:".format(case) for case in range(size - i)) - late_rodata_fn_output.append("switch (*(volatile int*)0) { " + cases + " ; }") - late_rodata_fn_output.extend([""] * 8) - jtbl_rodata_size = (size - i) * 4 - break - dummy_bytes = state.next_late_rodata_hex() - late_rodata_dummy_bytes.append(dummy_bytes) - if self.late_rodata_alignment == 4 * ((i + 1) % 2 + 1) and i + 1 < size: - dummy_bytes2 = state.next_late_rodata_hex() - late_rodata_dummy_bytes.append(dummy_bytes2) - fval, = struct.unpack('>d', dummy_bytes + dummy_bytes2) - late_rodata_fn_output.append('*(volatile double*)0 = {};'.format(fval)) - skip_next = True - needs_double = True - else: - fval, = struct.unpack('>f', dummy_bytes) - late_rodata_fn_output.append('*(volatile float*)0 = {}f;'.format(fval)) - late_rodata_fn_output.append('') - late_rodata_fn_output.append('') - - text_name = None - if self.fn_section_sizes['.text'] > 0 or late_rodata_fn_output: - text_name = state.make_name('func') - src[0] = 'void {}(void) {{'.format(text_name) - src[self.num_lines] = '}' - instr_count = self.fn_section_sizes['.text'] // 4 - if instr_count < state.min_instr_count: - self.fail("too short .text block") - tot_emitted = 0 - tot_skipped = 0 - fn_emitted = 0 - fn_skipped = 0 - rodata_stack = late_rodata_fn_output[::-1] - for (line, count) in self.fn_ins_inds: - for _ in range(count): - if (fn_emitted > MAX_FN_SIZE and instr_count - tot_emitted > state.min_instr_count and - (not rodata_stack or rodata_stack[-1])): - # Don't let functions become too large. When a function reaches 284 - # instructions, and -O2 -framepointer flags are passed, the IRIX - # compiler decides it is a great idea to start optimizing more. - fn_emitted = 0 - fn_skipped = 0 - src[line] += ' }} void {}(void) {{ '.format(state.make_name('large_func')) - if fn_skipped < state.skip_instr_count: - fn_skipped += 1 - tot_skipped += 1 - elif rodata_stack: - src[line] += rodata_stack.pop() - else: - src[line] += '*(volatile int*)0 = 0;' - tot_emitted += 1 - fn_emitted += 1 - if rodata_stack: - size = len(late_rodata_fn_output) // 3 - available = instr_count - tot_skipped - self.fail( - "late rodata to text ratio is too high: {} / {} must be <= 1/3\n" - "add .late_rodata_alignment (4|8) to the .late_rodata " - "block to double the allowed ratio." - .format(size, available)) - - rodata_name = None - if self.fn_section_sizes['.rodata'] > 0: - rodata_name = state.make_name('rodata') - src[self.num_lines] += ' const char {}[{}] = {{1}};'.format(rodata_name, self.fn_section_sizes['.rodata']) - - data_name = None - if self.fn_section_sizes['.data'] > 0: - data_name = state.make_name('data') - src[self.num_lines] += ' char {}[{}] = {{1}};'.format(data_name, self.fn_section_sizes['.data']) - - bss_name = None - if self.fn_section_sizes['.bss'] > 0: - bss_name = state.make_name('bss') - src[self.num_lines] += ' char {}[{}];'.format(bss_name, self.fn_section_sizes['.bss']) - - fn = Function( - text_glabels=self.text_glabels, - asm_conts=self.asm_conts, - late_rodata_dummy_bytes=late_rodata_dummy_bytes, - jtbl_rodata_size=jtbl_rodata_size, - late_rodata_asm_conts=self.late_rodata_asm_conts, - fn_desc=self.fn_desc, - data={ - '.text': (text_name, self.fn_section_sizes['.text']), - '.data': (data_name, self.fn_section_sizes['.data']), - '.rodata': (rodata_name, self.fn_section_sizes['.rodata']), - '.bss': (bss_name, self.fn_section_sizes['.bss']), - }) - return src, fn - -cutscene_data_regexpr = re.compile(r"CutsceneData (.|\n)*\[\] = {") -float_regexpr = re.compile(r"[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?f") - -def repl_float_hex(m): - return str(struct.unpack(">I", struct.pack(">f", float(m.group(0).strip().rstrip("f"))))[0]) - -def parse_source(f, opt, framepointer, input_enc, output_enc, print_source=None): - if opt in ['O2', 'O1']: - if framepointer: - min_instr_count = 6 - skip_instr_count = 5 - else: - min_instr_count = 2 - skip_instr_count = 1 - elif opt == 'g': - if framepointer: - min_instr_count = 7 - skip_instr_count = 7 - else: - min_instr_count = 4 - skip_instr_count = 4 - else: - if opt != 'g3': - raise Failure("must pass one of -g, -O1, -O2, -O2 -g3") - if framepointer: - min_instr_count = 4 - skip_instr_count = 4 - else: - min_instr_count = 2 - skip_instr_count = 2 - - use_jtbl_for_rodata = False - if opt in ['O2', 'g3'] and not framepointer: - use_jtbl_for_rodata = True - - state = GlobalState(min_instr_count, skip_instr_count, use_jtbl_for_rodata) - - global_asm = None - asm_functions = [] - output_lines = [] - - is_cutscene_data = False - - for line_no, raw_line in enumerate(f, 1): - raw_line = raw_line.rstrip() - line = raw_line.lstrip() - - # Print exactly one output line per source line, to make compiler - # errors have correct line numbers. These will be overridden with - # reasonable content further down. - output_lines.append('') - - if global_asm is not None: - if line.startswith(')'): - src, fn = global_asm.finish(state) - for i, line2 in enumerate(src): - output_lines[start_index + i] = line2 - asm_functions.append(fn) - global_asm = None - else: - global_asm.process_line(raw_line, output_enc) - else: - if line in ['GLOBAL_ASM(', '#pragma GLOBAL_ASM(']: - global_asm = GlobalAsmBlock("GLOBAL_ASM block at line " + str(line_no)) - start_index = len(output_lines) - elif ((line.startswith('GLOBAL_ASM("') or line.startswith('#pragma GLOBAL_ASM("')) - and line.endswith('")')): - fname = line[line.index('(') + 2 : -2] - global_asm = GlobalAsmBlock(fname) - with open(fname, encoding=input_enc) as f: - for line2 in f: - global_asm.process_line(line2.rstrip(), output_enc) - src, fn = global_asm.finish(state) - output_lines[-1] = ''.join(src) - asm_functions.append(fn) - global_asm = None - elif line.startswith('#include "') and line.endswith('" EARLY'): - # C includes qualified with EARLY (i.e. #include "file.c" EARLY) will be - # processed recursively when encountered - fpath = os.path.dirname(f.name) - fname = line[line.index(' ') + 2 : -7] - include_src = StringIO() - with open(fpath + os.path.sep + fname, encoding=input_enc) as include_file: - parse_source(include_file, opt, framepointer, input_enc, output_enc, include_src) - output_lines[-1] = include_src.getvalue() - include_src.write('#line ' + str(line_no) + '\n') - include_src.close() - else: - # This is a hack to replace all floating-point numbers in an array of a particular type - # (in this case CutsceneData) with their corresponding IEEE-754 hexadecimal representation - if cutscene_data_regexpr.search(line) is not None: - is_cutscene_data = True - elif line.endswith("};"): - is_cutscene_data = False - if is_cutscene_data: - raw_line = re.sub(float_regexpr, repl_float_hex, raw_line) - output_lines[-1] = raw_line - - if print_source: - if isinstance(print_source, StringIO): - for line in output_lines: - print_source.write(line + '\n') - else: - for line in output_lines: - print_source.write(line.encode(output_enc) + b'\n') - print_source.flush() - if print_source != sys.stdout.buffer: - print_source.close() - - return asm_functions - -def fixup_objfile(objfile_name, functions, asm_prelude, assembler, output_enc): - SECTIONS = ['.data', '.text', '.rodata', '.bss'] - - with open(objfile_name, 'rb') as f: - objfile = ElfFile(f.read()) - - prev_locs = { - '.text': 0, - '.data': 0, - '.rodata': 0, - '.bss': 0, - } - to_copy = { - '.text': [], - '.data': [], - '.rodata': [], - '.bss': [], - } - asm = [] - all_late_rodata_dummy_bytes = [] - all_jtbl_rodata_size = [] - late_rodata_asm = [] - late_rodata_source_name_start = None - late_rodata_source_name_end = None - - # Generate an assembly file with all the assembly we need to fill in. For - # simplicity we pad with nops/.space so that addresses match exactly, so we - # don't have to fix up relocations/symbol references. - all_text_glabels = set() - for function in functions: - ifdefed = False - for sectype, (temp_name, size) in function.data.items(): - if temp_name is None: - continue - assert size > 0 - loc = objfile.symtab.find_symbol(temp_name) - if loc is None: - ifdefed = True - break - loc = loc[1] - prev_loc = prev_locs[sectype] - if loc < prev_loc: - raise Failure("Wrongly computed size for section {} (diff {}). This is an asm-processor bug!".format(sectype, prev_loc- loc)) - if loc != prev_loc: - asm.append('.section ' + sectype) - if sectype == '.text': - for i in range((loc - prev_loc) // 4): - asm.append('nop') - else: - asm.append('.space {}'.format(loc - prev_loc)) - to_copy[sectype].append((loc, size, temp_name, function.fn_desc)) - prev_locs[sectype] = loc + size - if not ifdefed: - all_text_glabels.update(function.text_glabels) - all_late_rodata_dummy_bytes.append(function.late_rodata_dummy_bytes) - all_jtbl_rodata_size.append(function.jtbl_rodata_size) - late_rodata_asm.append(function.late_rodata_asm_conts) - for sectype, (temp_name, size) in function.data.items(): - if temp_name is not None: - asm.append('.section ' + sectype) - asm.append('glabel ' + temp_name + '_asm_start') - asm.append('.text') - for line in function.asm_conts: - asm.append(line) - for sectype, (temp_name, size) in function.data.items(): - if temp_name is not None: - asm.append('.section ' + sectype) - asm.append('glabel ' + temp_name + '_asm_end') - if any(late_rodata_asm): - late_rodata_source_name_start = '_asmpp_late_rodata_start' - late_rodata_source_name_end = '_asmpp_late_rodata_end' - asm.append('.rdata') - asm.append('glabel {}'.format(late_rodata_source_name_start)) - for conts in late_rodata_asm: - asm.extend(conts) - asm.append('glabel {}'.format(late_rodata_source_name_end)) - - o_file = tempfile.NamedTemporaryFile(prefix='asm-processor', suffix='.o', delete=False) - o_name = o_file.name - o_file.close() - s_file = tempfile.NamedTemporaryFile(prefix='asm-processor', suffix='.s', delete=False) - s_name = s_file.name - try: - s_file.write(asm_prelude + b'\n') - for line in asm: - s_file.write(line.encode(output_enc) + b'\n') - s_file.close() - ret = os.system(assembler + " " + s_name + " -o " + o_name) - if ret != 0: - raise Failure("failed to assemble") - with open(o_name, 'rb') as f: - asm_objfile = ElfFile(f.read()) - - # Remove some clutter from objdump output - objfile.drop_irrelevant_sections() - - # Unify reginfo sections - target_reginfo = objfile.find_section('.reginfo') - source_reginfo_data = list(asm_objfile.find_section('.reginfo').data) - data = list(target_reginfo.data) - for i in range(20): - data[i] |= source_reginfo_data[i] - target_reginfo.data = bytes(data) - - # Move over section contents - modified_text_positions = set() - jtbl_rodata_positions = set() - last_rodata_pos = 0 - for sectype in SECTIONS: - if not to_copy[sectype]: - continue - source = asm_objfile.find_section(sectype) - assert source is not None, "didn't find source section: " + sectype - for (pos, count, temp_name, fn_desc) in to_copy[sectype]: - loc1 = asm_objfile.symtab.find_symbol_in_section(temp_name + '_asm_start', source) - loc2 = asm_objfile.symtab.find_symbol_in_section(temp_name + '_asm_end', source) - assert loc1 == pos, "assembly and C files don't line up for section " + sectype + ", " + fn_desc - if loc2 - loc1 != count: - raise Failure("incorrectly computed size for section " + sectype + ", " + fn_desc + ". If using .double, make sure to provide explicit alignment padding.") - if sectype == '.bss': - continue - target = objfile.find_section(sectype) - assert target is not None, "missing target section of type " + sectype - data = list(target.data) - for (pos, count, _, _) in to_copy[sectype]: - data[pos:pos + count] = source.data[pos:pos + count] - if sectype == '.text': - assert count % 4 == 0 - assert pos % 4 == 0 - for i in range(count // 4): - modified_text_positions.add(pos + 4 * i) - elif sectype == '.rodata': - last_rodata_pos = pos + count - target.data = bytes(data) - - # Move over late rodata. This is heuristic, sadly, since I can't think - # of another way of doing it. - moved_late_rodata = {} - if any(all_late_rodata_dummy_bytes) or any(all_jtbl_rodata_size): - source = asm_objfile.find_section('.rodata') - target = objfile.find_section('.rodata') - source_pos = asm_objfile.symtab.find_symbol_in_section(late_rodata_source_name_start, source) - source_end = asm_objfile.symtab.find_symbol_in_section(late_rodata_source_name_end, source) - if source_end - source_pos != sum(map(len, all_late_rodata_dummy_bytes)) * 4 + sum(all_jtbl_rodata_size): - raise Failure("computed wrong size of .late_rodata") - new_data = list(target.data) - for dummy_bytes_list, jtbl_rodata_size in zip(all_late_rodata_dummy_bytes, all_jtbl_rodata_size): - for index, dummy_bytes in enumerate(dummy_bytes_list): - pos = target.data.index(dummy_bytes, last_rodata_pos) - # This check is nice, but makes time complexity worse for large files: - if SLOW_CHECKS and target.data.find(dummy_bytes, pos + 4) != -1: - raise Failure("multiple occurrences of late_rodata hex magic. Change asm-processor to use something better than 0xE0123456!") - if index == 0 and len(dummy_bytes_list) > 1 and target.data[pos+4:pos+8] == b'\0\0\0\0': - # Ugly hack to handle double alignment for non-matching builds. - # We were told by .late_rodata_alignment (or deduced from a .double) - # that a function's late_rodata started out 4 (mod 8), and emitted - # a float and then a double. But it was actually 0 (mod 8), so our - # double was moved by 4 bytes. To make them adjacent to keep jump - # tables correct, move the float by 4 bytes as well. - new_data[pos:pos+4] = b'\0\0\0\0' - pos += 4 - new_data[pos:pos+4] = source.data[source_pos:source_pos+4] - moved_late_rodata[source_pos] = pos - last_rodata_pos = pos + 4 - source_pos += 4 - if jtbl_rodata_size > 0: - assert dummy_bytes_list, "should always have dummy bytes before jtbl data" - pos = last_rodata_pos - new_data[pos : pos + jtbl_rodata_size] = \ - source.data[source_pos : source_pos + jtbl_rodata_size] - for i in range(0, jtbl_rodata_size, 4): - moved_late_rodata[source_pos + i] = pos + i - jtbl_rodata_positions.add(pos + i) - last_rodata_pos += jtbl_rodata_size - source_pos += jtbl_rodata_size - target.data = bytes(new_data) - - # Merge strtab data. - strtab_adj = len(objfile.symtab.strtab.data) - objfile.symtab.strtab.data += asm_objfile.symtab.strtab.data - - # Find relocated symbols - relocated_symbols = set() - for sectype in SECTIONS: - for obj in [asm_objfile, objfile]: - sec = obj.find_section(sectype) - if sec is None: - continue - for reltab in sec.relocated_by: - for rel in reltab.relocations: - relocated_symbols.add(obj.symtab.symbol_entries[rel.sym_index]) - - # Move over symbols, deleting the temporary function labels. - # Sometimes this naive procedure results in duplicate symbols, or UNDEF - # symbols that are also defined the same .o file. Hopefully that's fine. - # Skip over local symbols that aren't used relocated against, to avoid - # conflicts. - new_local_syms = [s for s in objfile.symtab.local_symbols() if not is_temp_name(s.name)] - new_global_syms = [s for s in objfile.symtab.global_symbols() if not is_temp_name(s.name)] - for i, s in enumerate(asm_objfile.symtab.symbol_entries): - is_local = (i < asm_objfile.symtab.sh_info) - if is_local and s not in relocated_symbols: - continue - if is_temp_name(s.name): - continue - if s.st_shndx not in [SHN_UNDEF, SHN_ABS]: - section_name = asm_objfile.sections[s.st_shndx].name - if section_name not in SECTIONS: - raise Failure("generated assembly .o must only have symbols for .text, .data, .rodata, ABS and UNDEF, but found " + section_name) - s.st_shndx = objfile.find_section(section_name).index - # glabel's aren't marked as functions, making objdump output confusing. Fix that. - if s.name in all_text_glabels: - s.type = STT_FUNC - if objfile.sections[s.st_shndx].name == '.rodata' and s.st_value in moved_late_rodata: - s.st_value = moved_late_rodata[s.st_value] - s.st_name += strtab_adj - if is_local: - new_local_syms.append(s) - else: - new_global_syms.append(s) - new_syms = new_local_syms + new_global_syms - for i, s in enumerate(new_syms): - s.new_index = i - objfile.symtab.data = b''.join(s.to_bin() for s in new_syms) - objfile.symtab.sh_info = len(new_local_syms) - - # Move over relocations - for sectype in SECTIONS: - source = asm_objfile.find_section(sectype) - target = objfile.find_section(sectype) - - if target is not None: - # fixup relocation symbol indices, since we butchered them above - for reltab in target.relocated_by: - nrels = [] - for rel in reltab.relocations: - if (sectype == '.text' and rel.r_offset in modified_text_positions or - sectype == '.rodata' and rel.r_offset in jtbl_rodata_positions): - # don't include relocations for late_rodata dummy code - continue - # hopefully we don't have relocations for local or - # temporary symbols, so new_index exists - rel.sym_index = objfile.symtab.symbol_entries[rel.sym_index].new_index - nrels.append(rel) - reltab.relocations = nrels - reltab.data = b''.join(rel.to_bin() for rel in nrels) - - if not source: - continue - - target_reltab = objfile.find_section('.rel' + sectype) - target_reltaba = objfile.find_section('.rela' + sectype) - for reltab in source.relocated_by: - for rel in reltab.relocations: - rel.sym_index = asm_objfile.symtab.symbol_entries[rel.sym_index].new_index - if sectype == '.rodata' and rel.r_offset in moved_late_rodata: - rel.r_offset = moved_late_rodata[rel.r_offset] - new_data = b''.join(rel.to_bin() for rel in reltab.relocations) - if reltab.sh_type == SHT_REL: - if not target_reltab: - target_reltab = objfile.add_section('.rel' + sectype, - sh_type=SHT_REL, sh_flags=0, - sh_link=objfile.symtab.index, sh_info=target.index, - sh_addralign=4, sh_entsize=8, data=b'') - target_reltab.data += new_data - else: - if not target_reltaba: - target_reltaba = objfile.add_section('.rela' + sectype, - sh_type=SHT_RELA, sh_flags=0, - sh_link=objfile.symtab.index, sh_info=target.index, - sh_addralign=4, sh_entsize=12, data=b'') - target_reltaba.data += new_data - - objfile.write(objfile_name) - finally: - s_file.close() - os.remove(s_name) - try: - os.remove(o_name) - except: - pass - -def run_wrapped(argv, outfile, functions): - parser = argparse.ArgumentParser(description="Pre-process .c files and post-process .o files to enable embedding assembly into C.") - parser.add_argument('filename', help="path to .c code") - parser.add_argument('--post-process', dest='objfile', help="path to .o file to post-process") - parser.add_argument('--assembler', dest='assembler', help="assembler command (e.g. \"mips-linux-gnu-as -march=vr4300 -mabi=32\")") - parser.add_argument('--asm-prelude', dest='asm_prelude', help="path to a file containing a prelude to the assembly file (with .set and .macro directives, e.g.)") - parser.add_argument('--input-enc', default='latin1', help="Input encoding (default: latin1)") - parser.add_argument('--output-enc', default='latin1', help="Output encoding (default: latin1)") - parser.add_argument('-framepointer', dest='framepointer', action='store_true') - parser.add_argument('-g3', dest='g3', action='store_true') - group = parser.add_mutually_exclusive_group(required=True) - group.add_argument('-O1', dest='opt', action='store_const', const='O1') - group.add_argument('-O2', dest='opt', action='store_const', const='O2') - group.add_argument('-g', dest='opt', action='store_const', const='g') - args = parser.parse_args(argv) - opt = args.opt - if args.g3: - if opt != 'O2': - raise Failure("-g3 is only supported together with -O2") - opt = 'g3' - - if args.objfile is None: - with open(args.filename, encoding=args.input_enc) as f: - return parse_source(f, opt=opt, framepointer=args.framepointer, input_enc=args.input_enc, output_enc=args.output_enc, print_source=outfile) - else: - if args.assembler is None: - raise Failure("must pass assembler command") - if functions is None: - with open(args.filename, encoding=args.input_enc) as f: - functions = parse_source(f, opt=opt, framepointer=args.framepointer, input_enc=args.input_enc, output_enc=args.output_enc) - if not functions: - return - asm_prelude = b'' - if args.asm_prelude: - with open(args.asm_prelude, 'rb') as f: - asm_prelude = f.read() - fixup_objfile(args.objfile, functions, asm_prelude, args.assembler, args.output_enc) - -def run(argv, outfile=sys.stdout.buffer, functions=None): - try: - return run_wrapped(argv, outfile, functions) - except Failure as e: - print("Error:", e, file=sys.stderr) - sys.exit(1) - -if __name__ == "__main__": - run(sys.argv[1:]) diff --git a/tools/asm-processor/build.py b/tools/asm-processor/build.py deleted file mode 100644 index 0378db326..000000000 --- a/tools/asm-processor/build.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python3 -import sys -import os -import shlex -import subprocess -import tempfile -import asm_processor - -dir_path = os.path.dirname(os.path.realpath(__file__)) -prelude = os.path.join(dir_path, "prelude.s") - -all_args = sys.argv[1:] -sep1 = all_args.index('--') -sep2 = all_args.index('--', sep1+1) - -compiler = all_args[:sep1] - -assembler = all_args[sep1+1:sep2] -assembler_sh = ' '.join(shlex.quote(x) for x in assembler) - -compile_args = all_args[sep2+1:] -in_file = compile_args[-1] -out_ind = compile_args.index('-o') -out_file = compile_args[out_ind + 1] -del compile_args[-1] -del compile_args[out_ind + 1] -del compile_args[out_ind] - -in_dir = os.path.split(os.path.realpath(in_file))[0] -opt_flags = [x for x in compile_args if x in ['-g3', '-g', '-O1', '-O2', '-framepointer']] - -preprocessed_file = tempfile.NamedTemporaryFile(prefix='preprocessed', suffix='.c', delete=False) - -try: - asmproc_flags = opt_flags + [in_file, '--input-enc', 'utf-8', '--output-enc', 'euc-jp'] - compile_cmdline = compiler + compile_args + ['-I', in_dir, '-o', out_file, preprocessed_file.name] - - functions = asm_processor.run(asmproc_flags, outfile=preprocessed_file) - try: - subprocess.check_call(compile_cmdline) - except subprocess.CalledProcessError as e: - print("Failed to compile file " + in_file + ". Command line:") - print() - print(' '.join(shlex.quote(x) for x in compile_cmdline)) - print() - sys.exit(55) - # To keep the preprocessed file: - # os._exit(1) - - asm_processor.run(asmproc_flags + ['--post-process', out_file, '--assembler', assembler_sh, '--asm-prelude', prelude], functions=functions) -finally: - os.remove(preprocessed_file.name) \ No newline at end of file diff --git a/tools/asm-processor/compile.sh b/tools/asm-processor/compile.sh deleted file mode 100755 index 20ce827fc..000000000 --- a/tools/asm-processor/compile.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -set -e -set -o pipefail -INPUT="$1" -OUTPUT="${INPUT%.c}.o" - -CC="./tools/ido-7.1recomp/cc" -CFLAGS="-Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -fullwarn -wlint -woff 819,820,852,821 -signed -DVERSION_JP=1 -mips2" # -I include -AS="mips-linux-gnu-as" -ASFLAGS="-march=vr4300 -mabi=32 --defsym VERSION_JP=1" # -I include -set +e -OPTFLAGS=$(grep '^// COMPILE-FLAGS: ' $INPUT | sed 's#^// COMPILE-FLAGS: ##') -set -e -if [[ -z "$OPTFLAGS" ]]; then - OPTFLAGS="-g" -fi - -python3 asm-processor/asm_processor.py "$OPTFLAGS" "$INPUT" | $CC -c $CFLAGS asm-processor/include-stdin.c -o "$OUTPUT" "$OPTFLAGS" -python3 asm-processor/asm_processor.py "$OPTFLAGS" "$INPUT" --post-process "$OUTPUT" --assembler "$AS $ASFLAGS" --asm-prelude prelude.s diff --git a/tools/asm-processor/include-stdin.c b/tools/asm-processor/include-stdin.c deleted file mode 100644 index c21aa6f65..000000000 --- a/tools/asm-processor/include-stdin.c +++ /dev/null @@ -1,2 +0,0 @@ -// (this is used for piping input to the IRIX compiler without needing to make a temporary .c file) -#include "/dev/stdin" diff --git a/tools/asm-processor/prelude.s b/tools/asm-processor/prelude.s deleted file mode 100644 index 5118a5c61..000000000 --- a/tools/asm-processor/prelude.s +++ /dev/null @@ -1,8 +0,0 @@ -.set noat -.set noreorder -.set gp=64 -.macro glabel label - .global \label - \label: -.endm - diff --git a/tools/asm-processor/run-tests.sh b/tools/asm-processor/run-tests.sh deleted file mode 100755 index 27462d1c1..000000000 --- a/tools/asm-processor/run-tests.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -for A in tests/*.c; do - ./compile.sh "$A" && mips-linux-gnu-objdump -s "${A%.c}.o" | diff - "${A%.c}.objdump" || echo FAIL "$A" -done diff --git a/tools/asm-processor/tests/ascii.c b/tools/asm-processor/tests/ascii.c deleted file mode 100644 index bb27d2527..000000000 --- a/tools/asm-processor/tests/ascii.c +++ /dev/null @@ -1,19 +0,0 @@ -void foo(void) { "abcdef"; } - -GLOBAL_ASM( -.rdata - .ascii "AB" - .ascii "CD", "EF" - .ascii "GH\n\n\n\0\11\222\3333\44444\x1234567\n\nIJK" -) - -void bar(void) { "hello"; } - -GLOBAL_ASM( -.rdata - .asciiz "12" - .asciiz "34", "56" - .asciiz "78\n\n\n\0\11\222\3333\44444\x1234567\n\n9A" -) - -void baz(void) { "ghijkl"; } diff --git a/tools/asm-processor/tests/ascii.objdump b/tools/asm-processor/tests/ascii.objdump deleted file mode 100644 index f294d5e53..000000000 --- a/tools/asm-processor/tests/ascii.objdump +++ /dev/null @@ -1,19 +0,0 @@ - -tests/ascii.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 03e00008 00000000 03e00008 00000000 ................ - 0010 03e00008 00000000 03e00008 00000000 ................ - 0020 03e00008 00000000 03e00008 00000000 ................ -Contents of section .rodata: - 0000 61626364 65660000 41424344 45464748 abcdef..ABCDEFGH - 0010 0a0a0a00 0992db33 24343467 0a0a494a .......3$44g..IJ - 0020 4b000000 68656c6c 6f000000 31320033 K...hello...12.3 - 0030 34003536 0037380a 0a0a0009 92db3324 4.56.78.......3$ - 0040 3434670a 0a394100 6768696a 6b6c0000 44g..9A.ghijkl.. -Contents of section .options: - 0000 01200000 00000000 80000000 00000000 . .............. - 0010 00000000 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 80000000 00000000 00000000 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/comments.c b/tools/asm-processor/tests/comments.c deleted file mode 100644 index 9543269a1..000000000 --- a/tools/asm-processor/tests/comments.c +++ /dev/null @@ -1,6 +0,0 @@ -const char before[] = "^"; -GLOBAL_ASM( -.rdata -.asciz "aaaa /* bbbb */ # cccc" /**//**//**//**/ /*/ "xxxx" /*/ /* dddd " eeee */ "# ffff" # gggg "hhhh" /* iiii */ -) -const char after[] = "$"; diff --git a/tools/asm-processor/tests/comments.objdump b/tools/asm-processor/tests/comments.objdump deleted file mode 100644 index 89798e3e4..000000000 --- a/tools/asm-processor/tests/comments.objdump +++ /dev/null @@ -1,13 +0,0 @@ - -tests/comments.o: file format elf32-tradbigmips - -Contents of section .rodata: - 0000 5e000000 61616161 202f2a20 62626262 ^...aaaa /* bbbb - 0010 202a2f20 23206363 63630023 20666666 */ # cccc.# fff - 0020 66000000 24000000 00000000 00000000 f...$........... -Contents of section .options: - 0000 01200000 00000000 00000000 00000000 . .............. - 0010 00000000 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 00000000 00000000 00000000 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/label-sameline.c b/tools/asm-processor/tests/label-sameline.c deleted file mode 100644 index a35b43d85..000000000 --- a/tools/asm-processor/tests/label-sameline.c +++ /dev/null @@ -1,7 +0,0 @@ -GLOBAL_ASM( -.rdata -.word 0x12345678 -glabel blah -.word blah2 - /*a*/ blah2: /*b*/ .word blah /*c*/ -) diff --git a/tools/asm-processor/tests/label-sameline.objdump b/tools/asm-processor/tests/label-sameline.objdump deleted file mode 100644 index b0e8b42c8..000000000 --- a/tools/asm-processor/tests/label-sameline.objdump +++ /dev/null @@ -1,11 +0,0 @@ - -tests/label-sameline.o: file format elf32-tradbigmips - -Contents of section .rodata: - 0000 12345678 00000008 00000000 00000000 .4Vx............ -Contents of section .options: - 0000 01200000 00000000 00000000 00000000 . .............. - 0010 00000000 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 00000000 00000000 00000000 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/large.c b/tools/asm-processor/tests/large.c deleted file mode 100644 index 4ffb4ac12..000000000 --- a/tools/asm-processor/tests/large.c +++ /dev/null @@ -1,164 +0,0 @@ - -GLOBAL_ASM( -glabel test - -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 -addiu $sp, $sp, -24 - sw $zero, 4($sp) -lw $t6, 4($sp) -addu $t7, $a0, $t6 -sb $zero, ($t7) -lw $t8, 4($sp) -addiu $t9, $t8, 1 -slt $at, $t9, $a1 - sw $t9, 4($sp) - nop -jr $ra - addiu $sp, $sp, 24 - -) - -void foo(void) {} diff --git a/tools/asm-processor/tests/large.objdump b/tools/asm-processor/tests/large.objdump deleted file mode 100644 index 873746e25..000000000 --- a/tools/asm-processor/tests/large.objdump +++ /dev/null @@ -1,50 +0,0 @@ - -tests/large.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0010 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0020 afb90004 00000000 03e00008 27bd0018 ............'... - 0030 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0040 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0050 afb90004 00000000 03e00008 27bd0018 ............'... - 0060 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0070 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0080 afb90004 00000000 03e00008 27bd0018 ............'... - 0090 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 00a0 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 00b0 afb90004 00000000 03e00008 27bd0018 ............'... - 00c0 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 00d0 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 00e0 afb90004 00000000 03e00008 27bd0018 ............'... - 00f0 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0100 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0110 afb90004 00000000 03e00008 27bd0018 ............'... - 0120 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0130 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0140 afb90004 00000000 03e00008 27bd0018 ............'... - 0150 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0160 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0170 afb90004 00000000 03e00008 27bd0018 ............'... - 0180 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0190 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 01a0 afb90004 00000000 03e00008 27bd0018 ............'... - 01b0 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 01c0 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 01d0 afb90004 00000000 03e00008 27bd0018 ............'... - 01e0 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 01f0 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0200 afb90004 00000000 03e00008 27bd0018 ............'... - 0210 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0220 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0230 afb90004 00000000 03e00008 27bd0018 ............'... - 0240 27bdffe8 afa00004 8fae0004 008e7821 '.............x! - 0250 a1e00000 8fb80004 27190001 0325082a ........'....%.* - 0260 afb90004 00000000 03e00008 27bd0018 ............'... - 0270 03e00008 00000000 03e00008 00000000 ................ -Contents of section .options: - 0000 01200000 00000000 80000000 00000000 . .............. - 0010 00000000 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 a300c032 00000000 00000000 00000000 ...2............ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/late_rodata_align.c b/tools/asm-processor/tests/late_rodata_align.c deleted file mode 100644 index 7367c792b..000000000 --- a/tools/asm-processor/tests/late_rodata_align.c +++ /dev/null @@ -1,80 +0,0 @@ -GLOBAL_ASM( -.late_rodata - .float 4.1 - .float 4.2 - .float 4.3 - .float 4.4 -.text -glabel a - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - -float foo(void) { "foo"; return 1.1f; } - -GLOBAL_ASM( -.late_rodata -.late_rodata_alignment 4 - .float 5.1 - .float 5.2 - .float 5.3 - .float 5.4 -.text -glabel b - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - -float bar(void) { "bar"; return 1.2f; } - -GLOBAL_ASM( -.late_rodata -.late_rodata_alignment 8 - .float 6.1 - .float 6.2 - .float 6.3 - .float 6.4 - .float 6.5 -.text -glabel c - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - diff --git a/tools/asm-processor/tests/late_rodata_align.objdump b/tools/asm-processor/tests/late_rodata_align.objdump deleted file mode 100644 index d302e6c8b..000000000 --- a/tools/asm-processor/tests/late_rodata_align.objdump +++ /dev/null @@ -1,31 +0,0 @@ - -tests/late_rodata_align.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 00000000 00000000 00000000 00000000 ................ - 0010 00000000 00000000 00000000 00000000 ................ - 0020 00000000 00000000 00000000 00000000 ................ - 0030 00000000 00000000 00000000 00000000 ................ - 0040 3c010000 03e00008 c4200018 03e00008 <........ ...... - 0050 00000000 03e00008 00000000 00000000 ................ - 0060 00000000 00000000 00000000 00000000 ................ - 0070 00000000 00000000 00000000 00000000 ................ - 0080 00000000 00000000 00000000 00000000 ................ - 0090 3c010000 03e00008 c420002c 03e00008 <........ .,.... - 00a0 00000000 03e00008 00000000 00000000 ................ - 00b0 00000000 00000000 00000000 00000000 ................ - 00c0 00000000 00000000 00000000 00000000 ................ - 00d0 00000000 00000000 00000000 00000000 ................ - 00e0 00000000 00000000 00000000 00000000 ................ -Contents of section .rodata: - 0000 666f6f00 62617200 40833333 40866666 foo.bar.@.33@.ff - 0010 4089999a 408ccccd 3f8ccccd 40a33333 @...@...?...@.33 - 0020 40a66666 40a9999a 40accccd 3f99999a @.ff@...@...?... - 0030 40c33333 40c66666 40c9999a 40cccccd @.33@.ff@...@... - 0040 40d00000 00000000 00000000 00000000 @............... -Contents of section .options: - 0000 01200000 00000000 80000002 00000000 . .............. - 0010 000005f1 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 80000002 00000000 000005f1 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/late_rodata_doubles.c b/tools/asm-processor/tests/late_rodata_doubles.c deleted file mode 100644 index 0a27b4148..000000000 --- a/tools/asm-processor/tests/late_rodata_doubles.c +++ /dev/null @@ -1,83 +0,0 @@ -GLOBAL_ASM( -.late_rodata - .float 4.1 -.text -glabel a - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - -float foo(void) { - return 4.15f; -} - -GLOBAL_ASM( -.late_rodata - .float 4.2 - .word 0 - .double 4.3 -.text -glabel b - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - -float bar(void) { - return 4.4f; -} - -GLOBAL_ASM( -.late_rodata - .float 4.55 - .double 4.6 -.text -glabel c - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - -float baz(void) { - return 4.6f; -} diff --git a/tools/asm-processor/tests/late_rodata_doubles.objdump b/tools/asm-processor/tests/late_rodata_doubles.objdump deleted file mode 100644 index dc5f52d5f..000000000 --- a/tools/asm-processor/tests/late_rodata_doubles.objdump +++ /dev/null @@ -1,32 +0,0 @@ - -tests/late_rodata_doubles.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 00000000 00000000 00000000 00000000 ................ - 0010 00000000 00000000 00000000 00000000 ................ - 0020 00000000 00000000 00000000 00000000 ................ - 0030 00000000 00000000 00000000 00000000 ................ - 0040 3c010000 03e00008 c4200004 03e00008 <........ ...... - 0050 00000000 03e00008 00000000 00000000 ................ - 0060 00000000 00000000 00000000 00000000 ................ - 0070 00000000 00000000 00000000 00000000 ................ - 0080 00000000 00000000 00000000 00000000 ................ - 0090 00000000 00000000 00000000 3c010000 ............<... - 00a0 03e00008 c4200018 03e00008 00000000 ..... .......... - 00b0 03e00008 00000000 00000000 00000000 ................ - 00c0 00000000 00000000 00000000 00000000 ................ - 00d0 00000000 00000000 00000000 00000000 ................ - 00e0 00000000 00000000 00000000 00000000 ................ - 00f0 00000000 00000000 3c010000 03e00008 ........<....... - 0100 c4200028 03e00008 00000000 03e00008 . .(............ - 0110 00000000 00000000 00000000 00000000 ................ -Contents of section .rodata: - 0000 40833333 4084cccd 40866666 00000000 @.33@...@.ff.... - 0010 40113333 33333333 408ccccd 4091999a @.333333@...@... - 0020 40126666 66666666 40933333 00000000 @.ffffff@.33.... -Contents of section .options: - 0000 01200000 00000000 80000002 00000000 . .............. - 0010 000000f1 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 80000002 00000000 000000f1 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/late_rodata_jtbl.c b/tools/asm-processor/tests/late_rodata_jtbl.c deleted file mode 100644 index a95a7d588..000000000 --- a/tools/asm-processor/tests/late_rodata_jtbl.c +++ /dev/null @@ -1,77 +0,0 @@ -// COMPILE-FLAGS: -O2 -float a(void) { return 1.1f; } - -GLOBAL_ASM( -glabel a2 -move $a0, $a0 -nop -nop -nop -jr $ra -move $a0, $a0 -) - -GLOBAL_ASM( -.late_rodata - -glabel jtbl -.word case0, case1, case2, case3, case4, case5, case6, case7, case8, case9, case10 -.word case11, case12, case13, case14, case15, case16, case17, case18, case19, case20 -.word case21, case22, case23, case24, case25, case26 - -.text -glabel foo -sltiu $at, $a0, 0xa -beqz $at, .L756E659B - sll $t7, $a0, 2 -lui $at, %hi(jtbl) -addu $at, $at, $t7 -lw $t7, %lo(jtbl)($at) -jr $t7 - nop -case0: addiu $a0, $a0, 1 -case1: addiu $a0, $a0, 1 -case2: addiu $a0, $a0, 1 -case3: addiu $a0, $a0, 1 -case4: addiu $a0, $a0, 1 -case5: addiu $a0, $a0, 1 -case6: addiu $a0, $a0, 1 -case7: addiu $a0, $a0, 1 -case8: addiu $a0, $a0, 1 -case9: addiu $a0, $a0, 1 -case10: addiu $a0, $a0, 1 -case11: addiu $a0, $a0, 1 -case12: addiu $a0, $a0, 1 -case13: addiu $a0, $a0, 1 -case14: addiu $a0, $a0, 1 -case15: addiu $a0, $a0, 1 -case16: addiu $a0, $a0, 1 -case17: addiu $a0, $a0, 1 -case18: addiu $a0, $a0, 1 -case19: addiu $a0, $a0, 1 -case20: addiu $a0, $a0, 1 -case21: addiu $a0, $a0, 1 -case22: addiu $a0, $a0, 1 -case23: addiu $a0, $a0, 1 -case24: addiu $a0, $a0, 1 -case25: addiu $a0, $a0, 1 -case26: -jr $ra - addiu $v0, $a0, 1 - -.L756E659B: -addiu $v0, $zero, 2 -jr $ra - nop -) - -GLOBAL_ASM( -glabel b2 -move $a0, $a0 -nop -nop -jr $ra -move $a0, $a0 -) - -float b(void) { return 1.2f; } diff --git a/tools/asm-processor/tests/late_rodata_jtbl.objdump b/tools/asm-processor/tests/late_rodata_jtbl.objdump deleted file mode 100644 index 434c222a8..000000000 --- a/tools/asm-processor/tests/late_rodata_jtbl.objdump +++ /dev/null @@ -1,33 +0,0 @@ - -tests/late_rodata_jtbl.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 3c010000 03e00008 c4200000 00802025 <........ .... % - 0010 00000000 00000000 00000000 03e00008 ................ - 0020 00802025 2c81000a 10200022 00047880 .. %,.... ."..x. - 0030 3c010000 002f0821 8c2f0000 01e00008 <..../.!./...... - 0040 00000000 24840001 24840001 24840001 ....$...$...$... - 0050 24840001 24840001 24840001 24840001 $...$...$...$... - 0060 24840001 24840001 24840001 24840001 $...$...$...$... - 0070 24840001 24840001 24840001 24840001 $...$...$...$... - 0080 24840001 24840001 24840001 24840001 $...$...$...$... - 0090 24840001 24840001 24840001 24840001 $...$...$...$... - 00a0 24840001 24840001 24840001 03e00008 $...$...$....... - 00b0 24820001 24020002 03e00008 00000000 $...$........... - 00c0 00802025 00000000 00000000 03e00008 .. %............ - 00d0 00802025 3c010000 03e00008 c4200070 .. %<........ .p -Contents of section .rodata: - 0000 3f8ccccd 00000044 00000048 0000004c ?......D...H...L - 0010 00000050 00000054 00000058 0000005c ...P...T...X...\ - 0020 00000060 00000064 00000068 0000006c ...`...d...h...l - 0030 00000070 00000074 00000078 0000007c ...p...t...x...| - 0040 00000080 00000084 00000088 0000008c ................ - 0050 00000090 00000094 00000098 0000009c ................ - 0060 000000a0 000000a4 000000a8 000000ac ................ - 0070 3f99999a 00000000 00000000 00000000 ?............... -Contents of section .options: - 0000 01200000 00000000 80004002 00000000 . ........@..... - 0010 00000011 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 8000c016 00000000 00000011 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/late_rodata_misaligned_doubles.c b/tools/asm-processor/tests/late_rodata_misaligned_doubles.c deleted file mode 100644 index a453dbdd4..000000000 --- a/tools/asm-processor/tests/late_rodata_misaligned_doubles.c +++ /dev/null @@ -1,77 +0,0 @@ -GLOBAL_ASM( -.late_rodata - .float 4.01 - .word 0 - .double 4.02 -.text -glabel a - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - -double foo(void) { return 4.03; } - -GLOBAL_ASM( -.late_rodata - .float 4.04 - .double 4.05 -.text -glabel b - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - -double bar(void) { return 4.06; } -float baz(void) { return 4.07f; } - -GLOBAL_ASM( -.late_rodata - .double 4.08 -.text -glabel c - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop -) - diff --git a/tools/asm-processor/tests/late_rodata_misaligned_doubles.objdump b/tools/asm-processor/tests/late_rodata_misaligned_doubles.objdump deleted file mode 100644 index 8a0b7e4e8..000000000 --- a/tools/asm-processor/tests/late_rodata_misaligned_doubles.objdump +++ /dev/null @@ -1,33 +0,0 @@ - -tests/late_rodata_misaligned_doubles.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 00000000 00000000 00000000 00000000 ................ - 0010 00000000 00000000 00000000 00000000 ................ - 0020 00000000 00000000 00000000 00000000 ................ - 0030 00000000 00000000 00000000 00000000 ................ - 0040 3c010000 03e00008 d4200010 03e00008 <........ ...... - 0050 00000000 03e00008 00000000 00000000 ................ - 0060 00000000 00000000 00000000 00000000 ................ - 0070 00000000 00000000 00000000 00000000 ................ - 0080 00000000 00000000 00000000 00000000 ................ - 0090 00000000 00000000 00000000 3c010000 ............<... - 00a0 03e00008 d4200028 03e00008 00000000 ..... .(........ - 00b0 03e00008 00000000 3c010000 03e00008 ........<....... - 00c0 c4200030 03e00008 00000000 03e00008 . .0............ - 00d0 00000000 00000000 00000000 00000000 ................ - 00e0 00000000 00000000 00000000 00000000 ................ - 00f0 00000000 00000000 00000000 00000000 ................ - 0100 00000000 00000000 00000000 00000000 ................ - 0110 00000000 00000000 00000000 00000000 ................ -Contents of section .rodata: - 0000 408051ec 00000000 4010147a e147ae14 @.Q.....@..z.G.. - 0010 40101eb8 51eb851f 00000000 408147ae @...Q.......@.G. - 0020 40103333 33333333 40103d70 a3d70a3d @.333333@.=p...= - 0030 40823d71 00000000 401051eb 851eb852 @.=q....@.Q....R -Contents of section .options: - 0000 01200000 00000000 80000002 00000000 . .............. - 0010 000000f3 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 80000002 00000000 000000f3 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/line-continuation-separate-file.s b/tools/asm-processor/tests/line-continuation-separate-file.s deleted file mode 100644 index 72254b011..000000000 --- a/tools/asm-processor/tests/line-continuation-separate-file.s +++ /dev/null @@ -1,4 +0,0 @@ -.rdata - label: .asciiz "1\n\ -2" \ - "34", "56" diff --git a/tools/asm-processor/tests/line-continuation.c b/tools/asm-processor/tests/line-continuation.c deleted file mode 100644 index d5ab09372..000000000 --- a/tools/asm-processor/tests/line-continuation.c +++ /dev/null @@ -1,22 +0,0 @@ -void foo(void) { "abcdef"; } - -GLOBAL_ASM( -.rdata - .ascii "AB" \ - "CD", "EF" - .ascii "GH\n\n\n\0\11\222\3333\44444\x1234567\n\nIJK" -) - -void bar(void) { "hello"; } - -GLOBAL_ASM( -.rdata - .asciiz "1\ -2" - .asciiz "34", "56" - .asciiz "78\n\n\n\0\11\222\3333\44444\x1234567\n\n9A" -) - -void baz(void) { "ghijkl"; } - -GLOBAL_ASM("tests/line-continuation-separate-file.s") diff --git a/tools/asm-processor/tests/line-continuation.objdump b/tools/asm-processor/tests/line-continuation.objdump deleted file mode 100644 index e6e4589e1..000000000 --- a/tools/asm-processor/tests/line-continuation.objdump +++ /dev/null @@ -1,20 +0,0 @@ - -tests/line-continuation.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 03e00008 00000000 03e00008 00000000 ................ - 0010 03e00008 00000000 03e00008 00000000 ................ - 0020 03e00008 00000000 03e00008 00000000 ................ -Contents of section .rodata: - 0000 61626364 65660000 41424344 45464748 abcdef..ABCDEFGH - 0010 0a0a0a00 0992db33 24343467 0a0a494a .......3$44g..IJ - 0020 4b000000 68656c6c 6f000000 31320033 K...hello...12.3 - 0030 34003536 0037380a 0a0a0009 92db3324 4.56.78.......3$ - 0040 3434670a 0a394100 6768696a 6b6c0000 44g..9A.ghijkl.. - 0050 310a3200 33340035 36000000 00000000 1.2.34.56....... -Contents of section .options: - 0000 01200000 00000000 80000000 00000000 . .............. - 0010 00000000 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 80000000 00000000 00000000 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/o2.c b/tools/asm-processor/tests/o2.c deleted file mode 100644 index 144a604e0..000000000 --- a/tools/asm-processor/tests/o2.c +++ /dev/null @@ -1,26 +0,0 @@ -// COMPILE-FLAGS: -O2 - -int a(void) { return 1; } -GLOBAL_ASM( -glabel foo -addiu $a0, $a0, 1 -addiu $a0, $a0, 2 -addiu $a0, $a0, 3 -jr $ra -addiu $a0, $a0, 4 -) -float b(void) { return 1.2f; } -GLOBAL_ASM( -.late_rodata -glabel float1 -.float 12.34 - -.text -glabel bar -addiu $a0, $a0, 5 -addiu $a0, $a0, 6 -lui $v0, %hi(float1 + 1) -jr $ra -addiu $v0, $v0, %lo(float1 + 1) -) -float c(void) { return 1.3f; } diff --git a/tools/asm-processor/tests/o2.objdump b/tools/asm-processor/tests/o2.objdump deleted file mode 100644 index 65c5b53ed..000000000 --- a/tools/asm-processor/tests/o2.objdump +++ /dev/null @@ -1,17 +0,0 @@ - -tests/o2.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 03e00008 24020001 24840001 24840002 ....$...$...$... - 0010 24840003 03e00008 24840004 3c010000 $.......$...<... - 0020 03e00008 c4200000 24840005 24840006 ..... ..$...$... - 0030 3c020000 03e00008 24420001 3c010000 <.......$B..<... - 0040 03e00008 c4200008 00000000 00000000 ..... .......... -Contents of section .rodata: - 0000 3f99999a 414570a4 3fa66666 00000000 ?...AEp.?.ff.... -Contents of section .options: - 0000 01200000 00000000 80000006 00000000 . .............. - 0010 00000011 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 80000016 00000000 00000011 00000000 ................ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/test1.c b/tools/asm-processor/tests/test1.c deleted file mode 100644 index 475555a75..000000000 --- a/tools/asm-processor/tests/test1.c +++ /dev/null @@ -1,71 +0,0 @@ - -GLOBAL_ASM( -.rdata -.word 0x1212 -) - -GLOBAL_ASM( -.late_rodata -.word 0x123123 -.text -glabel test -/* 000090 00400090 27BDFFF8 */ addiu $sp, $sp, -24 -/* 000094 00400094 18A00009 */ blez $a1, .L004000BC -/* 000098 00400098 AFA00004 */ sw $zero, 4($sp) -.L0040009C: -/* 00009C 0040009C 8FAE0004 */ lw $t6, 4($sp) -/* 0000A0 004000A0 008E7821 */ addu $t7, $a0, $t6 -/* 0000A4 004000A4 A1E00000 */ sb $zero, ($t7) -/* 0000A8 004000A8 8FB80004 */ lw $t8, 4($sp) -/* 0000AC 004000AC 27190001 */ addiu $t9, $t8, 1 -/* 0000B0 004000B0 0325082A */ slt $at, $t9, $a1 -/* 0000B4 004000B4 1420FFF9 */ bnez $at, .L0040009C -/* 0000B8 004000B8 AFB90004 */ sw $t9, 4($sp) -.L004000BC: -/* 0000BC 004000BC 10000001 */ b .L004000C4 -/* 0000C0 004000C0 00000000 */ nop -.L004000C4: -/* 0000C4 004000C4 03E00008 */ jr $ra -/* 0000C8 004000C8 27BD0008 */ addiu $sp, $sp, 24 -) - -char bss1[3]; -GLOBAL_ASM( -.bss -bss2: -.space 3 -) -char bss3[3]; -char bss4[3]; -const int rodata1[2] = {1}; -extern int some_rodata; - -unsigned g(float, int); -unsigned f(void) { - return g(1.1f, some_rodata); -} - -GLOBAL_ASM( -.rdata -glabel some_rodata -.word 0x1313 -.text -.late_rodata -.word 0x321321 -.text -glabel g -/* 0000C0 004000C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0000C4 004000C4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0000C8 004000C8 240E0004 */ addiu $t6, $zero, 4 -/* 0000CC 004000CC 3C010041 */ lui $at, %hi(D_410100) -/* 0000D0 004000D0 AC2E0100 */ sw $t6, %lo(D_410100)($at) -/* 0000D4 004000D4 0C10002C */ jal func_004000B0 -/* 0000D8 004000D8 00000000 */ nop -/* 0000DC 004000DC 10000001 */ b .L004000E4 -/* 0000E0 004000E0 00000000 */ nop -.L004000E4: -/* 0000E4 004000E4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0000E8 004000E8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0000EC 004000EC 03E00008 */ jr $ra -/* 0000F0 004000F0 00000000 */ nop -) diff --git a/tools/asm-processor/tests/test1.objdump b/tools/asm-processor/tests/test1.objdump deleted file mode 100644 index 481b7e028..000000000 --- a/tools/asm-processor/tests/test1.objdump +++ /dev/null @@ -1,24 +0,0 @@ - -tests/test1.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 27bdffe8 18a00009 afa00004 8fae0004 '............... - 0010 008e7821 a1e00000 8fb80004 27190001 ..x!........'... - 0020 0325082a 1420fff9 afb90004 10000001 .%.*. .......... - 0030 00000000 03e00008 27bd0018 27bdffe8 ........'...'... - 0040 afbf0014 3c010000 3c050000 8ca50000 ....<...<....... - 0050 0c000000 c42c0014 10000003 00000000 .....,.......... - 0060 10000001 00000000 8fbf0014 27bd0018 ............'... - 0070 03e00008 00000000 27bdffe8 afbf0014 ........'....... - 0080 240e0004 3c010000 ac2e0000 0c000000 $...<........... - 0090 00000000 10000001 00000000 8fbf0014 ................ - 00a0 27bd0018 03e00008 00000000 00000000 '............... -Contents of section .rodata: - 0000 00001212 00000001 00000000 00001313 ................ - 0010 00123123 3f8ccccd 00321321 00000000 ..1#?....2.!.... -Contents of section .options: - 0000 01200000 00000000 a0000022 00000000 . .........".... - 0010 00001010 00000000 00000000 00007ff0 ................ -Contents of section .reginfo: - 0000 a300c032 00000000 00001010 00000000 ...2............ - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/test2.c b/tools/asm-processor/tests/test2.c deleted file mode 100644 index 3f9a21fba..000000000 --- a/tools/asm-processor/tests/test2.c +++ /dev/null @@ -1,69 +0,0 @@ -const char buf1[1] = {1}; -float func1(void) { - "func1"; - return 0.1f; -} -const char buf2[1] = {2}; -void func2(void) { - *(volatile float*)0 = -3.5792360305786133f; - *(volatile float*)0 = -3.5792362689971924f; - // "func2"; - // return 0.2f; -} -const char buf3[1] = {3}; -int func3(int x) { - switch(x) { - case 0: - return 1; - case 1: - return 2; - case 2: - return 3; - case 3: - return 4; - case 4: - return 5; - case 5: - return 4; - case 6: - return 4; - case 7: - return 4; - default: - return 3; - } -} - -#if 1 -GLOBAL_ASM( -.rdata -.word 0x66756e63 # func -.word 0x34000000 # 4\0\0\0 -.word jumptarget - -.late_rodata -glabel rv -.word 0x3e4ccccd # 0.2f -.word jumptarget - -.text -glabel func4 -lui $at, %hi(rv) -jumptarget: -jr $ra -lwc1 $f0, %lo(rv)($at) -jr $ra -nop -jr $ra -nop -jr $ra -nop -jr $ra -nop -) -#else -float func4(void) { - "func4"; - return 0.2f; -} -#endif diff --git a/tools/asm-processor/tests/test2.objdump b/tools/asm-processor/tests/test2.objdump deleted file mode 100644 index f49a7dd1d..000000000 --- a/tools/asm-processor/tests/test2.objdump +++ /dev/null @@ -1,32 +0,0 @@ - -tests/test2.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 3c010000 03e00008 c4200020 03e00008 <........ . .... - 0010 00000000 03e00008 00000000 3c010000 ............<... - 0020 c4240024 e4040000 3c010000 c4260028 .$.$....<....&.( - 0030 e4060000 03e00008 00000000 03e00008 ................ - 0040 00000000 2c810008 10200017 00000000 ....,.... ...... - 0050 00047080 3c010000 002e0821 8c2e002c ..p.<......!..., - 0060 01c00008 00000000 03e00008 24020001 ............$... - 0070 03e00008 24020002 03e00008 24020003 ....$.......$... - 0080 03e00008 24020004 03e00008 24020005 ....$.......$... - 0090 03e00008 24020004 03e00008 24020004 ....$.......$... - 00a0 03e00008 24020004 03e00008 24020003 ....$.......$... - 00b0 03e00008 00000000 03e00008 00000000 ................ - 00c0 3c010000 03e00008 c4200000 03e00008 <........ ...... - 00d0 00000000 03e00008 00000000 03e00008 ................ - 00e0 00000000 03e00008 00000000 00000000 ................ -Contents of section .rodata: - 0000 01000000 66756e63 31000000 02000000 ....func1....... - 0010 03000000 66756e63 34000000 000000c4 ....func4....... - 0020 3dcccccd c0651234 c0651235 00000068 =....e.4.e.5...h - 0030 00000070 00000078 00000080 00000088 ...p...x........ - 0040 00000090 00000098 000000a0 3e4ccccd ............>L.. - 0050 000000c4 00000000 00000000 00000000 ................ -Contents of section .options: - 0000 01200000 00000000 80004016 00000000 . ........@..... - 0010 00000051 00000000 00000000 00007ff0 ...Q............ -Contents of section .reginfo: - 0000 80004016 00000000 00000051 00000000 ..@........Q.... - 0010 00000000 00007ff0 ........ diff --git a/tools/asm-processor/tests/test3.c b/tools/asm-processor/tests/test3.c deleted file mode 100644 index d74bb4cbd..000000000 --- a/tools/asm-processor/tests/test3.c +++ /dev/null @@ -1,70 +0,0 @@ - -GLOBAL_ASM( -.rdata -.word 321321 -.text -glabel test -/* 000090 00400090 27BDFFF8 */ addiu $sp, $sp, -24 -/* 000094 00400094 18A00009 */ blez $a1, .L004000BC -/* 000098 00400098 AFA00004 */ sw $zero, 4($sp) -.L0040009C: -/* 00009C 0040009C 8FAE0004 */ lw $t6, 4($sp) -/* 0000A0 004000A0 008E7821 */ addu $t7, $a0, $t6 -/* 0000A4 004000A4 A1E00000 */ sb $zero, ($t7) -/* 0000A8 004000A8 8FB80004 */ lw $t8, 4($sp) -/* 0000AC 004000AC 27190001 */ addiu $t9, $t8, 1 -/* 0000B0 004000B0 0325082A */ slt $at, $t9, $a1 -/* 0000B4 004000B4 1420FFF9 */ bnez $at, .L0040009C -/* 0000B8 004000B8 AFB90004 */ sw $t9, 4($sp) -.L004000BC: -/* 0000BC 004000BC 10000001 */ b .L004000C4 -/* 0000C0 004000C0 00000000 */ nop -.L004000C4: -/* 0000C4 004000C4 03E00008 */ jr $ra -/* 0000C8 004000C8 27BD0008 */ addiu $sp, $sp, 24 -) - -// static -> no symbols -// bss -char globalBuf[4]; -const char constBuf[4]; - -// data -char globalBufInit[4] = {1}; - -// rodata -const char constBufInit[4] = {1}; -const char constBufInit2[1] = {2}; -const char constBufInit3[1] = {3}; - -unsigned g(void); -unsigned f(void) { - // aligns to 4 or 8 byte boundary (char -> 4, double -> 8) - double x = 5.1; - float y = 5.2f; - float z = 5.3f; - "Hello "; - "World"; - return g(); -} - -GLOBAL_ASM( -.rdata -.word 123123 -.text -glabel g -/* 0000C0 004000C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0000C4 004000C4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0000C8 004000C8 240E0004 */ addiu $t6, $zero, 4 -/* 0000CC 004000CC 3C010041 */ lui $at, %hi(D_410100) -/* 0000D0 004000D0 AC2E0100 */ sw $t6, %lo(D_410100)($at) -/* 0000D4 004000D4 0C10002C */ jal func_004000B0 -/* 0000D8 004000D8 00000000 */ nop -/* 0000DC 004000DC 10000001 */ b .L004000E4 -/* 0000E0 004000E0 00000000 */ nop -.L004000E4: -/* 0000E4 004000E4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0000E8 004000E8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0000EC 004000EC 03E00008 */ jr $ra -/* 0000F0 004000F0 00000000 */ nop -) diff --git a/tools/asm-processor/tests/test3.objdump b/tools/asm-processor/tests/test3.objdump deleted file mode 100644 index 9fb41ddb3..000000000 --- a/tools/asm-processor/tests/test3.objdump +++ /dev/null @@ -1,30 +0,0 @@ - -tests/test3.o: file format elf32-tradbigmips - -Contents of section .text: - 0000 27bdffe8 18a00009 afa00004 8fae0004 '............... - 0010 008e7821 a1e00000 8fb80004 27190001 ..x!........'... - 0020 0325082a 1420fff9 afb90004 10000001 .%.*. .......... - 0030 00000000 03e00008 27bd0018 27bdffd8 ........'...'... - 0040 afbf0014 3c010000 d4240028 f7a40020 ....<....$.(... - 0050 3c010000 c4260030 e7a6001c 3c010000 <....&.0....<... - 0060 c4280034 e7a80018 0c000000 00000000 .(.4............ - 0070 10000003 00000000 10000001 00000000 ................ - 0080 8fbf0014 27bd0028 03e00008 00000000 ....'..(........ - 0090 27bdffe8 afbf0014 240e0004 3c010000 '.......$...<... - 00a0 ac2e0000 0c000000 00000000 10000001 ................ - 00b0 00000000 8fbf0014 27bd0018 03e00008 ........'....... - 00c0 00000000 00000000 00000000 00000000 ................ -Contents of section .rodata: - 0000 0004e729 01000000 02000000 03000000 ...)............ - 0010 48656c6c 6f202000 576f726c 64000000 Hello .World... - 0020 0001e0f3 00000000 40146666 66666666 ........@.ffffff - 0030 40a66666 40a9999a 00000000 00000000 @.ff@........... -Contents of section .data: - 0000 01000000 00000000 00000000 00000000 ................ -Contents of section .options: - 0000 01200000 00000000 a0000002 00000000 . .............. - 0010 00000170 00000000 00000000 00007ff0 ...p............ -Contents of section .reginfo: - 0000 a300c032 00000000 00000170 00000000 ...2.......p.... - 0010 00000000 00007ff0 ........ diff --git a/tools/m2ctx.py b/tools/m2ctx.py index 448e2ddaf..9b2716eaf 100755 --- a/tools/m2ctx.py +++ b/tools/m2ctx.py @@ -25,7 +25,7 @@ def get_c_file(directory): def import_c_file(in_file): in_file = os.path.relpath(in_file, root_dir) - cpp_command = ["gcc", "-E", "-P", "-I.", "-Iinclude", "-Isrc", "-undef", "-D__sgi", "-D_LANGUAGE_C", + cpp_command = ["gcc", "-E", "-P", "-Isrc.old", "-I.","-Ilibreultra/include/2.0I/PR", "-Ilibreultra/include/2.0I", "-Iinclude", "-Isrc", "-undef", "-D__sgi", "-D_LANGUAGE_C", "-DNON_MATCHING", "-D_Static_assert(x, y)=", "-D__attribute__(x)=", "-DTARGET_N64", "-D__CTX__", in_file] try: return subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8") @@ -56,6 +56,7 @@ def main(): output = import_c_file(c_file_path) with open(os.path.join(root_dir, "ctx.c"), "w", encoding="UTF-8") as f: + f.write("#define NULL (void*)0\n") f.write(output) diff --git a/tools/overlay_todo.tzt b/tools/overlay_todo.tzt new file mode 100644 index 000000000..48a11379b --- /dev/null +++ b/tools/overlay_todo.tzt @@ -0,0 +1,35 @@ +// force these to resolve into overlays +func_8016BF60_ovl3=0x8016BF60; // type:func +func_8017644C_ovl3=0x8017644C; // type:func +func_80176484_ovl3=0x80176484; // type:func + +func_80151CEC_ovl4=0x80151CEC; // type:func +func_8015531C_ovl4=0x8015531C; // type:func +func_80158048_ovl4=0x80158048; // type:func +func_80159A54_ovl4=0x80159A54; // type:func +func_80159EFC_ovl4=0x80159EFC; // type:func + +func_8015C740_ovl5=0x8015C740; // type:func +func_80165370_ovl5=0x80165370; // type:func +func_8016FAB0_ovl5=0x8016FAB0; // type:func +func_80177A30_ovl5=0x80177A30; // type:func +func_80179D48_ovl5=0x80179D48; // type:func +func_8017CC3C_ovl5=0x8017CC3C; // type:func +func_8017ECA4_ovl5=0x8017ECA4; // type:func +func_8017F594_ovl5=0x8017F594; // type:func +func_801802A8_ovl5=0x801802A8; // type:func +func_801822AC_ovl5=0x801822AC; // type:func +func_80182FE8_ovl5=0x80182FE8; // type:func +func_80185EEC_ovl5=0x80185EEC; // type:func + +func_80154D60_ovl6=0x80154D60; // type:func + +func_801D1CAC_ovl8=0x801D1CAC; // type:func +func_801D1E98_ovl8=0x801D1E98; // type:func + +func_801F0050_ovl10=0x801F0050; // type:func +func_8020FC68_ovl9=0x8020FC68; // type:func +func_80227308_ovl18=0x80227308; // type:func + +func_801DC98C_ovl17=0x801DC98C; // type:func + diff --git a/tools/progress2.py b/tools/progress2.py index 13857e1ff..c41031f41 100644 --- a/tools/progress2.py +++ b/tools/progress2.py @@ -8,6 +8,7 @@ pass import os import re +import glob parser = argparse.ArgumentParser(description="Computes current progress throughout the whole project.") parser.add_argument("-m", "--matching", dest='matching', action='store_true', @@ -18,6 +19,7 @@ NON_MATCHING_PATTERN = r"#ifdef\s+NON_MATCHING.*?#else\nGLOBAL_ASM\s*\(\s*\"(.*?)\"\s*\).*?#endif" M2C_PATTERN = r"#ifdef\s+MIPS_TO_C.*?#else\nGLOBAL_ASM\s*\(\s*\"(.*?)\"\s*\).*?#endif" +UNTOUCHED_PATTERN = r"#pragma\s+GLOBAL_ASM\s*\(\s*\"(.*?)\"\s*\)" def GetNonMatchingFunctions(files): functions = [] @@ -25,6 +27,7 @@ def GetNonMatchingFunctions(files): for file in files: with open(file) as f: functions += re.findall(NON_MATCHING_PATTERN, f.read(), re.DOTALL) + functions += re.findall(UNTOUCHED_PATTERN, f.read(), re.DOTALL) if not args.matching: with open(file) as f: functions += re.findall(M2C_PATTERN, f.read(), re.DOTALL) @@ -39,13 +42,7 @@ def ReadAllLines(fileName): return lineList def GetFiles(path, ext): - files = [] - - for r, d, f in os.walk(path): - for file in f: - if file.endswith(ext): - files.append(os.path.join(r, file)) - + files = glob.glob(f"{path}/**/*{ext}", recursive=True) return files nonMatchingFunctions = GetNonMatchingFunctions(GetFiles("src", ".c")) if not args.matching else [] @@ -66,7 +63,7 @@ def GetNonMatchingSize(path): return size -mapFile = ReadAllLines("build/us/kirby.us.map") +mapFile = ReadAllLines("build/kirby.us.map") src = 0 code = 0 boot = 0 @@ -82,16 +79,16 @@ def GetNonMatchingSize(path): objFile = lineSplit[3] if (section == ".text"): - if (objFile.startswith("build/us/src")): + if (objFile.startswith("build/src")): src += size - if (objFile.startswith("build/us/libultra.a")): + if (objFile.startswith("build/libultra.a")): src += size - if (objFile.startswith("build/us/libn_audio.a")): + if (objFile.startswith("build/libn_audio.a")): src += size - elif (objFile.startswith("build/us/asm")): + elif (objFile.startswith("build/asm")): asm += size -nonMatchingASM = GetNonMatchingSize("asm/non_matchings") +nonMatchingASM = GetNonMatchingSize("asm/nonmatchings") src -= nonMatchingASM asm += nonMatchingASM diff --git a/tools/sa.txt b/tools/sa.txt new file mode 100644 index 000000000..c4b220cf8 --- /dev/null +++ b/tools/sa.txt @@ -0,0 +1,613 @@ + U __osLeoAbnormalResume + U __osLeoResume +8002d6e0 W fsin +8002d6e0 W sinf +8002e8b0 W blkclr +8002e8b0 W bzero +800314e0 T __osSumcalc +80031554 T __osIdCheckSum +80031650 T __osRepairPackId +800319a0 T __osCheckPackId +80031b04 T __osGetId +800344f0 W bcmp +80034d00 W bcopy +80035810 W cosf +80035810 W fcos +80039230 D n_aspMainTextStart +80039e90 D gspF3DEX2_fifoTextStart +8003b220 D gspF3DEX2_fifoTextEnd +8003b220 D gspL3DEX2_fifoTextStart +8003c3b0 D gspL3DEX2_fifoTextEnd +8003c3b0 D gspS2DEX2_fifoTextStart +8003dc70 00000024 D mainSegOverlay +8003dc70 D gspS2DEX2_fifoTextEnd +8003dd30 00000004 D gScissorCallback +8003dd38 00000040 D identityMatrix +8003dd78 000000d0 D resetRDPDisplayList +8003e330 00001000 D lbreflect_Int16SinTable +8003f68c 00000080 D crashScreenGlyphTable +8003f70c 00000100 D gCrashScreenFont +8003f80c 00000048 D gCPUExceptionCauses +8003f854 00000018 D gFPUExceptionCauses +8003fb10 00000004 D n_alGlobals +8003fb14 00000004 D n_syn +8003fb30 D __osHwIntTable +8003fb50 00000008 D __osThreadTail +8003fb58 00000004 D __osRunQueue +8003fb5c 00000004 D __osActiveQueue +8003fb60 00000004 D __osRunningThread +8003fb64 00000004 D __osFaultedThread +8003fb70 00000004 D __osSiAccessQueueEnabled +8003fb80 00000004 D __osContinitialized +8003fb90 00000008 D osClockRate +8003fb98 00000004 D osViClock +8003fb9c 00000004 D __osShutdown +8003fba0 00000004 D __OSGlobalIntMask +8003fbb4 00000004 D __osPfsInodeCacheBank +8003fbc0 00000005 D __osPiDevMgr +8003fbf0 00000004 D __osPiAccessQueueEnabled +8003fc50 00000004 D __osTimerList +8003fc60 0000004e D osViModeNtscLan1 +8003fcb0 0000004e D osViModeMpalLan1 +8003fd60 00000004 D __osViCurr +8003fd64 00000004 D __osViNext +8003fd70 0000004e D osViModePalLan1 +8003fe50 00000005 D __osViDevMgr +80041a30 00000080 D __osRcpImTable +80041b00 00000004 D __osIntOffTable +80041b20 00000004 D __osIntTable +80041cc0 00000004 D __libm_qnan_f +80041d40 D n_aspMainDataStart +80041ff0 D gspF3DEX2_fifoDataStart +80042410 D gspF3DEX2_fifoDataEnd +80042410 D gspL3DEX2_fifoDataStart +80042800 D gspL3DEX2_fifoDataEnd +80042800 D gspS2DEX2_fifoDataStart +80042b90 00000200 B gEntryStack +80042b90 D gspS2DEX2_fifoDataEnd +80042d90 000001b0 B gIdleThread +80042f40 00000100 B idleThreadStack +80043040 000001b0 B gMainThread +800431f0 00000400 B gMainThreadStack +800435f0 000001b0 B gAudioThread +800437a0 00000600 B gAudioThreadStack +80043da0 000001b0 B gGameThread +80043f50 00004000 B gGameThreadStack +80047f50 000001b0 B gControllerThread +80048100 00000800 B gThread6Stack +80048900 00000100 B gRSPBootUcode +80048a00 00000001 B gSPImemOkay +80048a01 00000001 B gSPDmemOkay +80048a08 00000018 B gThreadInitializedMQ +80048a20 000000c8 B piMesgBuffer +80048ae8 00000018 B piMesgQueue +80048b08 00000070 B pad13 +80048bf8 00000050 B gCurrentViMode +80048c68 00000004 B gCurrFrameBuffer +80048cb8 00000018 B gInterruptMesgQueue +80048cf0 00000004 B gRomHandle +80048d70 00000018 B gDmaMessageQueue +80048da0 00000018 B sSIMesgQueue +80048e70 00000010 B sControllerStatuses +80048e80 00000018 B sContPads +80048e98 00000004 B gValidControllerCount +80048ea0 00000080 B gControllers +80048f20 00000028 B gPlayerControllers +8004a390 00000040 B gDLBuffers +8004a408 00000010 B gDynamicBuffer2 +8004a418 00000014 B gDynamicBuffer3 +8004a500 00000004 B gZBuffer +8004a508 00000004 B gCurrScreenWidth +8004a50c 00000004 B gCurrScreenHeight +8004a530 00000010 B gViewport +8004a540 00000004 B gGObjThreadHead +8004a544 00000004 B gGObjThreadCount +8004a54c 00000004 B gNewEntityStackSize +8004a554 00000004 B gGObjThreadStackHead +8004a55c 00000004 B gGObjProcessHead +8004a570 00000004 B gGObjProcessCount +8004a678 00000004 B gGObjHead +8004a680 00000084 B gHighestPrioDLLinkProcs +8004a708 00000084 B gDLLinkProcs +8004a78c 00000004 B gGObjCount +8004a790 00000004 B gOMMtxHead +8004a794 00000004 B gOMMtxCount +8004a79c 00000004 B gAObjHead +8004a7a0 00000004 B gAObjCount +8004a7a4 00000004 B gMObjHead +8004a7a8 00000004 B gMObjCount +8004a7ac 00000004 B gDObjHead +8004a7b0 00000004 B gDObjCount +8004a7bc 00000004 B gCameraHead +8004a7c0 00000004 B gCameraCount +8004a7e0 00000018 B HS64_GObjProcMesgQ +80096ef8 B gCrashScreenFramebuffer +80096f28 B gCrashScreenThread +80097990 00001000 B leoDiskStack +80098a98 00000004 B __osSiAccessQueue +80098af0 00000004 B __osContLastCmd +80098af8 00000004 B __osEepromTimer +80098b18 00000004 B __osEepromTimerQ +80098b30 00000004 B __osEepromTimerMsg +80098e00 00000004 B CartRomHandle2 +80098e78 00000004 B LeoDiskHandle80098E78 +8009a0c8 00000018 B __osPiAccessQueue +8009a0e0 00000078 B __osEventStateTab +8009a160 00000074 B LeoDiskHandle +8009a1d4 00000004 B __osDiskHandle +8009a1e0 00000020 B __osBaseTimer +8009a200 00000008 B __osCurrentTime +8009a208 00000004 B __osBaseCounter +8009a20c 00000004 B __osViIntrCount +8009a210 00000004 B __osTimerCounter +8009a220 00000074 B CartRomHandle +8009a2a0 00000040 B __osPfsPifRam +8009a2e0 000001b0 B viThread +8009a490 00001000 B viThreadStack +8009b490 00000018 B viEventQueue +8009b4a8 00000014 B viEventBuf +8009b4c0 00000018 B viRetraceMsg +8009b4d8 00000018 B viCounterMsg +800be4f0 00000004 D gGameState +800c0534 000005e8 D sMusicNames +800c0b1c 00003b10 D sSoundNames +800d6b4c B sMusicCount +800d6b50 B sSoundCount +800d6b90 B gCurrentWorld +800d6b94 B gCurrentLevel +800d6ba0 B gCutscenesWatched +800d6bb0 B gHudDisplayMode +800d6e4c B gKirbyLives +800d6e50 B gKirbyHp +800d6e60 B gKirbyStars +800d6ec8 B gGameTampered +800d6fe8 B gKirbyController +800dd6f4 B sTextureImageCommand +800dd6f8 B sSetTileCommand +800ddc50 B gEntityVtableIndexArray +800de510 000001c0 B gEntityGObjProcessArray +800de6d0 000001c0 B gEntityGObjProcessArray2 +800de890 000001c0 B gEntityGObjProcessArray3 +800dea50 000001c0 B gEntityGObjProcessArray4 +800dec10 000001c0 B gEntityGObjProcessArray5 +800df4d0 B gSegment4StartArray +800e25d0 B gEntitiesNextPosXArray +800e2790 B gEntitiesNextPosYArray +800e2950 B gEntitiesNextPosZArray +800e2b10 B gEntitiesPosXArray +800e2cd0 B gEntitiesPosYArray +800e2e90 B gEntitiesPosZArray +800e4010 B gEntitiesAngleXArray +800e41d0 B gEntitiesAngleYArray +800e4390 B gEntitiesAngleZArray +800e4550 B gEntitiesScaleXArray +800e4710 B gEntitiesScaleYArray +800e48d0 B gEntitiesScaleZArray +800ec9f8 B gSaveBuffer1 +800ecbb0 B gSaveBuffer2 +8012e7c0 B gKirbyState +8018a104 T sKirbyHeadphoneModel +EntryPoint=0x80000400; // type:func +HS64_AObjLinkToAnimation=0x80008830; // type:func +HS64_AObjNew=0x800097e0; // type:func +HS64_AObjPop=0x800087d8; // type:func +HS64_AObjPush=0x80008860; // type:func +HS64_CameraPop=0x80008994; // type:func +HS64_CameraPush=0x800089ec; // type:func +HS64_DObjPop=0x80008910; // type:func +HS64_DObjPush=0x80008968; // type:func +HS64_GObjPop=0x8000835c; // type:func +HS64_GObjProcessPop=0x80008068; // type:func +HS64_GObjProcessPush=0x80008198; // type:func +HS64_GObjPush=0x800083a0; // type:func +HS64_GObjThreadPop=0x80007f60; // type:func +HS64_GObjThreadPush=0x80007fb8; // type:func +HS64_GObjThreadStackPop=0x80007fe4; // type:func +HS64_GObjThreadStackPush=0x8000803c; // type:func +HS64_GetGObjProcessStack=0x8000828c; // type:func +HS64_GetGObjProcessStackSize=0x800082d4; // type:func +HS64_MObjPop=0x8000888c; // type:func +HS64_MObjPush=0x800088e4; // type:func +HS64_MkRotationMtxF=0x8001bbac; // type:func +HS64_MkScaleMtxF=0x8001b4ac; // type:func +HS64_MkTranslateMtxF=0x8001b6e4; // type:func +HS64_OMMtxPop=0x80008754; // type:func +HS64_OMMtxPush=0x800087ac; // type:func +HS64_omInit=0x8000ae84; // type:func +_Ldtob=0x80037ea0; // type:func +_Litob=0x80038590; // type:func +_Printf=0x80033270; // type:func +_Putfld=0x80032c00; +__cosf=0x80035810; // type:func +__ll_div=0x8002ddac; // type:func +__ll_lshift=0x8002dd44; // type:func +__ll_mod=0x8002de98; // type:func +__ll_mul=0x8002de08; // type:func +__ll_rem=0x8002dd70; // type:func +__ll_rshift=0x8002df34; // type:func +__n_allocParam=0x80029908; // type:func +__osAiDeviceBusy=0x80038f30; // type:func +__osCheckId=0x80031cb0; +__osCleanupThread=0x8002e860; // type:func +__osContGetInitData=0x8002f640; +__osContPifRam=0x80098ab0; +__osContRamRead=0x80037320; // type:func +__osContRamWrite=0x800370d0; // type:func +__osCurrentHandle=0x8003fbe0; +__osDequeueThread=0x8002e870; // type:func +__osDevMgrMain=0x80032540; // type:func +__osDisableInt=0x80035360; // type:func +__osDispatchThread=0x8002e6e4; // type:func +__osDpDeviceBusy=0x80038930; // type:func +__osEepPifRam=0x8009b500; +__osEepStatus=0x8002fa34; // type:func +__osEnqueueAndYield=0x8002e58c; +__osEnqueueThread=0x8002e68c; // type:func +__osException=0x8002df70; // type:func +__osExceptionPreamble=0x8002df60; // type:func +__osFinalrom=0x80098b40; +__osGetActiveQueue=0x80034cf0; // type:func +__osGetSR=0x80030400; // type:func +__osInsertTimer=0x80034918; // type:func +__osLeoInterrupt=0x8002e950; // type:func +__osMaxControllers=0x80098af1; +__osPackEepReadData=0x80039124; // type:func +__osPackRequestData=0x8002f710; +__osPfsGetInitData=0x80036d60; // type:func +__osPfsGetOneChannelData=0x800360b4; // type:func +__osPfsGetStatus=0x80035f20; // type:func +__osPfsRWInode=0x80031d84; // type:func +__osPfsReleasePages=0x800352c8; // type:func +__osPfsRequestData=0x80036c90; // type:func +__osPfsRequestOneChannel=0x80035ff0; // type:func +__osPfsSelectBank=0x80035ca0; // type:func +__osPiCreateAccessQueue=0x80032470; // type:func +__osPiGetAccess=0x800324c0; // type:func +__osPiRelAccess=0x80032504; // type:func +__osPiTable=0x8003fbdc; +__osPopThread=0x8002e6d4; // type:func +__osProbeTLB=0x80031410; // type:func +__osResetGlobalIntMask=0x80035090; // type:func +__osRestoreInt=0x80035380; // type:func +__osSetCompare=0x80034ce0; // type:func +__osSetFpcCsr=0x80035d20; // type:func +__osSetGlobalIntMask=0x80034aa0; // type:func +__osSetSR=0x800303f0; // type:func +__osSetTimerIntr=0x800348a4; // type:func +__osSiCreateAccessQueue=0x8002f410; // type:func +__osSiDeviceBusy=0x80033d60; // type:func +__osSiGetAccess=0x8002f460; // type:func +__osSiRawReadIo=0x80030650; // type:func +__osSiRawStartDma=0x800304e0; // type:func +__osSiRawWriteIo=0x80038830; // type:func +__osSiRelAccess=0x8002f4a4; // type:func +__osSpDeviceBusy=0x80033d30; // type:func +__osSpGetStatus=0x80038970; // type:func +__osSpRawStartDma=0x80030450; // type:func +__osSpSetPc=0x800391f0; // type:func +__osSpSetStatus=0x80038960; // type:func +__osThreadSave=0x80098b50; +__osTimerInterrupt=0x8003472c; // type:func +__osTimerServicesInit=0x800346a0; // type:func +__osViGetCurrentContext=0x80038c90; // type:func +__osViInit=0x800353a0; // type:func +__osViSwapContext=0x800354e0; // type:func +__romPos=0x01e8bb50; +__sinf=0x8002d6e0; // type:func +__ull_div=0x8002dd08; // type:func +__ull_divremi=0x8002de38; // type:func +__ull_rem=0x8002dccc; // type:func +__ull_rshift=0x8002dca0; // type:func +_allocatePVoice=0x8002aae0; // type:func +_bcmp=0x800344f0; // type:func +_bcopy=0x80034d00; // type:func +_bzero=0x8002e8b0; // type:func +_n_timeToSamples=0x8002983c; +a4000040 T ipl3_entry +a4000658 t func_A4000658 +a4000660 t func_A4000660 +a400076c t func_A400076C +a4000874 t func_A4000874 +a4000900 t func_A4000900 +a4000974 t func_A4000974 +a4000a34 t func_A4000A34 +a4000ac4 t func_A4000AC4 +a4000b70 T rspboot +a4000bf0 T ipl3_font +acosf=0x80018890; // type:func +alCents2Ratio=0x80037080; // type:func +alCopy=0x80035010; // type:func +alLink=0x80025f50; +alUnlink=0x80025f74; +alloc_region=0x800053d0; // type:func +alloc_with_alignment=0x80005400; // type:func +append_microcode_load=0x80005de4; // type:func +asinf=0x8001880c; // type:func +assign_new_process_entry=0x800b1ec8; // type:func +atan2f=0x8001870c; // type:func +atanf=0x800185e4; // type:func +calc_file_checksum=0x800b8fc8; // type:func +calc_header_checksum=0x800b90e0; // type:func +calc_save_file_checksum=0x800b8f34; // type:func +calc_save_header_checksum=0x800b9068; // type:func +call_virtual_function=0x800a447c; // type:func +cboot=0x80000870; // type:func +change_kirby_hp=0x800bbfe0; // type:func +change_kirby_lives=0x800bc258; // type:func +change_kirby_stars=0x800bc240; // type:func +check_cutscene_watched=0x800b9f50; // type:func +check_save_file_completion_cheat_code=0x80151100; // type:func +check_sp_dmem=0x800004b0; // type:func +check_sp_imem=0x80000480; // type:func +copy_controller_inputs_to_kirby_controller=0x800a5268; // type:func +corrupted=0x80036954; // type:func +corrupted_init=0x80036688; // type:func +cotf=0x80018970; // type:func +crash_screen_draw_glyph=0x80021e00; // type:func +crash_screen_draw_rect=0x80021d34; // type:func +crash_screen_init=0x80023048; // type:func +crash_screen_print=0x80021fa4; // type:func +crash_screen_print_float_reg=0x80022134; // type:func +crash_screen_print_fpcsr=0x800221bc; // type:func +crash_screen_print_gobj_info=0x800a28c0; // type:func +crash_screen_print_page_3=0x800a2904; // type:func +crash_screen_printf=0x80022b88; // type:func +crash_screen_sleep=0x8002206c; // type:func +crash_screen_start_thread=0x80022d98; // type:func +crash_screen_vprint=0x80022a58; // type:func +create_xy_rotation_matrix=0x8001cbf0; // type:func +create_y_rotation_matrix=0x8001cf00; // type:func +create_yz_rotation_matrix=0x8001ca40; // type:func +create_z_rotation_matrix=0x8001cda0; // type:func +cscf=0x80018920; // type:func +dma_copy=0x80002bd0; // type:func +dma_overlay_load=0x80002d8c; // type:func +dma_read=0x80002e48; // type:func +dma_write=0x80002e84; // type:func +draw_hp_segment=0x800bd0e8; // type:func +draw_kirby_lives=0x800bd660; // type:func +draw_kirby_stars=0x800bd2f4; // type:func +draw_lives_digit=0x800bcfd8; // type:func +draw_pause_bg=0x800bc9a4; // type:func +draw_star_segments=0x800bd374; // type:func +fatal_printf=0x8002309c; // type:func +finish_current_thread=0x8000b6bc; // type:func +gCollisionState=0x8012bcf8; +gCrashScreen=0x800966d8; +gDisplayListHead2=0x8004a3d4; +gDisplayListHead3=0x8004a3d8; +gDisplayListHead4=0x8004a3dc; +gDisplayListHead=0x8004a3d0; +gDisplayListHeads=0x8004a3d0; +gDynamicBuffer1=0x8004a3f8; +gFrameBuffer=0x803b6900; +gFrameBuffers=0x8015a678; +gPositionState=0x8012e968; +game_tick=0x800a377c; // type:func +get_crashed_thread=0x800229cc; // type:func +get_music_id_from_index=0x800a7740; // type:func +get_rng_seed=0x80018aa0; // type:func +get_soft_rng_seed=0x800189a8; // type:func +get_sound_id_from_index=0x800a7794; // type:func +gspF3DEX2_fifoDataRomEnd=0x00043010; +gspF3DEX2_fifoDataRomStart=0x00042bf0; +gspF3DEX2_fifoTextRomEnd=0x0003be20; +gspF3DEX2_fifoTextRomStart=0x0003aa90; +gspL3DEX2_fifoDataRomEnd=0x00043400; +gspL3DEX2_fifoDataRomStart=0x00043010; +gspL3DEX2_fifoTextRomEnd=0x0003cfb0; +gspL3DEX2_fifoTextRomStart=0x0003be20; +gspS2DEX2_fifoDataRomEnd=0x00043790; +gspS2DEX2_fifoDataRomStart=0x00043400; +gspS2DEX2_fifoTextRomEnd=0x0003e870; +gspS2DEX2_fifoTextRomStart=0x0003cfb0; +guLookAt=0x8001a13c; // type:func +guLookAtF=0x80019eb0; // type:func +guLookAtF_2=0x8001a1b0; // type:func +guLookAtF_2_ovl1=0x8001a1b0; +guLookAtReflect=0x8001a8ec; // type:func +guLookAtReflectF=0x8001a504; // type:func +guLookAtReflectF_2=0x8001a964; // type:func +guMtxCatF=0x800340d0; // type:func +guMtxF2L=0x80030b10; // type:func +guMtxIdent=0x80030c98; // type:func +guMtxIdentF=0x80030c10; // type:func +guMtxIdentF_ovl17=0x80030c10; +guMtxIdentF_ovl1=0x80030c10; +guMtxL2F=0x80030cc8; // type:func +guMtxXFMF=0x80034030; // type:func +guNormalize=0x80034c50; // type:func +guOrtho=0x8001afa4; // type:func +guOrthoF=0x8001ae10; // type:func +guOrthoF_ovl1=0x8001ae10; +init_dma_message_queue=0x80002ba0; // type:func +init_save_file_maybe=0x800b8c34; // type:func +kirby_in_inactionable_state=0x8012122c; // type:func +lbreflect_Int16Cos=0x80019e5c; // type:func +lbreflect_Int16Sin=0x80019e14; // type:func +lbvector_Add=0x80018d7c; // type:func +lbvector_Angle=0x80018fbc; // type:func +lbvector_Diff=0x80018dec; // type:func +lbvector_DiffLen=0x80019870; // type:func +lbvector_Len=0x80018d3c; // type:func +lbvector_Negate=0x80019380; // type:func +lbvector_Normalize=0x80018ca0; // type:func +lbvector_Rotate=0x80019090; // type:func +lbvector_Scale=0x80018e70; // type:func +lbvector_Shrink=0x80018ea4; // type:func +lbvector_Sub=0x80018db4; // type:func +ldiv=0x80038500; // type:func +leoBootID=0x800001a0; +lldiv=0x80038400; // type:func +load_menu_overlays=0x800a3128; // type:func +load_overlay=0x800a6b20; // type:func +memcpy=0x80033a40; // type:func +mlAlloc=0x8000783c; // type:func +mlReset=0x80007830; // type:func +mlSetup=0x800078a4; // type:func +mtx_create_translate_scale=0x8010e2b8; // type:func +n_alEnvmixerParam=0x80027520; // type:func +n_alSynAddPlayer=0x8002aa0c; // type:func +n_alSynAddSeqPlayer=0x8002a910; // type:func +n_alSynAddSndPlayer=0x8002a998; // type:func +n_alSynAllocVoice=0x8002abd0; // type:func +n_alSynSetPan=0x8002ad10; // type:func +n_alSynSetVol=0x8002d250; // type:func +n_alSynStopVoice=0x8002aa70; // type:func +n_aspMainDataRomStart=0x00042940; +n_aspMainTextRomStart=0x00039e30; +omGAddCommon=0x8000a0c0; // type:func +omGDLLinkDestructor=0x800086ec; // type:func +omGDispatchProc=0x8000ac3c; // type:func +omGInsertDLLink=0x80008590; // type:func +omGLinkObjDLCommon=0x8000a580; // type:func +omGMoveCommon=0x8000a350; // type:func +omGMoveObjDL=0x8000a888; // type:func +omGMoveObjDLHead=0x8000a904; // type:func +omGSetupCameraDLLink=0x800085f8; // type:func +omGSetupDLLink_HighestPrioMax=0x80008664; // type:func +osAfterPreNMI=0x80032b30; // type:func +osAiSetFrequency=0x80034af0; // type:func +osAiSetNextBuffer=0x80038e80; // type:func +osAppNMIBuffer=0x8000031c; +osCartRomInit=0x80035a20; // type:func +osCicId=0x80000310; +osContGetQuery=0x80032bd4; // type:func +osContGetReadData=0x8002fdb4; // type:func +osContInit=0x8002f4d0; // type:func +osContStartQuery=0x80032b50; // type:func +osContStartReadData=0x8002fd30; // type:func +osCreateMesgQueue=0x80033ae0; // type:func +osCreatePiManager=0x80032280; // type:func +osCreateThread=0x8002fbe0; // type:func +osCreateViManager=0x80038980; // type:func +osDestroyThread=0x8002db90; // type:func +osDpSetNextBuffer=0x80038880; // type:func +osEPiLinkHandle=0x80030590; // type:func +osEPiRawReadIo=0x80036e30; // type:func +osEPiRawStartDma=0x80034240; // type:func +osEPiRawWriteIo=0x800376c0; // type:func +osEPiStartDma=0x800338c0; // type:func +osEepromLongRead=0x8002ff10; // type:func +osEepromLongWrite=0x80033c40; // type:func +osEepromProbe=0x80032060; // type:func +osEepromRead=0x80038f60; // type:func +osEepromWrite=0x8002f810; // type:func +osGetCount=0x800314d0; // type:func +osGetThreadPri=0x80033fc0; // type:func +osGetTime=0x80034610; // type:func +osInitialize=0x800300a0; // type:func +osInvalDCache=0x80033b90; // type:func +osInvalICache=0x80033b10; // type:func +osJamMesg=0x80033d90; // type:func +osLeoDiskInit=0x800339a0; // type:func +osMapTLBRdb=0x80036fd0; // type:func +osMemSize=0x80000318; +osMotorInit=0x8002f2b4; +osPfsChecker=0x80036150; // type:func +osPfsDeleteFile=0x800350f0; // type:func +osPfsFindFile=0x800320d0; // type:func +osPfsFreeBlocks=0x80031270; // type:func +osPfsInitPak=0x80035d30; // type:func +osPfsIsPlug=0x80036af0; // type:func +osPfsReadWriteFile=0x80030794; // type:func +osPiGetCmdQueue=0x800357e0; // type:func +osPiRawReadIo=0x80030330; // type:func +osPiRawStartDma=0x800329d0; // type:func +osRecvMesg=0x8002d500; // type:func +osResetType=0x8000030c; +osRomBase=0x80000308; +osRomType=0x80000304; +osSendMesg=0x8002d2f0; // type:func +osSetEventMesg=0x80032ab0; // type:func +osSetIntMask=0x8002d640; // type:func +osSetThreadPri=0x80033ee0; // type:func +osSetTime=0x80035980; // type:func +osSetTimer=0x80037850; // type:func +osSpTaskLoad=0x8002d9bc; // type:func +osSpTaskStartGo=0x8002db4c; // type:func +osSpTaskYield=0x800306a0; // type:func +osSpTaskYielded=0x80034470; // type:func +osStartThread=0x80038cd0; // type:func +osStopThread=0x8002d440; // type:func +osTvType=0x80000300; +osVersion=0x80000314; +osViBlack=0x800305e0; // type:func +osViGetCurrentFramebuffer=0x800391b0; // type:func +osViGetNextFramebuffer=0x80030410; // type:func +osViSetEvent=0x800359b0; // type:func +osViSetMode=0x80030d80; // type:func +osViSetYScale=0x80038e20; // type:func +osViSwapBuffer=0x80033fe0; // type:func +osVirtualToPhysical=0x8002ffa0; // type:func +osWritebackDCache=0x80030020; // type:func +osWritebackDCacheAll=0x80038ca0; // type:func +osYieldThread=0x80037030; // type:func +ovl18_TamperCheck=0x8021f304; // type:func +ovl1_TamperCheck=0x800a6b64; // type:func +ovl3_process_command_string=0x80151e94; // type:func +play_music=0x800a75b0; // type:func +play_sound=0x800a7678; // type:func +pop_spobj=0x800ac5b0; // type:func +print_error_stub=0x800a4270; // type:func +query_controllers=0x80003ecc; // type:func +random_f32=0x80018afc; // type:func +random_f32_2=0x80018bf8; // type:func +random_s32_range=0x80018b60; // type:func +random_soft_f32=0x800189e4; // type:func +random_soft_s32_range=0x80018a44; // type:func +random_soft_u16=0x800189b4; // type:func +random_u16=0x80018aac; // type:func +random_u16_range=0x80018c5c; // type:func +random_u8=0x80018bd4; // type:func +read_controller_input=0x80003fdc; // type:func +request_job=0x800ae7a8; // type:func +request_track=0x800aeadc; // type:func +request_track_general=0x800aec08; // type:func +reset_rdp_settings=0x80007cf4; // type:func +restart_thread_with_new_function=0x800b1ec8; +retrace=0x8009b4f0; +sFileSelectBackgroundImage=0x8015ab50; // type:func +sMenuLevelPercentImage=0x8015ab70; // type:func +sPakDevices=0x800490f0; +save_file_set_to_full_completion=0x800ba5c4; // type:func +secf=0x80018948; // type:func +send_mesg=0x8002e4a4; +set_cutscene_watched=0x800b9f90; // type:func +set_hard_rng_seed=0x80018a94; // type:func +set_kirby_action_1=0x80122f6c; // type:func +set_kirby_action_2=0x80122f94; // type:func +set_scissor_callback=0x80007ce8; // type:func +set_soft_rng_seed=0x80018998; // type:func +setup_segment_15=0x80005378; // type:func +setup_viewport=0x80007c9c; // type:func +siAccessBuf=0x80098a90; +sound_str_atoi=0x800a7704; // type:func +spawn_entity=0x800fc9c0; // type:func +sqrtf=0x80032b20; // type:func +strchr=0x80033a94; // type:func +strlen=0x80033a6c; // type:func +tamper_check_ovl20=0x80300000; // type:func +tanf=0x800185b0; // type:func +thread1_idle=0x800007c8; // type:func +thread3_main=0x80002598; // type:func +thread4_audio=0x8001fd64; // type:func +thread5_game=0x800005d8; // type:func +thread_crash_stack_overflow=0x800004e0; // type:func +unlink_gobj_process=0x800081c4; // type:func +unused_get_main_thread=0x80000460; // type:func +unused_get_main_thread_stack=0x8000046c; // type:func +unused_get_main_thread_stack_length=0x80000478; // type:func +vec3_abs_angle_diff=0x800f89c0; // type:func +vec3_compare_directions=0x800196d4; // type:func +vec3_cross_product=0x8011c2d4; // type:func +vec3_diff_mag=0x80019870; +vec3_dist_square=0x800a455c; // type:func +vec3_dot_product=0x800a44bc; // type:func +vec3_mag_square=0x800a4534; // type:func +vec3_negate=0x800191cc; // type:func +vec3_normalized_cross_product=0x80019740; // type:func +vec3_sub_normalize=0x80018e24; // type:func +vec3_subtract_compare_directions=0x800197ec; // type:func +verify_save=0x800b92d8; // type:func +write_to_buf=0x80021f80; // type:func diff --git a/tools/splat_ext/__init__.py b/tools/splat_ext/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tools/splat_ext/skip.py b/tools/splat_ext/skip.py new file mode 100644 index 000000000..08bb50880 --- /dev/null +++ b/tools/splat_ext/skip.py @@ -0,0 +1,30 @@ +from itertools import zip_longest +from pathlib import Path +from typing import Dict, List, Optional, Tuple, TYPE_CHECKING, Union + +from splat.util import log, options +from splat.util.color import unpack_color + +from splat.segtypes.segment import Segment + + +class N64SegSkip(Segment): + require_unique_name = False + def __init__(self, rom_start, rom_end, type, name, vram_start, args, yaml): + self.logname = "skip_ext" + # log.error(yaml) + super().__init__(rom_start, rom_end, type, name, vram_start, args=args, yaml=yaml) + self.skip = self.yaml[2] + + def get_linker_entries(self): + from splat.segtypes.linker_entry import LinkerEntry + + return [ + LinkerEntry( + self, + [], + f". += {self.skip}", + "", + "linker", + ) + ] diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt new file mode 100644 index 000000000..31501b8ce --- /dev/null +++ b/tools/symbol_addrs.txt @@ -0,0 +1,774 @@ +sinf=0x8002d6e0; // type:func +bzero=0x8002e8b0; // type:func +__osSumcalc=0x800314e0; +__osIdCheckSum=0x80031554; +__osRepairPackId=0x80031650; +__osCheckPackId=0x800319a0; +__osGetId=0x80031b04; +bcmp=0x800344f0; // type:func +bcopy=0x80034d00; // type:func +cosf=0x80035810; // type:func +n_aspMainTextStart=0x80039230; +gspF3DEX2_fifoTextStart=0x80039E90; +gspL3DEX2_fifoTextStart=0x8003B220; +gspS2DEX2_fifoTextStart=0x8003C3B0; +mainSegOverlay=0x8003DC70; +gScissorCallback=0x8003DD30; +identityMatrix=0x8003DD38; +resetRDPDisplayList=0x8003DD78; +lbreflect_Int16SinTable=0x8003E330; +crashScreenGlyphTable=0x8003F68C; +gCrashScreenFont=0x8003F70C; +gCPUExceptionCauses=0x8003F80C; +gFPUExceptionCauses=0x8003F854; +n_alGlobals=0x8003FB10; +n_syn=0x8003FB14; +__osHwIntTable=0x8003FB30; +__osThreadTail=0x8003FB50; +__osRunQueue=0x8003FB58; +__osActiveQueue=0x8003FB5C; +__osRunningThread=0x8003FB60; +__osFaultedThread=0x8003FB64; +__osSiAccessQueueEnabled=0x8003FB70; +__osPfsInodeCache=0x80098D00; +__osPfsInodeCacheChannel=0x8003FBB0; +__osContinitialized=0x8003FB80; +osClockRate=0x8003FB90; +osViClock=0x8003FB98; +__osShutdown=0x8003FB9C; +__OSGlobalIntMask=0x8003FBA0; +__osPfsInodeCacheBank=0x8003FBB4; +__osPiDevMgr=0x8003FBC0; +__osPiAccessQueueEnabled=0x8003FBF0; +__osTimerList=0x8003FC50; +osViModeNtscLan1=0x8003FC60; +osViModeMpalLan1=0x8003FCB0; +__osViCurr=0x8003FD60; +__osViNext=0x8003FD64; +osViModePalLan1=0x8003FD70; +__osViDevMgr=0x8003FE50; +__osRcpImTable=0x80041A30; +__osIntOffTable=0x80041B00; +__osIntTable=0x80041B20; +__libm_qnan_f=0x80041CC0; +n_aspMainDataStart=0x80041D40; +gspF3DEX2_fifoDataStart=0x80041FF0; +gspL3DEX2_fifoDataStart=0x80042410; +gspS2DEX2_fifoDataStart=0x80042800; +gEntryStack=0x80042B90; +gIdleThread=0x80042D90; +idleThreadStack=0x80042F40; +gMainThread=0x80043040; +gMainThreadStack=0x800431F0; +gAudioThread=0x800435F0; +gAudioThreadStack=0x800437A0; +gGameThread=0x80043DA0; +gGameThreadStack=0x80043F50; +gControllerThread=0x80047F50; +gThread6Stack=0x80048100; +gRSPBootUcode=0x80048900; +gSPImemOkay=0x80048A00; +gSPDmemOkay=0x80048A01; +gThreadInitializedMQ=0x80048A08; +piMesgBuffer=0x80048A20; +piMesgQueue=0x80048AE8; +pad13=0x80048B08; +gCurrentViMode=0x80048BF8; +gCurrFrameBuffer=0x80048C68; +scTaskMQ=0x80048CB8; +gRomHandle=0x80048CF0; +gDmaMessageQueue=0x80048D70; +sSIMesgQueue=0x80048DA0; +sControllerStatuses=0x80048E70; +sContPads=0x80048E80; +gValidControllerCount=0x80048E98; +gControllers=0x80048EA0; +gPlayerControllers=0x80048F20; +gDLBuffers=0x8004A390; +gDynamicBuffer2=0x8004A408; +gDynamicBuffer3=0x8004A418; +gZBuffer=0x8004A500; +gCurrScreenWidth=0x8004A508; +gCurrScreenHeight=0x8004A50C; +gViewport=0x8004A530; +gGObjThreadHead=0x8004A540; +gGObjThreadCount=0x8004A544; +gNewEntityStackSize=0x8004A54C; +gGObjThreadStackHead=0x8004A554; +gGObjProcessHead=0x8004A55C; +gGObjProcessCount=0x8004A570; +gGObjHead=0x8004A678; +gGObjCount=0x8004A78C; +gOMMtxHead=0x8004A790; +gOMMtxCount=0x8004A794; +gAObjHead=0x8004A79C; +gAObjCount=0x8004A7A0; +gMObjHead=0x8004A7A4; +gMObjCount=0x8004A7A8; +gDObjHead=0x8004A7AC; +gDObjCount=0x8004A7B0; +gCameraHead=0x8004A7BC; +gCameraCount=0x8004A7C0; +HS64_GObjProcMesgQ=0x8004A7E0; +gCrashScreenFramebuffer=0x80096ef8; +gCrashScreenThread=0x80096f28; +leoDiskStack=0x80097990; +__osSiAccessQueue=0x80098A98; +__osContLastCmd=0x80098AF0; +__osEepromTimer=0x80098AF8; +__osEepromTimerQ=0x80098B18; +__osEepromTimerMsg=0x80098B30; +CartRomHandle2=0x80098E00; +LeoDiskHandle80098E78=0x80098E78; +__osPiAccessQueue=0x8009A0C8; +__osEventStateTab=0x8009A0E0; +LeoDiskHandle=0x8009A160; +__osDiskHandle=0x8009A1D4; +__osBaseTimer=0x8009A1E0; +__osCurrentTime=0x8009A200; +__osBaseCounter=0x8009A208; +__osViIntrCount=0x8009A20C; +__osTimerCounter=0x8009A210; +CartRomHandle=0x8009A220; +__osPfsPifRam=0x8009A2A0; +viThread=0x8009A2E0; +viThreadStack=0x8009A490; +viEventQueue=0x8009B490; +viEventBuf=0x8009B4A8; +viRetraceMsg=0x8009B4C0; +viCounterMsg=0x8009B4D8; +gGameState=0x800BE4F0; +sMusicNames=0x800C0534; +sSoundNames=0x800C0B1C; +sMusicCount=0x800d6b4c; +sSoundCount=0x800d6b50; +gCurrentWorld=0x800d6b90; +gCurrentLevel=0x800d6b94; +gCutscenesWatched=0x800d6ba0; +gHudDisplayMode=0x800d6bb0; +gKirbyLives=0x800d6e4c; +gKirbyHp=0x800d6e50; +gKirbyStars=0x800d6e60; +gGameTampered=0x800d6ec8; +gKirbyController=0x800d6fe8; +sTextureImageCommand=0x800dd6f4; +sSetTileCommand=0x800dd6f8; +gEntityVtableIndexArray=0x800ddc50; +gEntityGObjProcessArray=0x800DE510; +gEntityGObjProcessArray2=0x800DE6D0; +gEntityGObjProcessArray3=0x800DE890; +gEntityGObjProcessArray4=0x800DEA50; +gEntityGObjProcessArray5=0x800DEC10; +gSegment4StartArray=0x800df4d0; +gEntitiesNextPosXArray=0x800e25d0; +gEntitiesNextPosYArray=0x800e2790; +gEntitiesNextPosZArray=0x800e2950; +gEntitiesPosXArray=0x800e2b10; +gEntitiesPosYArray=0x800e2cd0; +gEntitiesPosZArray=0x800e2e90; +gEntitiesAngleXArray=0x800e4010; +gEntitiesAngleYArray=0x800e41d0; +gEntitiesAngleZArray=0x800e4390; +gEntitiesScaleXArray=0x800e4550; +gEntitiesScaleYArray=0x800e4710; +gEntitiesScaleZArray=0x800e48d0; +gSaveBuffer1=0x800ec9f8; +gSaveBuffer2=0x800ecbb0; +gKirbyState=0x8012e7c0; +sKirbyHeadphoneModel=0x8018a104; // segment:ovl5 +EntryPoint=0x80000400; // type:func +HS64_AObjLinkToAnimation=0x80008830; // type:func +HS64_AObjNew=0x800097e0; // type:func +HS64_AObjPop=0x800087d8; // type:func +HS64_AObjRelease=0x80008860; // type:func +HS64_CameraPop=0x80008994; // type:func +HS64_CameraPush=0x800089ec; // type:func +HS64_DObjPop=0x80008910; // type:func +HS64_DObjPush=0x80008968; // type:func +HS64_GObjPop=0x8000835c; // type:func +HS64_GObjProcessPop=0x80008068; // type:func +HS64_GObjRelease=0x800083a0; // type:func +HS64_GObjThreadPop=0x80007f60; // type:func +HS64_GObjThreadRelease=0x80007fb8; // type:func +HS64_GetGObjProcessStack=0x8000828c; // type:func +HS64_GetGObjProcessStackSize=0x800082d4; // type:func +HS64_MObjPop=0x8000888c; // type:func +HS64_MObjPush=0x800088e4; // type:func +HS64_MkRotationMtxF=0x8001bbac; // type:func +HS64_MkScaleMtxF=0x8001b4ac; // type:func +HS64_MkTranslateMtxF=0x8001b6e4; // type:func +HS64_OMMtxPop=0x80008754; // type:func +HS64_OMMtxRelease=0x800087ac; // type:func + +_Ldtob=0x80037ea0; // type:func +_Litob=0x80038590; // type:func +_Printf=0x80033270; // type:func +_Putfld=0x80032c00; // type:func +__ll_div=0x8002ddac; // type:func +__ll_lshift=0x8002dd44; // type:func +__ll_mod=0x8002de98; // type:func +__ll_mul=0x8002de08; // type:func +__ll_rem=0x8002dd70; // type:func +__ll_rshift=0x8002df34; // type:func +__n_allocParam=0x80029908; // type:func +__osAiDeviceBusy=0x80038f30; // type:func +__osCheckId=0x80031cb0; +__osCleanupThread=0x8002e860; // type:func +__osContGetInitData=0x8002f640; +__osContPifRam=0x80098ab0; +__osContRamRead=0x80037320; // type:func +__osContRamWrite=0x800370d0; // type:func +__osCurrentHandle=0x8003fbe0; +__osDequeueThread=0x8002e870; // type:func +__osDevMgrMain=0x80032540; // type:func +__osDisableInt=0x80035360; // type:func +__osDispatchThread=0x8002e6e4; // type:func +__osDpDeviceBusy=0x80038930; // type:func +__osEepPifRam=0x8009b500; +__osEepStatus=0x8002fa34; // type:func +__osEnqueueAndYield=0x8002e58c; +__osEnqueueThread=0x8002e68c; // type:func +__osException=0x8002df70; // type:func +__osExceptionPreamble=0x8002df60; // type:func +__osFinalrom=0x80098b40; +__osGetActiveQueue=0x80034cf0; // type:func +__osGetSR=0x80030400; // type:func +__osInsertTimer=0x80034918; // type:func +__osLeoInterrupt=0x8002e950; // type:func +__osMaxControllers=0x80098af1; +__osPackEepReadData=0x80039124; // type:func +__osPackRequestData=0x8002f710; +__osPfsGetInitData=0x80036d60; // type:func +__osPfsGetOneChannelData=0x800360b4; // type:func +__osPfsGetStatus=0x80035f20; // type:func +__osPfsRWInode=0x80031d84; // type:func +__osPfsReleasePages=0x800352c8; // type:func +__osPfsRequestData=0x80036c90; // type:func +__osPfsRequestOneChannel=0x80035ff0; // type:func +__osPfsSelectBank=0x80035ca0; // type:func +__osPiCreateAccessQueue=0x80032470; // type:func +__osPiGetAccess=0x800324c0; // type:func +__osPiRelAccess=0x80032504; // type:func +__osPiTable=0x8003fbdc; +__osPopThread=0x8002e6d4; // type:func +__osProbeTLB=0x80031410; // type:func +__osResetGlobalIntMask=0x80035090; // type:func +__osRestoreInt=0x80035380; // type:func +__osSetCompare=0x80034ce0; // type:func +__osSetFpcCsr=0x80035d20; // type:func +__osSetGlobalIntMask=0x80034aa0; // type:func +__osSetSR=0x800303f0; // type:func +__osSetTimerIntr=0x800348a4; // type:func +__osSiCreateAccessQueue=0x8002f410; // type:func +__osSiDeviceBusy=0x80033d60; // type:func +__osSiGetAccess=0x8002f460; // type:func +__osSiRawReadIo=0x80030650; // type:func +__osSiRawStartDma=0x800304e0; // type:func +__osSiRawWriteIo=0x80038830; // type:func +__osSiRelAccess=0x8002f4a4; // type:func +__osSpDeviceBusy=0x80033d30; // type:func +__osSpGetStatus=0x80038970; // type:func +__osSpRawStartDma=0x80030450; // type:func +__osSpSetPc=0x800391f0; // type:func +__osSpSetStatus=0x80038960; // type:func +__osThreadSave=0x80098b50; +__osTimerInterrupt=0x8003472c; // type:func +__osTimerServicesInit=0x800346a0; // type:func +__osViGetCurrentContext=0x80038c90; // type:func +__osViInit=0x800353a0; // type:func +__osViSwapContext=0x800354e0; // type:func +__ull_div=0x8002dd08; // type:func +__ull_divremi=0x8002de38; // type:func +__ull_rem=0x8002dccc; // type:func +__ull_rshift=0x8002dca0; // type:func +_allocatePVoice=0x8002aae0; // type:func +_n_timeToSamples=0x8002983c; +acosf=0x80018890; // type:func +alCents2Ratio=0x80037080; // type:func +alCopy=0x80035010; // type:func +alLink=0x80025f50; +alUnlink=0x80025f74; +alloc_region=0x800053d0; // type:func +alloc_with_alignment=0x80005400; // type:func +append_microcode_load=0x80005de4; // type:func +asinf=0x8001880c; // type:func +assign_new_process_entry=0x800b1ec8; // type:func +atan2f=0x8001870c; // type:func +atanf=0x800185e4; // type:func +calc_file_checksum=0x800b8fc8; // type:func +calc_header_checksum=0x800b90e0; // type:func +calc_save_file_checksum=0x800b8f34; // type:func +calc_save_header_checksum=0x800b9068; // type:func +call_virtual_function=0x800a447c; // type:func +cboot=0x80000870; // type:func +change_kirby_hp=0x800bbfe0; // type:func +change_kirby_lives=0x800bc258; // type:func +change_kirby_stars=0x800bc240; // type:func +check_cutscene_watched=0x800b9f50; // type:func +check_save_file_completion_cheat_code=0x80151100; // type:func +check_sp_dmem=0x800004b0; // type:func +check_sp_imem=0x80000480; // type:func +copy_controller_inputs_to_kirby_controller=0x800a5268; // type:func +corrupted=0x80036954; // type:func +corrupted_init=0x80036688; // type:func +cotf=0x80018970; // type:func +crash_screen_draw_glyph=0x80021e00; // type:func +crash_screen_draw_rect=0x80021d34; // type:func +crash_screen_init=0x80023048; // type:func +crash_screen_print=0x80021fa4; // type:func +crash_screen_print_float_reg=0x80022134; // type:func +crash_screen_print_fpcsr=0x800221bc; // type:func +crash_screen_print_gobj_info=0x800a28c0; // type:func +crash_screen_print_page_3=0x800a2904; // type:func +crash_screen_printf=0x80022b88; // type:func +crash_screen_sleep=0x8002206c; // type:func +crash_screen_start_thread=0x80022d98; // type:func +crash_screen_vprint=0x80022a58; // type:func +create_xy_rotation_matrix=0x8001cbf0; // type:func +create_y_rotation_matrix=0x8001cf00; // type:func +create_yz_rotation_matrix=0x8001ca40; // type:func +create_z_rotation_matrix=0x8001cda0; // type:func +cscf=0x80018920; // type:func +dma_copy=0x80002bd0; // type:func +dma_overlay_load=0x80002d8c; // type:func +dma_read=0x80002e48; // type:func +dma_write=0x80002e84; // type:func +draw_hp_segment=0x800bd0e8; // type:func +draw_kirby_lives=0x800bd660; // type:func +draw_kirby_stars=0x800bd2f4; // type:func +draw_lives_digit=0x800bcfd8; // type:func +draw_pause_bg=0x800bc9a4; // type:func +draw_star_segments=0x800bd374; // type:func +fatal_printf=0x8002309c; // type:func +ohSleep=0x8000b6bc; // type:func +gCollisionState=0x8012bcf8; +gCrashScreen=0x800966d8; +gDisplayListHeads=0x8004a3d0; +gDynamicBuffer1=0x8004a3f8; +gFrameBuffer=0x803b6900; +gFrameBuffers=0x8015a678; +gPositionState=0x8012e968; +game_tick=0x800a377c; // type:func +get_crashed_thread=0x800229cc; // type:func +get_music_id_from_index=0x800a7740; // type:func +get_rng_seed=0x80018aa0; // type:func +get_soft_rng_seed=0x800189a8; // type:func +get_sound_id_from_index=0x800a7794; // type:func +gspF3DEX2_fifoDataRomStart=0x00042bf0; +gspF3DEX2_fifoTextRomStart=0x0003aa90; +gspL3DEX2_fifoDataRomStart=0x00043010; +gspL3DEX2_fifoTextRomStart=0x0003be20; +gspS2DEX2_fifoDataRomStart=0x00043400; +gspS2DEX2_fifoTextRomStart=0x0003cfb0; +guLookAt=0x8001a13c; // type:func +guLookAtF=0x80019eb0; // type:func +guLookAtF_2=0x8001a1b0; // type:func +guLookAtReflect=0x8001a8ec; // type:func +guLookAtReflectF=0x8001a504; // type:func +guLookAtReflectF_2=0x8001a964; // type:func +guMtxCatF=0x800340d0; // type:func +guMtxF2L=0x80030b10; // type:func +guMtxIdent=0x80030c98; // type:func +guMtxIdentF=0x80030c10; // type:func +guMtxL2F=0x80030cc8; // type:func +guMtxXFMF=0x80034030; // type:func +guNormalize=0x80034c50; // type:func +guOrtho=0x8001afa4; // type:func +guOrthoF=0x8001ae10; // type:func +init_dma_message_queue=0x80002ba0; // type:func +init_save_file_maybe=0x800b8c34; // type:func +kirby_in_inactionable_state=0x8012122c; // type:func +lbreflect_Int16Cos=0x80019e5c; // type:func +lbreflect_Int16Sin=0x80019e14; // type:func +lbvector_Add=0x80018d7c; // type:func +lbvector_Angle=0x80018fbc; // type:func +lbvector_Diff=0x80018dec; // type:func +lbvector_DiffLen=0x80019870; // type:func +lbvector_Len=0x80018d3c; // type:func +lbvector_Negate=0x80019380; // type:func +lbvector_Normalize=0x80018ca0; // type:func +lbvector_Rotate=0x80019090; // type:func +lbvector_Scale=0x80018e70; // type:func +lbvector_Shrink=0x80018ea4; // type:func +lbvector_Sub=0x80018db4; // type:func +ldiv=0x80038500; // type:func +leoBootID=0x800001a0; +lldiv=0x80038400; // type:func +load_menu_overlays=0x800a3128; // type:func +load_overlay=0x800a6b20; // type:func +memcpy=0x80033a40; // type:func +mlAlloc=0x8000783c; // type:func +mlReset=0x80007830; // type:func +mlSetup=0x800078a4; // type:func +mtx_create_translate_scale=0x8010e2b8; // type:func +n_alEnvmixerParam=0x80027520; // type:func +n_alSynAddPlayer=0x8002aa0c; // type:func +n_alSynAddSeqPlayer=0x8002a910; // type:func +n_alSynAddSndPlayer=0x8002a998; // type:func +n_alSynAllocVoice=0x8002abd0; // type:func +n_alSynSetPan=0x8002ad10; // type:func +n_alSynSetVol=0x8002d250; // type:func +n_alSynStopVoice=0x8002aa70; // type:func +n_aspMainDataRomStart=0x00042940; +n_aspMainTextRomStart=0x00039e30; +omGAddCommon=0x8000a0c0; // type:func +omGDLLinkDestructor=0x800086ec; // type:func +omGDispatchProc=0x8000ac3c; // type:func +omGInsertDLLink=0x80008590; // type:func +omGLinkObjDLCommon=0x8000a580; // type:func +omGMoveCommon=0x8000a350; // type:func +omGMoveObjDL=0x8000a888; // type:func +omGMoveObjDLHead=0x8000a904; // type:func +omGSetupCameraDLLink=0x800085f8; // type:func +omGSetupDLLink_HighestPrioMax=0x80008664; // type:func +osAfterPreNMI=0x80032b30; // type:func +osAiSetFrequency=0x80034af0; // type:func +osAiSetNextBuffer=0x80038e80; // type:func +osAppNMIBuffer=0x8000031c; +osCartRomInit=0x80035a20; // type:func +osCicId=0x80000310; +osContGetQuery=0x80032bd4; // type:func +osContGetReadData=0x8002fdb4; // type:func +osContInit=0x8002f4d0; // type:func +osContStartQuery=0x80032b50; // type:func +osContStartReadData=0x8002fd30; // type:func +osCreateMesgQueue=0x80033ae0; // type:func +osCreatePiManager=0x80032280; // type:func +osCreateThread=0x8002fbe0; // type:func +osCreateViManager=0x80038980; // type:func +osDestroyThread=0x8002db90; // type:func +osDpSetNextBuffer=0x80038880; // type:func +osEPiLinkHandle=0x80030590; // type:func +osEPiRawReadIo=0x80036e30; // type:func +osEPiRawStartDma=0x80034240; // type:func +osEPiRawWriteIo=0x800376c0; // type:func +osEPiStartDma=0x800338c0; // type:func +osEepromLongRead=0x8002ff10; // type:func +osEepromLongWrite=0x80033c40; // type:func +osEepromProbe=0x80032060; // type:func +osEepromRead=0x80038f60; // type:func +osEepromWrite=0x8002f810; // type:func +osGetCount=0x800314d0; // type:func +osGetThreadPri=0x80033fc0; // type:func +osGetTime=0x80034610; // type:func +osInitialize=0x800300a0; // type:func +osInvalDCache=0x80033b90; // type:func +osInvalICache=0x80033b10; // type:func +osJamMesg=0x80033d90; // type:func +osLeoDiskInit=0x800339a0; // type:func +osMapTLBRdb=0x80036fd0; // type:func +osMemSize=0x80000318; +osMotorInit=0x8002f2b4; +osPfsChecker=0x80036150; // type:func +osPfsDeleteFile=0x800350f0; // type:func +osPfsFindFile=0x800320d0; // type:func +osPfsFreeBlocks=0x80031270; // type:func +osPfsInitPak=0x80035d30; // type:func +osPfsIsPlug=0x80036af0; // type:func +osPfsReadWriteFile=0x80030794; // type:func +osPiGetCmdQueue=0x800357e0; // type:func +osPiRawReadIo=0x80030330; // type:func +osPiRawStartDma=0x800329d0; // type:func +osRecvMesg=0x8002d500; // type:func +osResetType=0x8000030c; +osRomBase=0x80000308; +osRomType=0x80000304; +osSendMesg=0x8002d2f0; // type:func +osSetEventMesg=0x80032ab0; // type:func +osSetIntMask=0x8002d640; // type:func +osSetThreadPri=0x80033ee0; // type:func +osSetTime=0x80035980; // type:func +osSetTimer=0x80037850; // type:func +osSpTaskLoad=0x8002d9bc; // type:func +osSpTaskStartGo=0x8002db4c; // type:func +osSpTaskYield=0x800306a0; // type:func +osSpTaskYielded=0x80034470; // type:func +osStartThread=0x80038cd0; // type:func +osStopThread=0x8002d440; // type:func +osTvType=0x80000300; +osVersion=0x80000314; +osViBlack=0x800305e0; // type:func +osViGetCurrentFramebuffer=0x800391b0; // type:func +osViGetNextFramebuffer=0x80030410; // type:func +osViSetEvent=0x800359b0; // type:func +osViSetMode=0x80030d80; // type:func +osViSetYScale=0x80038e20; // type:func +osViSwapBuffer=0x80033fe0; // type:func +osVirtualToPhysical=0x8002ffa0; // type:func +osWritebackDCache=0x80030020; // type:func +osWritebackDCacheAll=0x80038ca0; // type:func +osYieldThread=0x80037030; // type:func +ovl18_TamperCheck=0x8021f304; // type:func +ovl1_TamperCheck=0x800a6b64; // type:func +ovl3_process_command_string=0x80151e94; // type:func +play_music=0x800a75b0; // type:func +play_sound=0x800a7678; // type:func +pop_spobj=0x800ac5b0; // type:func +print_error_stub=0x800a4270; // type:func +query_controllers=0x80003ecc; // type:func +random_f32=0x80018afc; // type:func +random_f32_2=0x80018bf8; // type:func +random_s32_range=0x80018b60; // type:func +random_soft_f32=0x800189e4; // type:func +random_soft_s32_range=0x80018a44; // type:func +random_soft_u16=0x800189b4; // type:func +random_u16=0x80018aac; // type:func +random_u16_range=0x80018c5c; // type:func +random_u8=0x80018bd4; // type:func +read_controller_input=0x80003fdc; // type:func +request_job=0x800ae7a8; // type:func +request_track=0x800aeadc; // type:func +request_track_general=0x800aec08; // type:func +reset_rdp_settings=0x80007cf4; // type:func +retrace=0x8009b4f0; +sFileSelectBackgroundImage=0x8015ab50; // type:func +sMenuLevelPercentImage=0x8015ab70; // type:func +sPakDevices=0x800490f0; +save_file_set_to_full_completion=0x800ba5c4; // type:func +secf=0x80018948; // type:func +send_mesg=0x8002e4a4; +set_cutscene_watched=0x800b9f90; // type:func +set_hard_rng_seed=0x80018a94; // type:func +set_kirby_action_1=0x80122f6c; // type:func +set_kirby_action_2=0x80122f94; // type:func +set_scissor_callback=0x80007ce8; // type:func +set_soft_rng_seed=0x80018998; // type:func +setup_segment_15=0x80005378; // type:func +setup_viewport=0x80007c9c; // type:func +siAccessBuf=0x80098a90; +sound_str_atoi=0x800a7704; // type:func +spawn_entity=0x800fc9c0; // type:func +sqrtf=0x80032b20; // type:func +strchr=0x80033a94; // type:func +strlen=0x80033a6c; // type:func +tamper_check_ovl20=0x80300000; // type:func +tanf=0x800185b0; // type:func +thread1_idle=0x800007c8; // type:func +scThreadMain=0x80002598; // type:func +thread5_game=0x800005d8; // type:func +thread_crash_stack_overflow=0x800004e0; // type:func +unused_get_main_thread=0x80000460; // type:func +unused_get_main_thread_stack=0x8000046c; // type:func +unused_get_main_thread_stack_length=0x80000478; // type:func +vec3_abs_angle_diff=0x800f89c0; // type:func +vec3_compare_directions=0x800196d4; // type:func +vec3_cross_product=0x8011c2d4; // type:func +vec3_dist_square=0x800a455c; // type:func +vec3_dot_product=0x800a44bc; // type:func +vec3_mag_square=0x800a4534; // type:func +vec3_negate=0x800191cc; // type:func +vec3_normalized_cross_product=0x80019740; // type:func +vec3_sub_normalize=0x80018e24; // type:func +vec3_subtract_compare_directions=0x800197ec; // type:func +verify_save=0x800b92d8; // type:func +write_to_buf=0x80021f80; // type:func +func_800109B4=0x800109B4; // type:func size:0x16C +ovl1_VRAM=0x8009B540; + +// force these to resolve into overlays +func_80198880_ovl7=0x80198880; // type:func +func_80199568_ovl7=0x80199568; // type:func +func_8019B7D8_ovl7=0x8019B7D8; // type:func +func_8019BBEC_ovl7=0x8019BBEC; // type:func +func_801BBFE4_ovl7=0x801BBFE4; // type:func +func_801BC27C_ovl7=0x801BC27C; // type:func + +func_8016BF60_ovl3=0x8016BF60; // type:func +func_8017644C_ovl3=0x8017644C; // type:func +func_80176484_ovl3=0x80176484; // type:func + +func_80151CEC_ovl4=0x80151CEC; // type:func +func_8015531C_ovl4=0x8015531C; // type:func +func_80158048_ovl4=0x80158048; // type:func +func_80159A54_ovl4=0x80159A54; // type:func +func_80159EFC_ovl4=0x80159EFC; // type:func + +func_8015C740_ovl5=0x8015C740; // type:func +func_80165370_ovl5=0x80165370; // type:func +func_8016FAB0_ovl5=0x8016FAB0; // type:func +func_80177A30_ovl5=0x80177A30; // type:func +func_80179D48_ovl5=0x80179D48; // type:func +func_8017CC3C_ovl5=0x8017CC3C; // type:func +func_8017ECA4_ovl5=0x8017ECA4; // type:func +func_8017F594_ovl5=0x8017F594; // type:func +func_801802A8_ovl5=0x801802A8; // type:func +func_801822AC_ovl5=0x801822AC; // type:func +func_80182FE8_ovl5=0x80182FE8; // type:func +func_80185EEC_ovl5=0x80185EEC; // type:func + +func_80154D60_ovl6=0x80154D60; // type:func + +func_801D1CAC_ovl8=0x801D1CAC; // type:func +func_801D1E98_ovl8=0x801D1E98; // type:func + +func_801F0050_ovl10=0x801F0050; // type:func +func_8020FC68_ovl9=0x8020FC68; // type:func +func_80227308_ovl18=0x80227308; // type:func + +func_801DC98C_ovl17=0x801DC98C; // type:func + +viMgrMain=0x80038B00; // type:func +__osMotorAccess=0x8002F040; // type:func +osPfsAllocateFile=0x80030DF0; // type:func +__osLeoResume=0x8002EF84; // type:func +__osLeoAbnormalResume=0x8002EED0; // type:func +__osPfsGetNextPage=0x800306C0; // type:func +__osContAddressCrc=0x80037550; // type:func +__osContDataCrc=0x80037620; // type:func +__osPfsLastChannel=0x8003FE10; + +// ovl19/helper.c +D_800E8060 = 0x800E8060; +D_8012E7FC = 0x8012E7FC; +n_alSynDelete = 0x8002D070; // type:func +n_alSynNew = 0x80029E38; // type:func +alHeapDBAlloc = 0x8001E3D4; +alCSeqNextEvent = 0x8002587C; +alCSeqNew = 0x80025B74; +n_alEnvmixerPull = 0x80027670; +alSeqNextEvent = 0x8002CA48; +alSynRemovePlayer = 0x800BB3C0; +n_alSynRemovePlayer = 0x800BDAA8; +alSeqFileNew = 0x8001E450; +alCSeqNewMarker = 0x80025C7C; +__alCSeqNextDelta = 0x80025DE8; +n_alLoadParam = 0x80027360; +n_alAuxBusPull = 0x80027CB4; +n_alMainBusPull = 0x80029938; +n_alSavePull = 0x800299AC; +alN_PVoiceNew = 0x80029D10; +alSeqSetLoc = 0x8002C9D0; +alSeqGetTicks = 0x8002C9EC; +alSeqNewMarker = 0x8002CBCC; +__alSeqNextDelta = 0x8002CCEC; +n_alSynSetPitch = 0x8002CDA0; +alSndpDelete = 0x80062B0C; +n_alSeqpDelete = 0x800653B8; +__CallBackDmaNew = 0x80084D38; +alGlobals = 0x800ED4C4; +__MotorDataBuf=0x80098990; + +// audio.c +auInit = 0x8001F24C; // type:func +auCurrentSettings = 0x800964A0; +auPublicSettings = 0x8003F350; +auLoadAssets = 0x8001F2E0; // type:func +auCreatePlayers = 0x8001F81C; // type:func +n_alClose = 0x8002A138; // type:func +n_alInit = 0x8002A178; // type:func +alAudioFrame=0x800299F8; // type:func +auStopBGM=0x800208D4; // type:func +auStopAllSounds=0x80020C88; // type:func +alCSPSetVol = 0x8002CF00; // type:func +alCSPSetSeq = 0x8002CD60; // type:func +alCSPPlay = 0x8002D0A0; // type:func +alCSPSetChlPriority = 0x800232B0; // type:func +alHeapInit = 0x8001E3A0; // type:func +alBnkfNew = 0x8001E490; // type:func +_bnkfPatchBank = 0x8001E510; // type:func +_bnkfPatchInst = 0x8001E5C8; // type:func +_bnkfPatchSound = 0x8001E660; // type:func +_bnkfPatchWaveTable = 0x8001E6B8; // type:func +auRomRead = 0x8001E724; // type:func +auDMA = 0x8001E7A4; // type:func +auDMANew = 0x8001E8D0; // type:func +_depth2Cents = 0x8001E9A0; // type:func +initOsc = 0x8001E9EC; // type:func +updateOsc = 0x8001ECC0; // type:func +stopOsc = 0x8001F234; // type:func +auThreadMain=0x8001fd64; // type:func +auSetHighSoundQuality = 0x80020878; // type:func +auSetLowSoundQuality = 0x80020888; // type:func +auSetSoundQuality = 0x80020894; // type:func +auSetReverbType = 0x800208A0; // type:func +auPlaySong = 0x80020914; // type:func +auStopSong = 0x80020968; // type:func +auSetBGMVolume = 0x80020998; // type:func +auSetBGMVolumeSmooth = 0x80020A20; // type:func +auSetBGMReverb = 0x80020ABC; // type:func +auSetBGMPriority = 0x80020B34; // type:func +alCSPSetChlFXMix = 0x80023300; // type:func +scAddClient = 0x800009E8; // type:func + + +auGlobals = 0x800963D0; +auSPTaskMQ = 0x80095E00; +auTask = 0x80096458; +auFrameCounter = 0x8003F344; +auSettingsUpdated = 0x8003F330; +auCurrTime = 0x80096508; +auCmdList = 0x8009644C; +auSampleCounter = 0x80096250; +auCmdListBuffers = 0x80096450; +auScTasks = 0x80096460; +auDMA_MQ = 0x80095E18; +auDMAMessages = 0x80095E58; +auDataBuffers = 0x80096440; +auSampleCount = 0x8003F348; +auDMACount = 0x8003F334; +auHeap = 0x80095DC8; +auHeapBase = 0x80095DD8; +auHeapSize = 0x80095DDC; +auRestarting = 0x8003F340; +auSoundQuality = 0x8003F338; +auDMAIOMesgBuf = 0x80095F20; +freeOscStateList = 0x80096510; +auClient = 0x80095DE0; +auGameTickQueue = 0x80095DE8; +auGameTickMessages = 0x80095E48; +auSPTaskMessages = 0x80095E4C; +auSeqBank = 0x80096470; +auSeqFile = 0x80096474; +auCurrentFxType = 0x8003F33C; +auBGMSongId = 0x8009648C; +auBGMVolume = 0x80096494; +auBGMVolumeTimer = 0x80096490; +auBGMPlayers = 0x80096478; +auSongVolumeRate = 0x80096498; +auGlobalSongPriority = 0x80096480; +auBGMSeqData = 0x80096484; +auBGMPlayerStatus = 0x80096488; + +// math.c +mathDetRNGVals = 0x8003DF20; +mathDetRNGSeed = 0x8003E320; +mathRNGSeed = 0x8003E324; + +// om +omGObjListDlHead = 0x8004a680; // size:132 +omCurrentProc = 0x8004A7D0; +omCurrentObj = 0x8004A7C4; +HS64_GetGObjThreadStack=0x80007fe4; // type:func +HS64_ReleaseGObjThreadStack=0x8000803c; // type:func +omActiveThreadStacks = 0x8004A548; +HS64_GObjProcessRelease=0x80008198; // type:func +omGObjProcList = 0x8004A560; // size:16 +HS64_GObjProcessReleasePri=0x800081c4; // type:func +HS64_GetCurrentProc = 0x80008280; // type:func +omProcEndCallback = 0x8004A558; +HS64_SetProcEndCallback = 0x8000831C; // type:func +omGObjListHead = 0x8004A578; +omGObjListTail = 0x8004A5F8; +HS64_omInit=0x8000ae84; // type:func +omGObjListDlTail=0x8004A708; +HS64_omMakeGObj=0x8000A180; // type:func + +// cont +contSendEvent = 0x800045C0; // type:func +contHandleEvent = 0x80004E98; // type:func +contMain = 0x800051E0; // type:func +contClient = 0x80048DC0; +contEventMQ = 0x80048DE8; +contEventMesgArray = 0x80048E00; +contPollTimer = 0x80048F58; + +// dma +dmaVPKDevAddr = 0x80048D88; +dmaVPKVramAddr = 0x80048D8C; +dmaVPKLen = 0x80048D90; + +// ovl1_1_2 +correct_stick_x = 0x800A5560; // type:func +correct_stick_y = 0x800A55E0; // type:func +gOverlayTable = 0x800BE8A0; + diff --git a/undefined_syms.txt b/undefined_syms.txt index f2ad83473..84b64a0a7 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -32,6 +32,7 @@ gCollisionState = 0x8012BCF8; gFrameBuffers = 0x8015A678; /* why is this list getting bigger aaaaaaaaaaaaaa */ +D_80300170 = 0x80300170; gCrashScreen = 0x800966D8; __osPiTable = 0x8003FBDC; __osCurrentHandle = 0x8003FBE0; @@ -41,3 +42,19 @@ send_mesg = 0x8002E4A4; gDisplayListHead = gDisplayListHeads; func_80300170 = D_80300170; __D_800E9AA0 = D_800E9AA0; + +/* splat memes */ +.L801D9FC0_ovl14 = 0x801D9FC0; +.L801DAADC_ovl13 = 0x801DAADC; +.L801DAB04_ovl13 = 0x801DAB04; +.L801DAF60_ovl13 = 0x801DAF60; +.L801F4D48_ovl9 = 0x801F4D48; +.L801F4D6C_ovl9 = 0x801F4D6C; +.L801F4D70_ovl9 = 0x801F4D70; +D_801CE6D0 = 0x801CE6D0; +D_801D8DC0 = 0x801D8DC0; +D_801D9558 = 0x801D9558; +D_803000E0 = 0x803000E0; +D_803001A0 = 0x803001A0; +func_80198880 = 0x80198880; + diff --git a/unnamed_syms.txt b/unnamed_syms.txt index ebe23a17d..89c1559f8 100644 --- a/unnamed_syms.txt +++ b/unnamed_syms.txt @@ -124,7 +124,7 @@ SYM(func_80009D5C, 0x80009D5C); SYM(func_8000B908, 0x8000B908); SYM(func_8000BA2C, 0x8000BA2C); SYM(func_8000B9CC, 0x8000B9CC); -SYM(func_8000A180, 0x8000A180); +SYM(HS64_omMakeGObj, 0x8000A180); SYM(func_8000A5FC, 0x8000A5FC); SYM(func_8000A764, 0x8000A764); SYM(func_8000B950, 0x8000B950);