Merge branch 'master' of https://github.com/martmists/pokediamond into os_lib

This commit is contained in:
red031000
2020-04-26 21:32:09 +01:00
60 changed files with 137279 additions and 25911 deletions
+2
View File
@@ -6,6 +6,8 @@ tools/mwccarm/**
# Build folder
build/**
arm7/build/**
arm9/build/**
# CLion folders
.idea/
+2
View File
@@ -19,6 +19,7 @@ Building the ROM requires the following packages:
* build-essentials
* binutils-arm-none-eabi
* wine (to run the mwcc executables)
* libpng-devel
NOTE: If you are using Arch/Manjaro or Void you will only need base-devel instead of build-essentials or make or git. You will still need wine.
@@ -41,6 +42,7 @@ You will still require the following packages:
* make
* git
* build-essentials
* libpng-devel
Install them using either the Cygwin package manager or using pacman on Msys2.
+18 -3
View File
@@ -54,6 +54,9 @@ S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
$(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
ARM9BIN := arm9/build/arm9.bin
ARM7BIN := arm7/build/arm7.bin
##################### Compiler Options #######################
MWCCVERSION := 2.0/base
@@ -107,7 +110,7 @@ else
NODEP := 1
endif
.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm
.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm $(ARM9BIN) $(ARM7BIN)
MAKEFLAGS += --no-print-directory
@@ -115,12 +118,18 @@ all: $(ROM)
@$(SHA1SUM) -c $(TARGET).sha1
clean: mostlyclean
make -C arm9 clean
make -C arm7 clean
make -C tools/mwasmarm_patcher clean
mostlyclean: tidy
make -C arm9 mostlyclean
make -C arm7 mostlyclean
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} +
tidy:
make -C arm9 tidy
make -C arm7 tidy
$(RM) -r $(BUILD_DIR)
tools: $(TOOLDIRS)
@@ -133,6 +142,12 @@ $(MWASMARM): patch_mwasmarm
patch_mwasmarm:
$(MWASMARM_PATCHER) $(MWASMARM)
$(ARM9BIN):
@$(MAKE) -C arm9
$(ARM7BIN):
@$(MAKE) -C arm7
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
$(BUILD_DIR)/%.o: %.c
@@ -144,8 +159,8 @@ $(BUILD_DIR)/%.o: %.s
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt
$(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $<
$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT)
$(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES)
$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(ARM9BIN) $(ARM7BIN)
$(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ARM9BIN) $(ARM7BIN)
$(ROM): $(ELF)
$(OBJCOPY) -O binary --gap-fill=0xFF --pad-to=0x04000000 $< $@
+175
View File
@@ -0,0 +1,175 @@
# Makefile to build Pokemon Diamond image
.PHONY: clean tidy all default patch_mwasmarm
# Try to include devkitarm if installed
TOOLCHAIN := $(DEVKITARM)
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
endif
### Default target ###
default: all
# If you are using WSL, it is recommended you build with NOWINE=1.
WSLENV ?= no
ifeq ($(WSLENV),)
NOWINE = 1
else
NOWINE = 0
endif
ifeq ($(OS),Windows_NT)
EXE := .exe
WINE :=
else
EXE :=
WINE := wine
endif
ifeq ($(NOWINE),1)
WINE :=
endif
################ Target Executable and Sources ###############
BUILD_DIR := build
TARGET := arm7
ROM := $(BUILD_DIR)/$(TARGET).bin
ELF := $(BUILD_DIR)/$(TARGET).elf
LD_SCRIPT := arm7.lcf
# Directories containing source files
SRC_DIRS := src
ASM_DIRS := asm data files
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
# Object files
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
$(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
##################### Compiler Options #######################
MWCCVERSION := 2.0/base
TOOLS_DIR = ../tools
CROSS := arm-none-eabi-
MWCCARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe
# Argh... due to EABI version shenanigans, we can't use GNU LD to link together
# MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we
# have to use mwldarm for now.
# TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the
# only dependency should be MWCCARM.
MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe
MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe
AS := $(WINE) $(MWASMARM)
CC := $(WINE) $(MWCCARM)
CPP := cpp -P
LD := $(WINE) $(MWLDARM)
AR := $(CROSS)ar
OBJDUMP := $(CROSS)objdump
OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm7_thumb.s -o arm7.o
ASFLAGS = -proc arm5te -i ..
CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include
LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
####################### Other Tools #########################
# DS TOOLS
SHA1SUM = sha1sum
JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc
GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx
MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE)
TOOLDIRS = $(filter-out $(TOOLS_DIR)/mwccarm,$(wildcard $(TOOLS_DIR)/*))
TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%)
TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE))
######################### Targets ###########################
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
# Build tools when building the rom
# Disable dependency scanning for clean/tidy/tools
ifeq (,$(filter-out all,$(MAKECMDGOALS)))
$(call infoshell, $(MAKE) tools patch_mwasmarm)
else
NODEP := 1
endif
.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm
MAKEFLAGS += --no-print-directory
all: $(ROM)
# @$(SHA1SUM) -c $(TARGET).sha1
clean: mostlyclean
make -C $(TOOLS_DIR)/mwasmarm_patcher clean
mostlyclean: tidy
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} +
tidy:
$(RM) -r $(BUILD_DIR)
tools: $(TOOLDIRS)
$(TOOLDIRS):
@$(MAKE) -C $@
$(MWASMARM): patch_mwasmarm
patch_mwasmarm:
$(MWASMARM_PATCHER) $(MWASMARM)
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
$(BUILD_DIR)/%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
$(BUILD_DIR)/%.o: %.s
$(AS) $(ASFLAGS) $< -o $@
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt
$(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $<
$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT)
$(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES)
$(ROM): $(ELF)
$(OBJCOPY) -O binary --gap-fill=0xFF $< $@
# Make sure build directory exists before compiling anything
DUMMY != mkdir -p $(ALL_DIRS)
%.4bpp: %.png
$(GFX) $< $@
%.gbapal: %.png
$(GFX) $< $@
%.gbapal: %.pal
$(GFX) $< $@
%.lz: %
$(GFX) $< $@
%.png: ;
%.pal: ;
$(BUILD_DIR)/data/icon.o: graphics/icon.4bpp graphics/icon.gbapal
### Debug Print ###
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
+10
View File
@@ -0,0 +1,10 @@
MEMORY {
.text (RX) : ORIGIN=0x02380000, LENGTH=0
}
SECTIONS {
#include "undefined_syms.txt"
.text : AT (0x0) {
arm7_rom.o (.text)
} > .text
}
+78 -11
View File
@@ -3,9 +3,9 @@
.global ARM7AutoLoad
.section .text
arm_func_start Entry_ARM7
arm_func_start _start
Entry_ARM7:
_start:
mov ip, #67108864 ; 0x4000000
str ip, [ip, #520] ; 0x208
ldr r1, _23800cc
@@ -61,7 +61,7 @@ _023800a4:
ldr r1, _23800f8
ldr lr, _23800fc
bx r1
_23800cc: .word UNK_23801B0
_23800cc: .word FUN_023801B0
_23800d0: .word 0x0380ff00
_23800d4: .word 0x0380ffc0
_23800d8: .word 0x0380ff80
@@ -74,7 +74,7 @@ _23800f0: .word 0x0380fffc
_23800f4: .word 0x037f853c
_23800f8: .word 0x037f8468
_23800fc: .word 0xffff0000
arm_func_end Entry_ARM7
arm_func_end _start
arm_func_start FUN_2380100
FUN_2380100:
@@ -129,17 +129,84 @@ _0238018c:
_2380194: .word 0x027ffffa
_2380198:
.word UNK_23A92F8
.word UNK_23A92FC
.word UNK_23801B0
.word UNK_23801B0
.word UNK_23801B0
.word UNK_23A931C
.word FUN_023801B0
.word FUN_023801B0
.word FUN_023801B0
.word 0x00000000
arm_func_end FUN_238015C
UNK_23801B0:
.incbin "baserom.nds", 0x30D1B0, 0x29148
arm_func_start FUN_023801B0
FUN_023801B0:
.incbin "baserom.nds", 0x30D1B0, 0x91B0
thumb_func_start ROM7_SVC_SoftReset
ROM7_SVC_SoftReset: ; 0x02389360
swi 0
bx lr
thumb_func_start ROM7_SVC_WaitByLoop
ROM7_SVC_WaitByLoop: ; 0x02389364
swi 3
bx lr
thumb_func_start ROM7_SVC_WaitIntr
ROM7_SVC_WaitIntr: ; 0x02389368
ldr r2, =0x04000000
mov ip, r2
mov r2, #0x0
swi 4
bx lr
.pool
thumb_func_start ROM7_SVC_WaitVBlankIntr
ROM7_SVC_WaitVBlankIntr:
mov r2, #0x0
swi 5
bx lr
non_word_aligned_thumb_func_start ROM7_SVC_Halt
ROM7_SVC_Halt:
swi 6
bx lr
non_word_aligned_thumb_func_start ROM7_SVC_Stop
ROM7_SVC_Stop:
swi 7
bx lr
non_word_aligned_thumb_func_start ROM7_SVC_SoundBias
ROM7_SVC_SoundBias:
swi 8
bx lr
non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasSet
ROM7_SVC_SoundBiasSet:
add r1, r0, #0x0
mov r0, #0x1
swi 8
bx lr
non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasReset
ROM7_SVC_SoundBiasReset:
add r1, r0, #0x0
mov r0, #0x0
swi 8
bx lr
non_word_aligned_thumb_func_start ROM7_SVC_Div
ROM7_SVC_Div:
swi 9
bx lr
non_word_aligned_thumb_func_start ROM7_SVC_DivRem
ROM7_SVC_DivRem:
swi 9
add r0, r1, #0x0
bx lr
.incbin "baserom.nds", 0x3163a4, 0x1ff54
UNK_23A92F8:
.incbin "baserom.nds", 0x3362F8, 0x24
UNK_23A92FC:
UNK_23A931C:
+1
View File
@@ -0,0 +1 @@
.include "asm/macros/function.inc"
+24
View File
@@ -0,0 +1,24 @@
.macro arm_func_start name
.balign 4, 0
.global \name
.arm
.endm
.macro arm_func_end name
.size \name, .-\name
.endm
.macro thumb_func_start name
.balign 4, 0
.global \name
.thumb
.endm
.macro non_word_aligned_thumb_func_start name
.global \name
.thumb
.endm
.macro thumb_func_end name
.size \name, .-\name
.endm
+3517
View File
File diff suppressed because it is too large Load Diff
+506
View File
@@ -0,0 +1,506 @@
SDK_SYS_STACKSIZE = 0x00000000;
CONST_34 = 0x00000034;
CONST_3F = 0x0000003F;
SDK_IRQ_STACKSIZE = 0x00000400;
// .data
// OS
OSi_IrqCallbackInfoIndex = 0x02106818;
// DGT
Unk_0210683C = 0x0210683C;
Unk_02106840 = 0x02106840;
Unk_02106900 = 0x02106900;
Unk_02106A00 = 0x02106A00;
Unk_02106A04 = 0x02106A04;
// .bss
gBacklightTop = 0x02106FA0;
gBacklightTop_2 = 0x02106FA0;
gUnknown2106FB8 = 0x02106FB8;
gUnknown21C48B8 = 0x021C48B8;
gUnk021C4918 = 0x021C4918;
OSi_IrqCallbackInfo = 0x021D341C;
isInitialized = 0x021D347C;
OSi_StackForDestructor = 0x021D3480;
OSi_RescheduleCount = 0x021D3484;
OSi_ThreadIdCount = 0x021D3488;
OSi_SystemCallbackInSwitchThread = 0x021D348C;
OSi_CurrentThreadPtr = 0x021D3490;
OSi_IsThreadInitialized = 0x021D3494;
OSi_ThreadInfo = 0x021D3498;
OSi_IdleThread = 0x021D34A8;
OSi_LauncherThread = 0x021D3568;
OSi_IdleThreadStack = 0x021D3628;
OSi_Initialized = 0x021D36F0;
OSi_MainExArenaEnabled = 0x021D36F4;
OSi_HeapInfo = 0x021D36F8;
OSi_UserExceptionHandler = 0x021D371C;
OSi_UserExceptionHandlerArg = 0x21D3720;
OSi_DebuggerHandler = 0x021D3724;
OSi_ExContext = 0x021D3728;
OSi_TimerReserved = 0x021D37A8;
OSi_UseTick = 0x021D37AC;
OSi_NeedResetTimer = 0x021D37B0;
OSi_TickCounter = 0x021D37B4;
OSi_UseAlarm = 0x021D37BC;
OSi_AlarmQueue = 0x021D37C0;
OSi_UseVAlarm = 0x021D37C8;
OSi_PreviousVCount = 0x021D37CC;
OSi_VFrameCount = 0x021D37D0;
OSi_VAlarmQueue = 0x021D37D4;
OSi_IsInitReset = 0x021D37DC;
OSi_IsResetOccurred = 0x021D37E0;
OSi_vramExclusive = 0x021D37E4;
OSi_vramLockId = 0x021D37E8;
cardi_common = 0x021D55C0;
// Overlay
FUN_021D74E0 = 0x021D74E0;
FUN_021D76AC = 0x021D76AC;
gUnk021D76C8 = 0x021D76C8;
FUN_021D77C4 = 0x021D77C4;
FUN_021D7800 = 0x021D7800;
FUN_021D78FC = 0x021D78FC;
FUN_021D79B4 = 0x021D79B4;
FUN_021D7CA4 = 0x021D7CA4;
FUN_021D7F8C = 0x021D7F8C;
FUN_021D8018 = 0x021D8018;
FUN_021D8164 = 0x021D8164;
FUN_021D82BC = 0x021D82BC;
FUN_021D8320 = 0x021D8320;
FUN_021D836C = 0x021D836C;
FUN_021D83A8 = 0x021D83A8;
FUN_021D83C0 = 0x021D83C0;
FUN_021D844C = 0x021D844C;
FUN_021D8494 = 0x021D8494;
FUN_021D85FC = 0x021D85FC;
FUN_021D8624 = 0x021D8624;
FUN_021D865C = 0x021D865C;
FUN_021D8758 = 0x021D8758;
FUN_021D8820 = 0x021D8820;
FUN_021D88E4 = 0x021D88E4;
FUN_021D89CC = 0x021D89CC;
FUN_021D8B64 = 0x021D8B64;
FUN_021D8C24 = 0x021D8C24;
FUN_021D917C = 0x021D917C;
FUN_021D959C = 0x021D959C;
FUN_021D967C = 0x021D967C;
FUN_021D96F4 = 0x021D96F4;
FUN_021D9708 = 0x021D9708;
FUN_021D971C = 0x021D971C;
FUN_021D9820 = 0x021D9820;
FUN_021D99F8 = 0x021D99F8;
FUN_021DA464 = 0x021DA464;
FUN_021DA4EC = 0x021DA4EC;
FUN_021DA54C = 0x021DA54C;
FUN_021DA58C = 0x021DA58C;
FUN_021DA5B8 = 0x021DA5B8;
FUN_021DA5C8 = 0x021DA5C8;
FUN_021DA5D0 = 0x021DA5D0;
FUN_021DA5D8 = 0x021DA5D8;
FUN_021DA7B4 = 0x021DA7B4;
FUN_021DAAA4 = 0x021DAAA4;
FUN_021DAC70 = 0x021DAC70;
FUN_021DAE40 = 0x021DAE40;
FUN_021DAED4 = 0x021DAED4;
FUN_021DAF28 = 0x021DAF28;
FUN_021DAF78 = 0x021DAF78;
FUN_021DAF98 = 0x021DAF98;
FUN_021DB030 = 0x021DB030;
FUN_021DB7E8 = 0x021DB7E8;
FUN_021DB858 = 0x021DB858;
gUnk021DBE18 = 0x021DBE18;
FUN_021DC174 = 0x021DC174;
FUN_021DD6F0 = 0x021DD6F0;
FUN_021DD718 = 0x021DD718;
FUN_021DDB08 = 0x021DDB08;
FUN_021E1374 = 0x021E1374;
FUN_021E1858 = 0x021E1858;
FUN_021E1994 = 0x021E1994;
FUN_021E1BF8 = 0x021E1BF8;
FUN_021E1C4C = 0x021E1C4C;
FUN_021E1C54 = 0x021E1C54;
FUN_021E1ECC = 0x021E1ECC;
FUN_021E1F34 = 0x021E1F34;
FUN_021E1F58 = 0x021E1F58;
FUN_021E1F60 = 0x021E1F60;
FUN_021E2464 = 0x021E2464;
FUN_021E2608 = 0x021E2608;
FUN_021E26CC = 0x021E26CC;
FUN_021E27E8 = 0x021E27E8;
FUN_021E288C = 0x021E288C;
FUN_021E28A0 = 0x021E28A0;
FUN_021E2950 = 0x021E2950;
FUN_021E29B4 = 0x021E29B4;
FUN_021E29C8 = 0x021E29C8;
FUN_021E2A70 = 0x021E2A70;
FUN_021E2AD4 = 0x021E2AD4;
FUN_021E2B80 = 0x021E2B80;
FUN_021E2B9C = 0x021E2B9C;
FUN_021E2BB8 = 0x021E2BB8;
FUN_021E2BD0 = 0x021E2BD0;
FUN_021E2C24 = 0x021E2C24;
FUN_021E2C58 = 0x021E2C58;
FUN_021E2CBC = 0x021E2CBC;
FUN_021E32F0 = 0x021E32F0;
FUN_021E331C = 0x021E331C;
FUN_021E3424 = 0x021E3424;
FUN_021E3444 = 0x021E3444;
FUN_021E495C = 0x021E495C;
FUN_021E4C54 = 0x021E4C54;
FUN_021E4C60 = 0x021E4C60;
FUN_021E4DE4 = 0x021E4DE4;
FUN_021E5614 = 0x021E5614;
FUN_021E57D4 = 0x021E57D4;
FUN_021E5970 = 0x021E5970;
FUN_021E5B30 = 0x021E5B30;
FUN_021E5FD8 = 0x021E5FD8;
FUN_021E5FE0 = 0x021E5FE0;
FUN_021E6410 = 0x021E6410;
FUN_021E643C = 0x021E643C;
FUN_021E6990 = 0x021E6990;
FUN_021E69BC = 0x021E69BC;
FUN_021E6BF4 = 0x021E6BF4;
FUN_021E7030 = 0x021E7030;
FUN_021E70F0 = 0x021E70F0;
FUN_021E7138 = 0x021E7138;
FUN_021E7184 = 0x021E7184;
FUN_021E71E8 = 0x021E71E8;
FUN_021E7750 = 0x021E7750;
FUN_021E799C = 0x021E799C;
FUN_021E7AC0 = 0x021E7AC0;
FUN_021E7EA0 = 0x021E7EA0;
FUN_021E7EB0 = 0x021E7EB0;
FUN_021E7EC4 = 0x021E7EC4;
FUN_021E7EC8 = 0x021E7EC8;
FUN_021E7ED0 = 0x021E7ED0;
FUN_021E7ED8 = 0x021E7ED8;
FUN_021E7FBC = 0x021E7FBC;
FUN_021E8128 = 0x021E8128;
FUN_021E8130 = 0x021E8130;
FUN_021E8140 = 0x021E8140;
FUN_021E8144 = 0x021E8144;
FUN_021E8148 = 0x021E8148;
FUN_021E8158 = 0x021E8158;
FUN_021E81BC = 0x021E81BC;
FUN_021E84F4 = 0x021E84F4;
FUN_021E856C = 0x021E856C;
FUN_021E8588 = 0x021E8588;
FUN_021E85E4 = 0x021E85E4;
FUN_021E85FC = 0x021E85FC;
FUN_021EAE90 = 0x021EAE90;
FUN_021EB044 = 0x021EB044;
FUN_021EC57C = 0x021EC57C;
FUN_021EC71C = 0x021EC71C;
FUN_021EC854 = 0x021EC854;
FUN_021EC864 = 0x021EC864;
FUN_021ECD64 = 0x021ECD64;
FUN_021ECF14 = 0x021ECF14;
FUN_021ED0CC = 0x021ED0CC;
FUN_021ED49C = 0x021ED49C;
FUN_021ED4E0 = 0x021ED4E0;
FUN_021ED52C = 0x021ED52C;
FUN_021ED5C4 = 0x021ED5C4;
FUN_021ED5EC = 0x021ED5EC;
FUN_021ED644 = 0x021ED644;
FUN_021ED940 = 0x021ED940;
FUN_021EDA48 = 0x021EDA48;
FUN_021EDBC8 = 0x021EDBC8;
FUN_021EF5E0 = 0x021EF5E0;
FUN_021EF604 = 0x021EF604;
FUN_021EF620 = 0x021EF620;
FUN_021EF654 = 0x021EF654;
FUN_021EF824 = 0x021EF824;
FUN_021EF844 = 0x021EF844;
FUN_021EF8C8 = 0x021EF8C8;
FUN_021EF8DC = 0x021EF8DC;
FUN_021EFA9C = 0x021EFA9C;
FUN_021F02C4 = 0x021F02C4;
FUN_021F1D8C = 0x021F1D8C;
FUN_021F1DC8 = 0x021F1DC8;
FUN_021F1DFC = 0x021F1DFC;
FUN_021F1EC0 = 0x021F1EC0;
FUN_021F1F78 = 0x021F1F78;
FUN_021F2094 = 0x021F2094;
FUN_021F20D8 = 0x021F20D8;
FUN_021F20F8 = 0x021F20F8;
FUN_021F2AF4 = 0x021F2AF4;
FUN_021F2E0C = 0x021F2E0C;
FUN_021F2E28 = 0x021F2E28;
FUN_021F2F48 = 0x021F2F48;
FUN_021F2F6C = 0x021F2F6C;
FUN_021F3A18 = 0x021F3A18;
FUN_021F3AB4 = 0x021F3AB4;
FUN_021F3B4C = 0x021F3B4C;
FUN_021F3B7C = 0x021F3B7C;
FUN_021F3DA4 = 0x021F3DA4;
FUN_021F44D8 = 0x021F44D8;
FUN_021F4520 = 0x021F4520;
FUN_021F4568 = 0x021F4568;
FUN_021F4594 = 0x021F4594;
FUN_021F45E8 = 0x021F45E8;
FUN_021F4608 = 0x021F4608;
FUN_021F4BD0 = 0x021F4BD0;
FUN_021F4C88 = 0x021F4C88;
FUN_021F4D80 = 0x021F4D80;
FUN_021F4DC8 = 0x021F4DC8;
FUN_021F4E7C = 0x021F4E7C;
FUN_021F57EC = 0x021F57EC;
FUN_021F5C44 = 0x021F5C44;
FUN_021F61DC = 0x021F61DC;
FUN_021F61E8 = 0x021F61E8;
FUN_02211E60 = 0x02211E60;
FUN_0222D5C0 = 0x0222D5C0;
FUN_0222DAEC = 0x0222DAEC;
FUN_0222DD1C = 0x0222DD1C;
FUN_0222DD38 = 0x0222DD38;
FUN_0222E2BC = 0x0222E2BC;
FUN_0222E360 = 0x0222E360;
FUN_0222E3A0 = 0x0222E3A0;
FUN_0222E7E8 = 0x0222E7E8;
FUN_0222E874 = 0x0222E874;
FUN_0222ED34 = 0x0222ED34;
FUN_0222EDBC = 0x0222EDBC;
FUN_0222F440 = 0x0222F440;
FUN_0222F480 = 0x0222F480;
FUN_0222F7E0 = 0x0222F7E0;
FUN_0222F990 = 0x0222F990;
FUN_022300D4 = 0x022300D4;
FUN_022300DC = 0x022300DC;
FUN_022300E4 = 0x022300E4;
FUN_022300E8 = 0x022300E8;
FUN_022300F4 = 0x022300F4;
FUN_02230100 = 0x02230100;
FUN_0223010C = 0x0223010C;
FUN_02230118 = 0x02230118;
FUN_02230124 = 0x02230124;
FUN_02230F3C = 0x02230F3C;
FUN_02230F70 = 0x02230F70;
FUN_02230F80 = 0x02230F80;
FUN_02231344 = 0x02231344;
FUN_02231350 = 0x02231350;
FUN_0223135C = 0x0223135C;
FUN_02231368 = 0x02231368;
FUN_02231374 = 0x02231374;
FUN_02239944 = 0x02239944;
FUN_02239AAC = 0x02239AAC;
FUN_0223CACC = 0x0223CACC;
FUN_0223CB08 = 0x0223CB08;
FUN_0223CCDC = 0x0223CCDC;
FUN_0223CD7C = 0x0223CD7C;
FUN_0223D3D0 = 0x0223D3D0;
FUN_0223D638 = 0x0223D638;
FUN_0223D648 = 0x0223D648;
FUN_0223DFB4 = 0x0223DFB4;
FUN_0223E060 = 0x0223E060;
FUN_0223E118 = 0x0223E118;
FUN_0223E154 = 0x0223E154;
FUN_0223E1A4 = 0x0223E1A4;
FUN_0223E1E0 = 0x0223E1E0;
FUN_0223E2AC = 0x0223E2AC;
FUN_0223E4A8 = 0x0223E4A8;
FUN_0223E4D4 = 0x0223E4D4;
FUN_0223E554 = 0x0223E554;
FUN_0223E6B8 = 0x0223E6B8;
FUN_0223E734 = 0x0223E734;
FUN_0223E7FC = 0x0223E7FC;
FUN_0223EB8C = 0x0223EB8C;
FUN_0223EF7C = 0x0223EF7C;
FUN_0223F4D8 = 0x0223F4D8;
FUN_0223F4F4 = 0x0223F4F4;
FUN_0223F8D8 = 0x0223F8D8;
FUN_0223FCE8 = 0x0223FCE8;
FUN_02240790 = 0x02240790;
FUN_022407CC = 0x022407CC;
FUN_022407DC = 0x022407DC;
FUN_022407F8 = 0x022407F8;
FUN_02240834 = 0x02240834;
FUN_02240844 = 0x02240844;
FUN_0224089C = 0x0224089C;
FUN_022408FC = 0x022408FC;
FUN_022411F4 = 0x022411F4;
FUN_02241230 = 0x02241230;
FUN_02241914 = 0x02241914;
FUN_02242A38 = 0x02242A38;
FUN_02242BE0 = 0x02242BE0;
FUN_0224312C = 0x0224312C;
FUN_022432E4 = 0x022432E4;
FUN_0224339C = 0x0224339C;
FUN_022433A8 = 0x022433A8;
FUN_022433B0 = 0x022433B0;
FUN_022433B8 = 0x022433B8;
FUN_022433F8 = 0x022433F8;
FUN_02243408 = 0x02243408;
FUN_02243428 = 0x02243428;
FUN_02243448 = 0x02243448;
FUN_0224345C = 0x0224345C;
FUN_022434AC = 0x022434AC;
FUN_022434BC = 0x022434BC;
FUN_022434D0 = 0x022434D0;
FUN_02243694 = 0x02243694;
FUN_022436C8 = 0x022436C8;
FUN_022436E8 = 0x022436E8;
FUN_02243780 = 0x02243780;
FUN_02243838 = 0x02243838;
FUN_022438DC = 0x022438DC;
FUN_022438E0 = 0x022438E0;
FUN_022438FC = 0x022438FC;
FUN_02243920 = 0x02243920;
FUN_022439F8 = 0x022439F8;
FUN_02243AD8 = 0x02243AD8;
FUN_02243BA8 = 0x02243BA8;
FUN_02243C5C = 0x02243C5C;
FUN_02243D3C = 0x02243D3C;
FUN_02243DA0 = 0x02243DA0;
FUN_02243DB8 = 0x02243DB8;
FUN_02243DC0 = 0x02243DC0;
FUN_02243DC4 = 0x02243DC4;
FUN_02243DD8 = 0x02243DD8;
FUN_02243DE0 = 0x02243DE0;
FUN_02243E34 = 0x02243E34;
FUN_02243E74 = 0x02243E74;
FUN_02243F18 = 0x02243F18;
FUN_02243F50 = 0x02243F50;
FUN_02243F9C = 0x02243F9C;
FUN_02244210 = 0x02244210;
FUN_02244558 = 0x02244558;
FUN_02244660 = 0x02244660;
FUN_022446BC = 0x022446BC;
FUN_022446E0 = 0x022446E0;
FUN_022446FC = 0x022446FC;
FUN_02244758 = 0x02244758;
FUN_02244770 = 0x02244770;
FUN_02244824 = 0x02244824;
FUN_0224484C = 0x0224484C;
FUN_02244D1C = 0x02244D1C;
FUN_02244D20 = 0x02244D20;
FUN_02244D3C = 0x02244D3C;
FUN_02244D40 = 0x02244D40;
FUN_02244D58 = 0x02244D58;
FUN_02244D98 = 0x02244D98;
FUN_02244DA0 = 0x02244DA0;
FUN_02244DB0 = 0x02244DB0;
FUN_02244DBC = 0x02244DBC;
FUN_02244DC4 = 0x02244DC4;
FUN_02244EF8 = 0x02244EF8;
FUN_02244F18 = 0x02244F18;
FUN_02244F24 = 0x02244F24;
FUN_02244F2C = 0x02244F2C;
FUN_02245088 = 0x02245088;
FUN_02245114 = 0x02245114;
FUN_02245190 = 0x02245190;
FUN_02245198 = 0x02245198;
FUN_022451F0 = 0x022451F0;
FUN_0224525C = 0x0224525C;
FUN_022452A4 = 0x022452A4;
FUN_02245324 = 0x02245324;
FUN_02245340 = 0x02245340;
FUN_02245358 = 0x02245358;
FUN_0224566C = 0x0224566C;
FUN_022456E8 = 0x022456E8;
FUN_02245844 = 0x02245844;
FUN_02245910 = 0x02245910;
FUN_02245F1C = 0x02245F1C;
FUN_02245F4C = 0x02245F4C;
FUN_02245FA0 = 0x02245FA0;
FUN_022461A4 = 0x022461A4;
FUN_022461B8 = 0x022461B8;
FUN_0224666C = 0x0224666C;
FUN_022466A0 = 0x022466A0;
FUN_022466AC = 0x022466AC;
FUN_02246F1C = 0x02246F1C;
FUN_02247294 = 0x02247294;
FUN_022472AC = 0x022472AC;
FUN_02247544 = 0x02247544;
FUN_02247614 = 0x02247614;
FUN_02247728 = 0x02247728;
FUN_02247808 = 0x02247808;
FUN_02247970 = 0x02247970;
FUN_02247A34 = 0x02247A34;
FUN_022483BC = 0x022483BC;
FUN_022483E0 = 0x022483E0;
FUN_022483EC = 0x022483EC;
FUN_02248724 = 0x02248724;
FUN_0224884C = 0x0224884C;
FUN_022488CC = 0x022488CC;
FUN_022488EC = 0x022488EC;
FUN_022488F4 = 0x022488F4;
FUN_022488FC = 0x022488FC;
FUN_0224891C = 0x0224891C;
FUN_02248B54 = 0x02248B54;
FUN_02248B58 = 0x02248B58;
FUN_02248B5C = 0x02248B5C;
FUN_02248B60 = 0x02248B60;
FUN_02248B6C = 0x02248B6C;
FUN_02248CC0 = 0x02248CC0;
FUN_02248CD0 = 0x02248CD0;
FUN_02248DF8 = 0x02248DF8;
FUN_02248F70 = 0x02248F70;
FUN_02248FE0 = 0x02248FE0;
FUN_02249038 = 0x02249038;
FUN_022490A0 = 0x022490A0;
FUN_022491FC = 0x022491FC;
FUN_022494C8 = 0x022494C8;
FUN_02249508 = 0x02249508;
FUN_02249668 = 0x02249668;
FUN_022497E8 = 0x022497E8;
FUN_02249E6C = 0x02249E6C;
FUN_02249E78 = 0x02249E78;
FUN_02249E84 = 0x02249E84;
FUN_02249E90 = 0x02249E90;
FUN_0224A310 = 0x0224A310;
FUN_0224A528 = 0x0224A528;
FUN_0224A7C8 = 0x0224A7C8;
FUN_0224ABAC = 0x0224ABAC;
FUN_0224B124 = 0x0224B124;
FUN_0224B2C4 = 0x0224B2C4;
FUN_0224B568 = 0x0224B568;
FUN_0224B818 = 0x0224B818;
FUN_0224B86C = 0x0224B86C;
FUN_0224B9E0 = 0x0224B9E0;
FUN_0224BBEC = 0x0224BBEC;
FUN_0224BD90 = 0x0224BD90;
FUN_0224C038 = 0x0224C038;
FUN_0224C27C = 0x0224C27C;
FUN_0224C520 = 0x0224C520;
FUN_0224C678 = 0x0224C678;
FUN_0224C6E8 = 0x0224C6E8;
FUN_0224C6F4 = 0x0224C6F4;
FUN_0224C700 = 0x0224C700;
FUN_0224C8C8 = 0x0224C8C8;
FUN_0224CA2C = 0x0224CA2C;
FUN_0224CA54 = 0x0224CA54;
FUN_0224CA58 = 0x0224CA58;
FUN_0224CA88 = 0x0224CA88;
FUN_0224CA94 = 0x0224CA94;
FUN_0224CAA0 = 0x0224CAA0;
FUN_0224CAB4 = 0x0224CAB4;
FUN_0224CB30 = 0x0224CB30;
FUN_0224CBB0 = 0x0224CBB0;
FUN_0224CC24 = 0x0224CC24;
FUN_0224CECC = 0x0224CECC;
FUN_0224D14C = 0x0224D14C;
FUN_0224D2E0 = 0x0224D2E0;
FUN_0224D3E8 = 0x0224D3E8;
FUN_0224D70C = 0x0224D70C;
FUN_0224D76C = 0x0224D76C;
FUN_0224D79C = 0x0224D79C;
FUN_0224DCB8 = 0x0224DCB8;
FUN_0224DD94 = 0x0224DD94;
FUN_0224DDB8 = 0x0224DDB8;
FUN_0224E554 = 0x0224E554;
FUN_0224E764 = 0x0224E764;
FUN_0224E7C4 = 0x0224E7C4;
FUN_0224F12C = 0x0224F12C;
FUN_02252534 = 0x02252534;
FUN_02252538 = 0x02252538;
FUN_022567E0 = 0x022567E0;
// ???
SDK_MAIN_ARENA_LO = 0x0225FFA0;
// EWRAM
SDK_SECTION_ARENA_EX_START = 0x023E0000;
// DTCM
gUnk027FFC20 = 0x027FFC20;
+175
View File
@@ -0,0 +1,175 @@
# Makefile to build Pokemon Diamond image
.PHONY: clean tidy all default patch_mwasmarm
# Try to include devkitarm if installed
TOOLCHAIN := $(DEVKITARM)
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
endif
### Default target ###
default: all
# If you are using WSL, it is recommended you build with NOWINE=1.
WSLENV ?= no
ifeq ($(WSLENV),)
NOWINE = 1
else
NOWINE = 0
endif
ifeq ($(OS),Windows_NT)
EXE := .exe
WINE :=
else
EXE :=
WINE := wine
endif
ifeq ($(NOWINE),1)
WINE :=
endif
################ Target Executable and Sources ###############
BUILD_DIR := build
TARGET := arm9
ROM := $(BUILD_DIR)/$(TARGET).bin
ELF := $(BUILD_DIR)/$(TARGET).elf
LD_SCRIPT := arm9.lcf
# Directories containing source files
SRC_DIRS := src
ASM_DIRS := asm data files
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
# Object files
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
$(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
##################### Compiler Options #######################
MWCCVERSION := 2.0/base
TOOLS_DIR = ../tools
CROSS := arm-none-eabi-
MWCCARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe
# Argh... due to EABI version shenanigans, we can't use GNU LD to link together
# MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we
# have to use mwldarm for now.
# TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the
# only dependency should be MWCCARM.
MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe
MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe
AS := $(WINE) $(MWASMARM)
CC := $(WINE) $(MWCCARM)
CPP := cpp -P
LD := $(WINE) $(MWLDARM)
AR := $(CROSS)ar
OBJDUMP := $(CROSS)objdump
OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o
ASFLAGS = -proc arm5te -i ..
CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include
LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
####################### Other Tools #########################
# DS TOOLS
SHA1SUM = sha1sum
JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc
GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx
MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE)
TOOLDIRS = $(filter-out $(TOOLS_DIR)/mwccarm,$(wildcard $(TOOLS_DIR)/*))
TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%)
TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE))
######################### Targets ###########################
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
# Build tools when building the rom
# Disable dependency scanning for clean/tidy/tools
ifeq (,$(filter-out all,$(MAKECMDGOALS)))
$(call infoshell, $(MAKE) tools patch_mwasmarm)
else
NODEP := 1
endif
.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm
MAKEFLAGS += --no-print-directory
all: $(ROM)
# @$(SHA1SUM) -c $(TARGET).sha1
clean: mostlyclean
make -C $(TOOLS_DIR)/mwasmarm_patcher clean
mostlyclean: tidy
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} +
tidy:
$(RM) -r $(BUILD_DIR)
tools: $(TOOLDIRS)
$(TOOLDIRS):
@$(MAKE) -C $@
$(MWASMARM): patch_mwasmarm
patch_mwasmarm:
$(MWASMARM_PATCHER) $(MWASMARM)
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
$(BUILD_DIR)/%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
$(BUILD_DIR)/%.o: %.s
$(AS) $(ASFLAGS) $< -o $@
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt
$(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $<
$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT)
$(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES)
$(ROM): $(ELF)
$(OBJCOPY) -O binary --gap-fill=0xFF $< $@
# Make sure build directory exists before compiling anything
DUMMY != mkdir -p $(ALL_DIRS)
%.4bpp: %.png
$(GFX) $< $@
%.gbapal: %.png
$(GFX) $< $@
%.gbapal: %.pal
$(GFX) $< $@
%.lz: %
$(GFX) $< $@
%.png: ;
%.pal: ;
$(BUILD_DIR)/data/icon.o: graphics/icon.4bpp graphics/icon.gbapal
### Debug Print ###
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
+84
View File
@@ -0,0 +1,84 @@
MEMORY {
.itcm (RWX) : ORIGIN=0x01FF8000, LENGTH=0
.text (RX) : ORIGIN=0x02000000, LENGTH=0
.data (R) : ORIGIN=0x20EC710, LENGTH=0
.autoload (R) : ORIGIN=0x02107700, LENGTH=0
.bss (RWX) : ORIGIN=0x02106FA0, LENGTH=0
.ewram (RWX) : ORIGIN=0x023E0000, LENGTH=0
.dtcm (RW) : ORIGIN=0x027E0000, LENGTH=0
.overlay (RX) : ORIGIN=0, LENGTH=0
}
SECTIONS {
#include "undefined_syms.txt"
.text : AT (0x0) {
secure.o (.text)
crt0.o (.text)
main.o (.text)
FUN_02000DF4.o (.text)
unk_02000E0C.o (.text)
string_util.o (.text)
unk_020023C0.o (.text)
filesystem.o (.text)
unk_02006864.o (.text)
script.o (.text)
unk_02038C78.o (.text)
scrcmd.o (.text)
unk_02046030.o (.text)
unk_0208AC14.o (.text)
unk_020AF030.o (.text)
/* SDK */
GX_arm9.o (.text)
OS_arm9.o (.text)
MI_arm9.o (.text)
SND_arm9.o (.text)
PXI_arm9.o (.text)
FS_arm9.o (.text)
DGT_arm9.o (.text)
CP_arm9.o (.text)
SPI_arm9.o (.text)
PM_arm9.o (.text)
RTC_arm9.o (.text)
CARD_arm9.o (.text)
WM_arm9.o (.text)
CTRDG_arm9.o (.text)
MATH_arm9.o (.text)
STD_arm9.o (.text)
} > .text
.data : AT (0xEC710) {
rom2.o (.data)
string_util.o (.data)
rom2_2.o (.data)
} > .data
SDK_AUTOLOAD_START = .;
SDK_STATIC_BSS_START = .;
SDK_STATIC_BSS_END = . + 0xd0540;
.itcm : AT (0x106FA0)
{
SDK_AUTOLOAD_ITCM_START = .;
arm9_itcm.o (.itcm)
SDK_AUTOLOAD_ITCM_END = .;
. = 0x01FF8720;
SDK_SECTION_ARENA_ITCM_START = .;
} > .itcm
.autoload : AT (0x107700) {
SDK_AUTOLOAD_LIST.o (.data)
unk_10b724.o (.text)
} > .autoload
.overlay : AT (0x107800) {
arm9overlay.o (.text)
} > .overlay
.dtcm : AT (0x1076A0) {
SDK_AUTOLOAD_DTCM_START = .;
OS_arm9.o (.dtcm)
SDK_AUTOLOAD_DTCM_END = .;
SDK_SECTION_ARENA_DTCM_START = 0x027E0080;
} > .dtcm
}
+1782
View File
File diff suppressed because it is too large Load Diff
+42
View File
@@ -0,0 +1,42 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
arm_func_start CP_SaveContext
CP_SaveContext: ; 0x020D3648
ldr r1, _020D3684 ; =0x04000290
stmdb sp!, {r4}
ldmia r1, {r2-r4,r12}
stmia r0!, {r2-r4,r12}
ldrh r12, [r1, #-0x10]
add r1, r1, #0x28
ldmia r1, {r2-r3}
stmia r0!, {r2-r3}
and r12, r12, #0x3
ldrh r2, [r1, #-0x8]
strh r12, [r0, #0x0]
and r2, r2, #0x1
strh r2, [r0, #0x2]
ldmia sp!, {r4}
bx lr
.balign 4
_020D3684: .word 0x04000290
arm_func_start CP_RestoreContext
CP_RestoreContext: ; 0x020D3688
stmdb sp!, {r4}
ldr r1, _020D36C0 ; =0x04000290
ldmia r0, {r2-r4,r12}
stmia r1, {r2-r4,r12}
ldrh r2, [r0, #0x18]
ldrh r3, [r0, #0x1a]
strh r2, [r1, #-0x10]
strh r3, [r1, #0x20]
add r0, r0, #0x10
add r1, r1, #0x28
ldmia r0, {r2-r3}
stmia r1, {r2-r3}
ldmia sp!, {r4}
bx lr
.balign 4
_020D36C0: .word 0x04000290
File diff suppressed because it is too large Load Diff
+1017
View File
File diff suppressed because it is too large Load Diff
+3011
View File
File diff suppressed because it is too large Load Diff
+5256
View File
File diff suppressed because it is too large Load Diff
+320
View File
@@ -0,0 +1,320 @@
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start MATH_CountPopulation
MATH_CountPopulation: ; 0x020DDC5C
ldr r1, _020DDC94 ; =0x55555555
ldr r2, _020DDC98 ; =0x33333333
and r1, r1, r0, lsr #0x1
sub r0, r0, r1
and r1, r0, r2
and r0, r2, r0, lsr #0x2
add r1, r1, r0
ldr r0, _020DDC9C ; =0x0F0F0F0F
add r1, r1, r1, lsr #0x4
and r0, r1, r0
add r0, r0, r0, lsr #0x8
add r0, r0, r0, lsr #0x10
and r0, r0, #0xff
bx lr
.balign 4
_020DDC94: .word 0x55555555
_020DDC98: .word 0x33333333
_020DDC9C: .word 0x0F0F0F0F
arm_func_start MATH_CalcSHA1
MATH_CalcSHA1: ; 0x020DDCA0
stmdb sp!, {r4-r6,lr}
sub sp, sp, #0x68
mov r6, r0
add r0, sp, #0x0
mov r5, r1
mov r4, r2
bl MATH_SHA1Init
_020DDCBC: ; 0x020DDCBC
add r0, sp, #0x0
mov r1, r5
mov r2, r4
bl MATH_SHA1Update
_020DDCCC: ; 0x020DDCCC
add r0, sp, #0x0
mov r1, r6
bl MATH_SHA1GetHash
add sp, sp, #0x68
ldmia sp!, {r4-r6,lr}
bx lr
arm_func_start MATH_CalcMD5
MATH_CalcMD5: ; 0x020DDCE4
stmdb sp!, {r4-r6,lr}
sub sp, sp, #0x58
mov r6, r0
add r0, sp, #0x0
mov r5, r1
mov r4, r2
bl DGT_Hash1Reset
_020DDD00: ; 0x020DDD00
add r0, sp, #0x0
mov r1, r5
mov r2, r4
bl DGT_Hash1SetSource
add r1, sp, #0x0
mov r0, r6
bl DGT_Hash1GetDigest_R
add sp, sp, #0x58
ldmia sp!, {r4-r6,lr}
bx lr
arm_func_start MATH_CalcCRC32
MATH_CalcCRC32: ; 0x020DDD28
stmdb sp!, {lr}
sub sp, sp, #0x4
mov lr, r1
mvn r12, #0x0
mov r3, r2
add r1, sp, #0x0
mov r2, lr
str r12, [sp, #0x0]
bl MATHi_CRC32UpdateRev
_020DDD4C: ; 0x020DDD4C
ldr r0, [sp, #0x0]
mvn r0, r0
add sp, sp, #0x4
ldmia sp!, {lr}
bx lr
arm_func_start MATH_CalcCRC16CCITT
MATH_CalcCRC16CCITT: ; 0x020DDD60
stmdb sp!, {lr}
sub sp, sp, #0x4
ldr ip, _020DDD94 ; =0x0000FFFF
mov lr, r1
mov r3, r2
add r1, sp, #0x0
mov r2, lr
strh r12, [sp, #0x0]
bl MATHi_CRC16Update
ldrh r0, [sp, #0x0]
add sp, sp, #0x4
ldmia sp!, {lr}
bx lr
.balign 4
_020DDD94: .word 0x0000FFFF
arm_func_start MATH_CalcCRC16
MATH_CalcCRC16: ; 0x020DDD98
stmdb sp!, {lr}
sub sp, sp, #0x4
mov lr, r1
mov r12, #0x0
mov r3, r2
add r1, sp, #0x0
mov r2, lr
strh r12, [sp, #0x0]
bl MATHi_CRC16UpdateRev
ldrh r0, [sp, #0x0]
add sp, sp, #0x4
ldmia sp!, {lr}
bx lr
arm_func_start MATH_CalcCRC8
MATH_CalcCRC8: ; 0x020DDDCC
stmdb sp!, {lr}
sub sp, sp, #0x4
mov lr, r1
mov r12, #0x0
mov r3, r2
add r1, sp, #0x0
mov r2, lr
strb r12, [sp, #0x0]
bl MATHi_CRC8Update
_020DDDF0: ; 0x020DDDF0
ldrb r0, [sp, #0x0]
add sp, sp, #0x4
ldmia sp!, {lr}
bx lr
arm_func_start MATHi_CRC32UpdateRev
MATHi_CRC32UpdateRev:
stmdb sp!, {r4,lr}
cmp r3, #0x0
ldr r4, [r1, #0x0]
mov lr, #0x0
bls _020DDE38
_020DDE14:
ldrb r12, [r2, #0x0]
add lr, lr, #0x1
cmp lr, r3
eor r12, r4, r12
and r12, r12, #0xff
ldr r12, [r0, r12, lsl #0x2]
add r2, r2, #0x1
eor r4, r12, r4, lsr #0x8
blo _020DDE14
_020DDE38:
str r4, [r1, #0x0]
ldmia sp!, {r4,lr}
bx lr
arm_func_start MATHi_CRC32InitTableRev
MATHi_CRC32InitTableRev: ; 0x020DDE44
stmdb sp!, {r4,lr}
mov lr, #0x0
mov r3, lr
_020DDE50:
mov r4, lr
mov r12, r3
_020DDE58:
ands r2, r4, #0x1
eorne r4, r1, r4, lsr #0x1
add r12, r12, #0x1
moveq r4, r4, lsr #0x1
cmp r12, #0x8
blo _020DDE58
str r4, [r0, lr, lsl #0x2]
add lr, lr, #0x1
cmp lr, #0x100
blo _020DDE50
ldmia sp!, {r4,lr}
bx lr
arm_func_start MATHi_CRC16UpdateRev
MATHi_CRC16UpdateRev: ; 0x020DDE88
stmdb sp!, {r4,lr}
cmp r3, #0x0
ldrh r4, [r1, #0x0]
mov lr, #0x0
bls _020DDEC4
_020DDE9C:
ldrb r12, [r2, #0x0]
add lr, lr, #0x1
cmp lr, r3
eor r12, r4, r12
and r12, r12, #0xff
mov r12, r12, lsl #0x1
ldrh r12, [r0, r12]
add r2, r2, #0x1
eor r4, r12, r4, lsr #0x8
blo _020DDE9C
_020DDEC4:
strh r4, [r1, #0x0]
ldmia sp!, {r4,lr}
bx lr
arm_func_start MATHi_CRC16Update
MATHi_CRC16Update: ; 0x020DDED0
stmdb sp!, {r4,lr}
cmp r3, #0x0
ldrh r4, [r1, #0x0]
mov lr, #0x0
bls _020DDF0C
_020DDEE4:
ldrb r12, [r2, #0x0]
add lr, lr, #0x1
cmp lr, r3
eor r12, r12, r4, lsr #0x8
and r12, r12, #0xff
mov r12, r12, lsl #0x1
ldrh r12, [r0, r12]
add r2, r2, #0x1
eor r4, r12, r4, lsl #0x8
blo _020DDEE4
_020DDF0C:
strh r4, [r1, #0x0]
ldmia sp!, {r4,lr}
bx lr
arm_func_start MATHi_CRC16InitTableRev
MATHi_CRC16InitTableRev: ; 0x020DDF18
stmdb sp!, {r4,lr}
mov lr, #0x0
mov r3, lr
_020DDF24:
mov r4, lr
mov r12, r3
_020DDF2C:
ands r2, r4, #0x1
eorne r4, r1, r4, lsr #0x1
add r12, r12, #0x1
moveq r4, r4, lsr #0x1
cmp r12, #0x8
blo _020DDF2C
mov r2, lr, lsl #0x1
add lr, lr, #0x1
strh r4, [r0, r2]
cmp lr, #0x100
blo _020DDF24
ldmia sp!, {r4,lr}
bx lr
arm_func_start MATHi_CRC16InitTable
MATHi_CRC16InitTable: ; 0x020DDF60
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
mov r4, #0x0
mov r12, r4
mov r3, r4
_020DDF74:
mov r5, r12
mov lr, r3
_020DDF7C:
ands r2, r5, #0x8000
eorne r5, r1, r5, lsl #0x1
add lr, lr, #0x1
moveq r5, r5, lsl #0x1
cmp lr, #0x8
blo _020DDF7C
mov r2, r4, lsl #0x1
add r4, r4, #0x1
strh r5, [r0, r2]
cmp r4, #0x100
add r12, r12, #0x100
blo _020DDF74
add sp, sp, #0x4
ldmia sp!, {r4-r5,lr}
bx lr
arm_func_start MATHi_CRC8Update
MATHi_CRC8Update:
stmdb sp!, {r4,lr}
cmp r3, #0x0
ldrb r4, [r1, #0x0]
mov lr, #0x0
bls _020DDFEC
_020DDFCC:
ldrb r12, [r2, #0x0]
add lr, lr, #0x1
cmp lr, r3
eor r12, r4, r12
and r12, r12, #0xff
add r2, r2, #0x1
ldrb r4, [r0, r12]
blo _020DDFCC
_020DDFEC:
strb r4, [r1, #0x0]
ldmia sp!, {r4,lr}
bx lr
arm_func_start MATHi_CRC8InitTable
MATHi_CRC8InitTable: ; 0x020DDFF8
stmdb sp!, {r4,lr}
mov lr, #0x0
mov r3, lr
_020DE004:
mov r4, lr
mov r12, r3
_020DE00C:
ands r2, r4, #0x80
eorne r4, r1, r4, lsl #0x1
add r12, r12, #0x1
moveq r4, r4, lsl #0x1
cmp r12, #0x8
blo _020DE00C
strb r4, [r0, lr]
add lr, lr, #0x1
cmp lr, #0x100
blo _020DE004
ldmia sp!, {r4,lr}
bx lr
+1082
View File
File diff suppressed because it is too large Load Diff
+4759
View File
File diff suppressed because it is too large Load Diff
+1125
View File
File diff suppressed because it is too large Load Diff
+266
View File
@@ -0,0 +1,266 @@
.include "asm/macros.inc"
.include "global.inc"
.section .text
arm_func_start PXI_Init
PXI_Init: ; 0x020CFBB0
ldr ip, _020CFBB8 ; =PXI_InitFifo
bx r12
.balign 4
_020CFBB8: .word PXI_InitFifo
arm_func_start PXIi_HandlerRecvFifoNotEmpty
PXIi_HandlerRecvFifoNotEmpty: ; 0x020CFBBC
stmdb sp!, {r4-r10,lr}
sub sp, sp, #0x8
ldr sl, _020CFCD4 ; =0x04000184
ldr r5, _020CFCD8 ; =0x021D5368
ldr r4, _020CFCDC ; =0x04000188
mov r7, #0x4100000
mov r6, #0x0
mvn r8, #0x3
mvn r9, #0x2
_020CFBE0:
ldrh r0, [r10, #0x0]
ands r0, r0, #0x4000
ldrneh r0, [r10, #0x0]
movne r1, r9
orrne r0, r0, #0xc000
strneh r0, [r10, #0x0]
bne _020CFC28
bl OS_DisableInterrupts
ldrh r1, [r10, #0x0]
ands r1, r1, #0x100
beq _020CFC18
bl OS_RestoreInterrupts
mov r1, r8
b _020CFC28
_020CFC18:
ldr r1, [r7, #0x0]
str r1, [sp, #0x0]
bl OS_RestoreInterrupts
mov r1, r6
_020CFC28:
cmp r1, r8
addeq sp, sp, #0x8
ldmeqia sp!, {r4-r10,lr}
bxeq lr
mvn r0, #0x2
cmp r1, r0
beq _020CFBE0
ldr r1, [sp, #0x0]
mov r0, r1, lsl #0x1b
movs r0, r0, lsr #0x1b
beq _020CFBE0
ldr r3, [r5, r0, lsl #0x2]
cmp r3, #0x0
beq _020CFC74
mov r2, r1, lsl #0x1a
mov r1, r1, lsr #0x6
mov r2, r2, lsr #0x1f
blx r3
b _020CFBE0
_020CFC74:
mov r0, r1, lsl #0x1a
movs r0, r0, lsr #0x1f
bne _020CFBE0
orr r0, r1, #0x20
str r0, [sp, #0x0]
ldrh r0, [r10, #0x0]
ands r0, r0, #0x4000
ldrneh r0, [r10, #0x0]
orrne r0, r0, #0xc000
strneh r0, [r10, #0x0]
bne _020CFBE0
bl OS_DisableInterrupts
ldrh r1, [r10, #0x0]
ands r1, r1, #0x2
beq _020CFCB8
bl OS_RestoreInterrupts
b _020CFBE0
_020CFCB8:
ldr r1, [sp, #0x0]
str r1, [r4, #0x0]
bl OS_RestoreInterrupts
b _020CFBE0
_020CFCC8:
add sp, sp, #0x8
ldmia sp!, {r4-r10, lr}
bx lr
_020CFCD4: .word 0x04000184
_020CFCD8: .word 0x021D5368
_020CFCDC: .word 0x04000188
arm_func_start PXI_SendWordByFifo
PXI_SendWordByFifo:
stmdb sp!, {lr}
sub sp, sp, #0x4
ldr r3, [sp, #0x0]
and r0, r0, #0x1f
bic r3, r3, #0x1f
orr r12, r3, r0
bic r3, r12, #0x20
and r0, r2, #0x1
orr r3, r3, r0, lsl #0x5
str r12, [sp, #0x0]
and r2, r3, #0x3f
bic r0, r1, #0xfc000000
orr r0, r2, r0, lsl #0x6
str r3, [sp, #0x0]
ldr r2, _020CFD8C ; =0x04000184
str r0, [sp, #0x0]
ldrh r0, [r2, #0x0]
ands r0, r0, #0x4000
ldrneh r1, [r2, #0x0]
addne sp, sp, #0x4
mvnne r0, #0x0
orrne r1, r1, #0xc000
strneh r1, [r2, #0x0]
ldmneia sp!, {lr}
bxne lr
bl OS_DisableInterrupts
ldr r1, _020CFD8C ; =0x04000184
ldrh r1, [r1, #0x0]
ands r1, r1, #0x2
beq _020CFD6C
bl OS_RestoreInterrupts
add sp, sp, #0x4
mvn r0, #0x1
ldmia sp!, {lr}
bx lr
_020CFD6C:
ldr r2, [sp, #0x0]
ldr r1, _020CFD90 ; =0x04000188
str r2, [r1, #0x0]
bl OS_RestoreInterrupts
_020CFD7C:
mov r0, #0x0
add sp, sp, #0x4
ldmfd sp!, {lr}
bx lr
_020CFD8C: .word 0x04000184
_020CFD90: .word 0x04000188
arm_func_start PXI_IsCallbackReady
PXI_IsCallbackReady:
ldr r2, _020CFDB8 ; =0x027FFC00
mov r3, #0x1
add r1, r2, r1, lsl #0x2
mov r2, r3, lsl r0
ldr r0, [r1, #0x388]
ands r0, r2, r0
moveq r3, #0x0
mov r0, r3
bx lr
.balign 4
_020CFDB8: .word 0x027FFC00
arm_func_start PXI_SetFifoRecvCallback
PXI_SetFifoRecvCallback: ; 0x020CFDBC
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
mov r4, r0
mov r5, r1
bl OS_DisableInterrupts
ldr r1, _020CFE20 ; =0x021D5368
cmp r5, #0x0
str r5, [r1, r4, lsl #0x2]
beq _020CFDF8
ldr r3, _020CFE24 ; =0x027FFC00
mov r1, #0x1
ldr r2, [r3, #0x388]
orr r1, r2, r1, lsl r4
str r1, [r3, #0x388]
b _020CFE10
_020CFDF8:
ldr r3, _020CFE24 ; =0x027FFC00
mov r1, #0x1
mvn r1, r1, lsl r4
ldr r2, [r3, #0x388]
and r1, r2, r1
str r1, [r3, #0x388]
_020CFE10:
bl OS_RestoreInterrupts
add sp, sp, #0x4
ldmia sp!, {r4-r5,lr}
bx lr
.balign 4
_020CFE20: .word 0x021D5368
_020CFE24: .word 0x027FFC00
arm_func_start PXI_InitFifo
PXI_InitFifo: ; 0x020CFE28
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
bl OS_DisableInterrupts
ldr r1, _020CFF18 ; =0x021D5364
mov r4, r0
ldrh r0, [r1, #0x0]
cmp r0, #0x0
bne _020CFF04
mov r2, #0x1
ldr r0, _020CFF1C ; =0x027FFC00
strh r2, [r1, #0x0]
mov r2, #0x0
str r2, [r0, #0x388]
ldr r0, _020CFF20 ; =0x021D5368
mov r1, r2
_020CFE64:
str r1, [r0, r2, lsl #0x2]
add r2, r2, #0x1
cmp r2, #0x20
blt _020CFE64
ldr r2, _020CFF24 ; =0x0000C408
ldr r1, _020CFF28 ; =0x04000184
mov r0, #0x40000
strh r2, [r1, #0x0]
bl OS_ResetRequestIrqMask
ldr r1, _020CFF2C ; =PXIi_HandlerRecvFifoNotEmpty
mov r0, #0x40000
bl OS_SetIrqFunction
mov r0, #0x40000
bl OS_EnableIrqMask
mov r12, #0x0
ldr r3, _020CFF30 ; =0x04000180
mov r1, r12
mov r2, #0x3e8
_020CFEAC:
ldrh r0, [r3, #0x0]
ands lr, r0, #0xf
mov r0, lr, lsl #0x8
strh r0, [r3, #0x0]
bne _020CFEC8
cmp r12, #0x4
bgt _020CFF04
_020CFEC8:
ldrh r0, [r3, #0x0]
mov r5, r2
and r0, r0, #0xf
cmp r0, lr
bne _020CFEFC
_020CFEDC:
cmp r5, #0x0
movle r12, r1
ble _020CFEFC
ldrh r0, [r3, #0x0]
sub r5, r5, #0x1
and r0, r0, #0xf
cmp r0, lr
beq _020CFEDC
_020CFEFC:
add r12, r12, #0x1
b _020CFEAC
_020CFF04:
mov r0, r4
bl OS_RestoreInterrupts
add sp, sp, #0x4
ldmia sp!, {r4-r5,lr}
bx lr
.balign 4
_020CFF18: .word 0x021D5364
_020CFF1C: .word 0x027FFC00
_020CFF20: .word 0x021D5368
_020CFF24: .word 0x0000C408
_020CFF28: .word 0x04000184
_020CFF2C: .word PXIi_HandlerRecvFifoNotEmpty
_020CFF30: .word 0x04000180
+1028
View File
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
.include "asm/macros.inc"
.include "global.inc"
.section .data
.global SDK_AUTOLOAD_LIST
SDK_AUTOLOAD_LIST: ; 0x02107700
.word SDK_AUTOLOAD_ITCM_START
.word 0x00000700
.word 0x00000000
.word SDK_AUTOLOAD_DTCM_START
.word 0x00000060
.word 0x00000020
.word 0x02400000
.word 0x00000000
.word 0x00000000
.global SDK_AUTOLOAD_LIST_END
SDK_AUTOLOAD_LIST_END:
+1655
View File
File diff suppressed because it is too large Load Diff
+1487
View File
File diff suppressed because it is too large Load Diff
+17117
View File
File diff suppressed because it is too large Load Diff
+3744
View File
File diff suppressed because it is too large Load Diff
+505
View File
@@ -0,0 +1,505 @@
.include "asm/macros.inc"
.include "global.inc"
.section .itcm
; OS
arm_func_start OS_IrqHandler
OS_IrqHandler: ; 0x01FF8000
stmfd sp!, {lr}
mov ip, #0x04000000
add ip, ip, #0x210
ldr r1, [ip, #-8]
cmp r1, #0
ldmeqfd sp!, {pc}
ldmia ip, {r1, r2}
ands r1, r1, r2
ldmeqfd sp!, {pc}
mov r3, #0x80000000
_01FF8028:
clz r0, r1
bics r1, r1, r3, lsr r0
bne _01FF8028
mov r1, r3, lsr r0
str r1, [ip, #0x4]
rsbs r0, r0, #0x1f
ldr r1, _01FF8050 ; =0x027E0000
ldr r0, [r1, r0, lsl #2]
ldr lr, _01FF8054 ; =0x01FF70B8
bx r0
_01FF8050: .word OS_IRQTable
_01FF8054: .word OS_IrqHandler_ThreadSwitch
arm_func_start OS_IrqHandler_ThreadSwitch
OS_IrqHandler_ThreadSwitch: ; 01FF8058
ldr ip, _01FF81A4
mov r3, #0x0
ldr ip, [ip]
mov r2, #0x1
cmp ip, #0x0
beq _01FF80A8
_01FF8070:
str r2, [ip, #0x64]
str r3, [ip, #0x78]
str r3, [ip, #0x7c]
ldr r0, [ip, #0x80]
str r3, [ip, #0x80]
mov ip, r0
cmp ip, #0x0
bne _01FF8070
ldr ip, _01FF81A4
str r3, [ip]
str r3, [ip, #0x4]
ldr ip, _01FF81A8
mov r1, #0x1
strh r1, [ip]
_01FF80A8:
ldr ip, _01FF81A8
ldrh r1, [ip]
cmp r1, #0x0
ldreq pc, [sp], #0x4
mov r1, #0x0
strh r1, [ip]
mov r3, #0xd2
msr CPSR_c, r3
add r2, ip, #0x8
ldr r1, [r2]
_01FF80D0:
cmp r1, #0x0
ldrneh r0, [r1, #0x64]
cmpne r0, #0x1
ldrne r1, [r1, #0x68]
bne _01FF80D0
cmp r1, #0x0
bne _01FF80F8
_01FF80EC:
mov r3, #0x92
msr CPSR_c, r3
ldr pc, [sp], #0x4
_01FF80F8:
ldr r0, [ip, #0x4]
cmp r1, r0
beq _01FF80EC
ldr r3, [ip, #0xC]
cmp r3, #0x0
beq _01FF8120
stmdb sp!, {r0, r1, ip}
mov lr, pc
bx r3
ldmia sp!, {r0, r1, ip}
_01FF8120:
str r1, [ip, #0x4]
mrs r2, SPSR
str r2, [r0, #0x0]!
stmdb sp!, {r0, r1}
add r0, r0, #0x0
add r0, r0, #0x48
ldr r1, _01FF81AC
blx r1
ldmia sp!, {r0, r1}
ldmib sp!, {r2, r3}
stmib r0!, {r2, r3}
ldmib sp!, {r2, r3, ip, lr}
stmib r0!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^
stmib r0!, {lr}
mov r3, #0xd3
msr CPSR_c, r3
stmib r0!, {sp}
stmfd sp!, {r1}
add r0, r1, #0x0
add r0, r0, #0x48
ldr r1, _01FF81B0
blx r1
ldmfd sp!, {r1}
ldr sp, [r1, #0x44]
mov r3, #0xd2
msr CPSR_c, r3
ldr r2, [r1, #0x0]!
msr SPSR_fc, r2
ldr lr, [r1, #0x40]
ldmib r1!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^
nop
stmda sp!, {r0, r1, r2, r3, ip, lr}
ldmfd sp!, {pc}
_01FF81A4: .word OSi_IrqThreadQueue
_01FF81A8: .word OSi_ThreadInfo
_01FF81AC: .word CP_SaveContext
_01FF81B0: .word CP_RestoreContext
.section .itcm
arm_func_start OSi_DoBoot
OSi_DoBoot: ; 0x01FF81B4
mov ip, #0x04000000
str ip, [ip, #0x208]
ldr r1, _01FF8260
add r1, r1, #0x3fc0
add r1, r1, #0x3c
mov r0, #0x0
str r0, [r1]
ldr r1, _01FF8264
_01FF81D4:
ldrh r0, [r1]
and r0, r0, #0xf
cmp r0, #0x1
bne _01FF81D4
mov r0, #0x100
strh r0, [r1]
mov r0, #0x0
ldr r3, _01FF8268
ldr r4, [r3]
ldr r1, _01FF826C
mov r2, #0x80
bl OSi_CpuClear32
str r4, [r3]
ldr r1, _01FF8270
mov r2, #0x18
bl OSi_CpuClear32
ldr r1, _01FF8274
strh r0, [r1]
ldr r1, _01FF8278
mov r2, #0x64
bl OSi_CpuClear32
ldr r1, _01FF8264
_01FF822C:
ldrh r0, [r1]
and r0, r0, #0xf
cmp r0, #0x1
beq _01FF822C
mov r0, #0x0
strh r0, [r1]
ldr r3, _01FF827C
ldr ip, [r3, #0x24]
mov lr, ip
ldr fp, _01FF8270
ldmia fp, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl}
mov fp, #0x0
bx ip
_01FF8260: .word SDK_AUTOLOAD_DTCM_START
_01FF8264: .word 0x04000180
_01FF8268: .word 0x027FFD9C
_01FF826C: .word 0x027FFD80
_01FF8270: .word 0x027FFF80
_01FF8274: .word 0x027FFF98
_01FF8278: .word 0x027FFF9C
_01FF827C: .word 0x027FFE00
arm_func_start OSi_CpuClear32
OSi_CpuClear32: ; 01FF8280
add ip, r1, r2
_01FF8284:
cmp r1, ip
stmltia r1!, {r0}
blt _01FF8284
bx lr
arm_func_start OSi_ReadCardRom32
OSi_ReadCardRom32: ; 01FF8294
stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #4
ldr r4, _01FF8390
ldr r3, _01FF8394
ldr r4, [r4]
and r3, r0, r3
bic r4, r4, #117440512 ; 0x7000000
orr sl, r4, #-1593835520 ; 0xa1000000
rsb r9, r3, #0
ldr r4, _01FF8398
_01FF82BC:
ldr r3, [r4]
ands r3, r3, #-2147483648 ; 0x80000000
bne _01FF82BC
ldr r3, _01FF839C
mov r4, #128 ; 0x80
cmp r9, r2
addge sp, sp, #4
strb r4, [r3]
add r0, r0, r9
ldmgeia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
bxge lr
ldr r3, _01FF83A0
ldr ip, _01FF8398
ldr r5, _01FF83A4
ldr r4, _01FF83A8
mov r7, r0, lsr #8
mov r6, #183 ; 0xb7
mov lr, #0
_01FF8304:
strb r6, [r5]
mov r8, r0, lsr #24
strb r8, [r4]
ldr r8, _01FF83AC
mov fp, r0, lsr #16
strb fp, [r8]
ldr r8, _01FF83B0
strb r7, [r8]
ldr r8, _01FF83B4
strb r0, [r8]
ldr r8, _01FF83B8
strb lr, [r8]
ldr r8, _01FF83BC
strb lr, [r8]
ldr r8, _01FF83C0
strb lr, [r8]
str sl, [ip]
_01FF8348:
ldr r8, [ip]
ands fp, r8, #8388608 ; 0x800000
beq _01FF836C
cmp r9, #0
ldr fp, [r3]
blt _01FF8368
cmp r9, r2
strlt fp, [r1, r9]
_01FF8368:
add r9, r9, #4
_01FF836C:
ands r8, r8, #-2147483648 ; 0x80000000
bne _01FF8348
cmp r9, r2
add r7, r7, #2
add r0, r0, #512 ; 0x200
blt _01FF8304
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
bx lr
_01FF8390: .word 0x027FFE60
_01FF8394: .word 0x000001FF
_01FF8398: .word 0x040001A4
_01FF839C: .word 0x040001A1
_01FF83A0: .word 0x04100010
_01FF83A4: .word 0x040001A8
_01FF83A8: .word 0x040001A9
_01FF83AC: .word 0x040001AA
_01FF83B0: .word 0x040001AB
_01FF83B4: .word 0x040001AC
_01FF83B8: .word 0x040001AD
_01FF83BC: .word 0x040001AE
_01FF83C0: .word 0x040001AF
arm_func_start OSi_ReloadRomData
OSi_ReloadRomData: ; 0x01FF83C4
stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #4
ldr r0, _01FF8484
ldr sl, [r0]
cmp sl, #32768 ; 0x8000
bcc _01FF83EC
ldr r1, _01FF8488
mov r0, sl
mov r2, #352 ; 0x160
bl OSi_ReadCardRom32
_01FF83EC:
ldr r5, _01FF848C
ldr r4, _01FF8490
ldr r3, _01FF8494
ldr r2, _01FF8498
ldr r1, _01FF849C
ldr r9, [r5]
ldr r0, _01FF84A0
ldr r8, [r4]
ldr r7, [r3]
ldr r6, [r2]
ldr r5, [r1]
ldr r4, [r0]
bl OS_DisableInterrupts ; 0x1e02b0
mov fp, r0
bl DC_StoreAll ; 0x1df064
bl DC_InvalidateAll ; 0x1df058
mov r0, fp
bl OS_RestoreInterrupts ; 0x1e02c4
bl IC_InvalidateAll ; 0x1df12c
bl DC_WaitWriteBufferEmpty ; 0x1df120
add r9, r9, sl
cmp r9, #32768 ; 0x8000
rsbcc r0, r9, #32768 ; 0x8000
addcc r8, r8, r0
subcc r7, r7, r0
movcc r9, #32768 ; 0x8000
add r6, r6, sl
mov r0, r9
mov r1, r8
mov r2, r7
bl OSi_ReadCardRom32 ; 0x10b234
mov r0, r6
mov r1, r5
mov r2, r4
bl OSi_ReadCardRom32
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
bx lr
_01FF8484: .word 0x027FFC2C
_01FF8488: .word 0x027FFE00
_01FF848C: .word 0x027FFE20
_01FF8490: .word 0x027FFE28
_01FF8494: .word 0x027FFE2C
_01FF8498: .word 0x027FFE30
_01FF849C: .word 0x027FFE38
_01FF84A0: .word 0x027FFE3C
arm_func_start OSi_DoResetSystem
OSi_DoResetSystem: ; 0x01FF84A4
stmfd sp!, {lr}
sub sp, sp, #4
ldr r0, _01FF84DC
_01FF84B0:
ldrh r1, [r0]
cmp r1, #0
beq _01FF84B0
ldr r0, _01FF84E0
mov r1, #0
strh r1, [r0]
bl OSi_ReloadRomData
bl OSi_DoBoot
add sp, sp, #4
ldmfd sp!, {lr}
bx lr
_01FF84DC: .word OSi_IsResetOccurred
_01FF84E0: .word 0x04000208
; MI
arm_func_start MIi_DmaSetParams_wait_noInt
MIi_DmaSetParams_wait_noInt: ; 0x01FF84E4
stmdb sp!, {r4, lr}
mov ip, #12
mul r4, r0, ip
add ip, r4, #67108864 ; 0x4000000
ldr lr, [pc, #64] ; 0x10b4dc
str r1, [ip, #176] ; 0xb0
add r4, r4, lr
str r2, [r4, #4]
str r3, [r4, #8]
ldr r1, [lr]
cmp r0, #0
ldr r0, [lr]
moveq r1, #0
streq r1, [r4]
streq r1, [r4, #4]
ldreq r0, _01FF8540
ldr r1, _01FF853C
streq r0, [r4, #8]
ldr r0, [r1]
ldr r0, [r1]
ldmia sp!, {r4, lr}
bx lr
_01FF853C: .word 0x040000B0
_01FF8540: .word 0x81400001
arm_func_start MIi_DmaSetParams_noInt
MIi_DmaSetParams_noInt: ; 01FF8544
stmfd sp!, {lr}
sub sp, sp, #4
mov ip, #12
mul lr, r0, ip
ldr r0, _01FF8578
add ip, lr, #67108864 ; 0x4000000
str r1, [ip, #176] ; 0xb0
add r0, lr, r0
str r2, [r0, #4]
str r3, [r0, #8]
add sp, sp, #4
ldmfd sp!, {lr}
bx lr
_01FF8578: .word 0x040000B0
arm_func_start MIi_DmaSetParams_wait
MIi_DmaSetParams_wait: ; 01FF857C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl OS_DisableInterrupts
mov r1, #12
mul r3, r7, r1
add r1, r3, #67108864 ; 0x4000000
ldr r2, _01FF85E8
str r6, [r1, #176] ; 0xb0
add r3, r3, r2
str r5, [r3, #4]
str r4, [r3, #8]
ldr r1, [r2]
cmp r7, #0
ldr r1, [r2]
moveq r2, #0
streq r2, [r3]
ldreq r1, _01FF85EC
streq r2, [r3, #4]
streq r1, [r3, #8]
bl OS_RestoreInterrupts
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_01FF85E8: .word 0x040000B0
_01FF85EC: .word 0x81400001
arm_func_start MIi_DmaSetParams
MIi_DmaSetParams: ; 01FF85F0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
bl OS_DisableInterrupts
mov r1, #12
mul r3, r7, r1
ldr r1, _01FF863C
add r2, r3, #67108864 ; 0x4000000
str r6, [r2, #176] ; 0xb0
add r1, r3, r1
str r5, [r1, #4]
str r4, [r1, #8]
bl OS_RestoreInterrupts
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_01FF863C: .word 0x040000B0
arm_func_start MI_SendGXCommand
MI_SendGXCommand: ; 0x01FF8640
stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #4
movs r8, r2
mov sl, r0
mov r9, r1
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
bxeq lr
mov r3, #0
bl MIi_CheckDma0SourceAddress
mov r0, #3
mul r1, sl, r0
ldr r0, [pc, #104] ; 0x10b680
add r1, r1, #2
add r7, r0, r1, lsl #2
_01FF867C:
ldr r0, [r7]
ands r0, r0, #-2147483648 ; 0x80000000
bne _01FF867C
cmp r8, #0
beq _01FF86C8
ldr fp, [pc, #76] ; 0x10b684
mov r5, #472 ; 0x1d8
ldr r4, [pc, #72] ; 0x10b688
_01FF869C:
cmp r8, #472 ; 0x1d8
movhi r6, r5
movls r6, r8
mov r0, sl
mov r1, r9
mov r2, fp
orr r3, r4, r6, lsr #2
bl MIi_DmaSetParams
subs r8, r8, r6
add r9, r9, r6
bne _01FF869C
_01FF86C8:
ldr r0, [r7]
ands r0, r0, #-2147483648 ; 0x80000000
bne _01FF86C8
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
bx lr
_01FF86E0: .word 0x040000B0
_01FF86E4: .word 0x04000400
_01FF86E8: .word 0x84400000
+4 -2
View File
@@ -2,7 +2,6 @@
.include "global.inc"
.text
.set SDK_IRQ_STACKSIZE, 0x400
arm_func_start _start
_start: ; 0x02000800
@@ -264,7 +263,10 @@ _start_ModuleParams:
.word SDK_STATIC_BSS_END
.word 0x00000000
.byte 0x31, 0x75, 0x02, 0x03, 0x21, 0x06, 0xC0, 0xDE, 0xDE, 0xC0, 0x06, 0x21
.ascii "1u" ; 31 75
.byte 0x02, 0x03
.word 0xdec00621
.byte 0xde, 0xc0, 0x06, 0x21
# strings
.balign 4
+1
View File
@@ -0,0 +1 @@
.include "asm/macros/function.inc"
+24
View File
@@ -0,0 +1,24 @@
.macro arm_func_start name
.balign 4, 0
.global \name
.arm
.endm
.macro arm_func_end name
.size \name, .-\name
.endm
.macro thumb_func_start name
.balign 4, 0
.global \name
.thumb
.endm
.macro non_word_aligned_thumb_func_start name
.global \name
.thumb
.endm
.macro thumb_func_end name
.size \name, .-\name
.endm
+7
View File
@@ -0,0 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
.data
.incbin "baserom.nds", 0xF0710, 0x3F8 ; this does not seem to be code
-28
View File
@@ -732,31 +732,3 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203AFA4
.incbin "baserom.nds", 0xF80A0, 0x12F00
; Used in autoload
.global SDK_AUTOLOAD_START
.global SDK_STATIC_BSS_START
SDK_AUTOLOAD_START:
SDK_STATIC_BSS_START: ; 0x02106FA0
.incbin "baserom.nds", 0x10AFA0, 0x700
.global UNK_021076A0
UNK_021076A0:
.incbin "baserom.nds", 0x10B6A0, 0x60
.global SDK_AUTOLOAD_LIST
SDK_AUTOLOAD_LIST: ; 0x02107700
.word 0x01FF8000
.word 0x00000700
.word 0x00000000
.word 0x027e0000
.word 0x00000060
.word 0x00000020
.word 0x02400000
.word 0x00000000
.word 0x00000000
.global SDK_AUTOLOAD_LIST_END
SDK_AUTOLOAD_LIST_END:
+15 -15
View File
@@ -3669,56 +3669,56 @@ FUN_0203B640: ; 0x0203B640
cmp r7, #0x0
beq _0203B696
lsl r0, r7, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _0203B6A4
_0203B696:
lsl r0, r7, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_0203B6A4:
blx FUN_020EB4C0
blx _ffix
str r0, [sp, #0x0]
cmp r6, #0x0
beq _0203B6C0
lsl r0, r6, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _0203B6CE
_0203B6C0:
lsl r0, r6, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_0203B6CE:
blx FUN_020EB4C0
blx _ffix
str r0, [sp, #0x4]
cmp r4, #0x0
beq _0203B6EA
lsl r0, r4, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _0203B6F8
_0203B6EA:
lsl r0, r4, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_0203B6F8:
blx FUN_020EB4C0
blx _ffix
str r0, [sp, #0x8]
add r0, r5, #0x0
add r0, #0x80
+11 -3
View File
@@ -11,10 +11,18 @@ FUN_0200019E: ; 0x0200019E
bx lr
thumb_func_end FUN_0200019E
.incbin "baserom.nds", 0x41A2, 0x450
.incbin "baserom.nds", 0x41A2, 0x15C
non_word_aligned_thumb_func_start FUN_020005F2
FUN_020005F2:
non_word_aligned_thumb_func_start FUN_020002FE
FUN_020002FE: ; 0x020002FE
swi 11
bx lr
.incbin "baserom.nds", 0x4302, 0x2F0
non_word_aligned_thumb_func_start SVC_WaitByLoop
SVC_WaitByLoop:
swi 3
bx lr
@@ -106,7 +106,7 @@ FUN_02000EC8: ; 0x02000EC8
bl FUN_02033678
cmp r0, #0x0
beq _02000EE2
blx FUN_020D6DAC
blx CARD_TryWaitBackupAsync
cmp r0, #0x1
bne _02000EE2
add r0, r4, #0x0
@@ -256,7 +256,7 @@ FUN_02000FE8: ; 0x02000FE8
cmp r0, #0x0
bne _02001064
bl FUN_0201CE04
blx FUN_020DB7A8
blx CTRDG_IsPulledOut
cmp r0, #0x1
bne _02001014
ldr r0, _020010A4 ; =0x02106FA0
@@ -286,7 +286,7 @@ _02001032:
blx CARD_IsPulledOut
cmp r0, #0x0
beq _02001048
blx FUN_020D5180
blx PM_ForceToPowerOff
b _0200105C
_02001048:
ldrh r1, [r4, #0x0]
@@ -312,7 +312,7 @@ _02001064:
bne _02001096
mov r0, #0x2
mov r1, #0x0
blx FUN_020D526C
blx PM_SetBackLight
add sp, #0x8
pop {r3-r7, pc}
_0200107E:
@@ -325,7 +325,7 @@ _0200107E:
ldr r1, _020010A4 ; =0x02106FA0
mov r0, #0x2
ldr r1, [r1, #0x0]
blx FUN_020D526C
blx PM_SetBackLight
_02001096:
add sp, #0x8
pop {r3-r7, pc}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -224,7 +224,7 @@ _02038E32:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r0, _02038E44 ; =0x0003643F
str r0, [r4, #0x0]
add r0, r4, #0x0
@@ -1187,7 +1187,7 @@ FUN_02039564: ; 0x02039564
bl FUN_02046380
mov r1, #0x0
mov r2, #0x40
blx FUN_020DF4A4
blx Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -1540,14 +1540,14 @@ _020397EC:
sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
blx FUN_020DE3F0
blx abs
strh r0, [r5, #0x0]
ldr r1, [r4, #0x8]
ldr r0, [sp, #0x14]
sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
blx FUN_020DE3F0
blx abs
strh r0, [r5, #0x2]
add r5, r5, #0x6
add r6, r6, #0x1
+159 -159
View File
@@ -298,13 +298,13 @@ FUN_02046294: ; 0x02046294
thumb_func_start FUN_0204629C
FUN_0204629C: ; 0x0204629C
ldr r3, _020462A8 ; =FUN_020DF4A4
ldr r3, _020462A8 ; =Call_FillMemWithValue
mov r2, #0xeb
mov r1, #0x0
lsl r2, r2, #0x2
bx r3
nop
_020462A8: .word FUN_020DF4A4
_020462A8: .word Call_FillMemWithValue
thumb_func_start FUN_020462AC
FUN_020462AC: ; 0x020462AC
@@ -4191,7 +4191,7 @@ _0204817A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x0]
str r5, [r4, #0x4]
@@ -10279,7 +10279,7 @@ FUN_0204B130: ; 0x0204B130
add r6, r0, #0x0
add r5, r1, #0x0
add r0, r2, #0x0
blx FUN_020D660C
blx RTC_ConvertDateToDay
ldr r1, [r5, #0x20]
add r4, r0, #0x0
cmp r4, r1
@@ -10306,13 +10306,13 @@ FUN_0204B158: ; 0x0204B158
add r5, r1, #0x0
add r0, r4, #0x0
add r1, r6, #0x0
blx FUN_020D6578
blx RTC_ConvertDateTimeToSecond
str r1, [sp, #0x8]
add r1, r5, #0x0
add r7, r0, #0x0
add r0, r5, #0x4
add r1, #0x14
blx FUN_020D6578
blx RTC_ConvertDateTimeToSecond
add r2, r1, #0x0
sub r1, r7, r0
ldr r1, [sp, #0x8]
@@ -10337,7 +10337,7 @@ _0204B19C:
mov r2, #0x3c
mov r3, #0x0
str r1, [sp, #0x8]
blx FUN_020EBA38
blx _ll_sdiv
add r7, r0, #0x0
cmp r7, #0x0
ble _0204B1D8
@@ -10505,7 +10505,7 @@ FUN_0204B2F0: ; 0x0204B2F0
ldr r3, [r3, #0x28]
add r0, r5, #0x0
add r1, r4, #0x0
blx FUN_020D6320
blx RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B30C
@@ -10520,7 +10520,7 @@ FUN_0204B30C: ; 0x0204B30C
ldr r3, [r3, #0x30]
add r0, r5, #0x0
add r1, r4, #0x0
blx FUN_020D6320
blx RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B328
@@ -10700,7 +10700,7 @@ FUN_0204B450: ; 0x0204B450
ldr r0, [r3, #0x0]
str r0, [r2, #0x0]
add r0, sp, #0x0
blx FUN_020C3F14
blx MTX_Identity33_
ldr r0, [r5, #0x4]
add r1, r4, #0x0
ldr r0, [r0, #0x18]
@@ -16246,10 +16246,10 @@ _0204DE98:
b _0204DEEC
_0204DEC2:
ldr r0, [sp, #0x10]
blx FUN_020DE3F0
blx abs
add r6, r0, #0x0
add r0, r7, #0x0
blx FUN_020DE3F0
blx abs
cmp r6, r0
ble _0204DEE2
ldr r0, [sp, #0x10]
@@ -16269,9 +16269,9 @@ _0204DEEA:
mov r6, #0x80
_0204DEEC:
add r0, r7, #0x0
blx FUN_020DE3F0
blx abs
ldr r0, [sp, #0x10]
blx FUN_020DE3F0
blx abs
ldrb r3, [r5, #0x5]
add r0, r4, #0x0
add r1, r6, #0x0
@@ -31177,40 +31177,40 @@ FUN_02054F50: ; 0x02054F50
cmp r0, #0x0
beq _02054F8A
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _02054F98
_02054F8A:
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_02054F98:
blx FUN_020EB4C0
blx _ffix
str r0, [r4, #0x4]
add r0, sp, #0x8
ldrh r0, [r0, #0x14]
cmp r0, #0x0
beq _02054FB8
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _02054FC6
_02054FB8:
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_02054FC6:
blx FUN_020EB4C0
blx _ffix
str r0, [r4, #0x8]
strh r6, [r4, #0xc]
strh r7, [r4, #0x10]
@@ -31430,7 +31430,7 @@ _0205518E:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x3c
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
@@ -36030,7 +36030,7 @@ _0205745A:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r0, #0x4a
lsl r0, r0, #0x2
add r6, r4, #0x0
@@ -36045,7 +36045,7 @@ _0205747E:
add r0, r4, #0x0
mov r1, #0x0
add r2, r6, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020583B4
@@ -36489,7 +36489,7 @@ _02057846:
add r0, r5, #0x0
mov r1, #0x0
mul r2, r4
blx FUN_020DF4A4
blx Call_FillMemWithValue
_02057856:
add sp, #0x8
pop {r3-r7, pc}
@@ -36889,7 +36889,7 @@ _02057BD4:
ldr r2, [sp, #0x4]
add r0, r6, #0x0
add r1, r4, #0x0
blx FUN_020DF438
blx memcpy
mov r0, #0xb
mov r1, #0x14
bl FUN_020169D8
@@ -37306,13 +37306,13 @@ _02057F7C: .word 0x021F9080
thumb_func_start FUN_02057F80
FUN_02057F80: ; 0x02057F80
ldr r3, _02057F8C ; =FUN_020DF4A4
ldr r3, _02057F8C ; =Call_FillMemWithValue
mov r2, #0x4a
mov r1, #0x0
lsl r2, r2, #0x2
bx r3
nop
_02057F8C: .word FUN_020DF4A4
_02057F8C: .word Call_FillMemWithValue
thumb_func_start FUN_02057F90
FUN_02057F90: ; 0x02057F90
@@ -38313,7 +38313,7 @@ _0205859A:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38337,7 +38337,7 @@ _020585C2:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38361,7 +38361,7 @@ _020585EA:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38385,7 +38385,7 @@ _02058612:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -47960,7 +47960,7 @@ _0205CA9A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x2c
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r0, [sp, #0x0]
str r7, [r4, #0x8]
str r0, [r4, #0xc]
@@ -48724,7 +48724,7 @@ FUN_0205D024: ; 0x0205D024
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49207,7 +49207,7 @@ FUN_0205D400: ; 0x0205D400
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49574,7 +49574,7 @@ FUN_0205D6BC: ; 0x0205D6BC
ldr r2, [sp, #0x0]
mov r1, #0x0
add r7, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r0, #0x72
ldr r1, _0205D710 ; =0x021F57F1
lsl r0, r0, #0x2
@@ -49938,7 +49938,7 @@ FUN_0205D9A8: ; 0x0205D9A8
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -50170,7 +50170,7 @@ _0205DB9C:
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2c
blx FUN_020DF4A4
blx Call_FillMemWithValue
str r5, [r4, #0x0]
ldr r0, [sp, #0x0]
add r1, r4, #0x4
@@ -53977,7 +53977,7 @@ FUN_0205F7A0: ; 0x0205F7A0
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x6
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38]
bl FUN_02055320
@@ -55975,7 +55975,7 @@ FUN_02060790: ; 0x02060790
mov r1, #0x0
mov r2, #0x2c
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x4]
str r5, [r4, #0x0]
@@ -63987,7 +63987,7 @@ _02064622:
add r0, r4, #0x0
mov r1, #0x0
add r2, r5, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
@@ -64007,7 +64007,7 @@ FUN_02064640: ; 0x02064640
mov r1, #0x0
mov r2, #0xc8
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r1, _02064680 ; =FUN_0206478C
add r0, r4, #0x0
bl FUN_020646B8
@@ -64166,7 +64166,7 @@ FUN_0206473C: ; 0x0206473C
bl FUN_02064738
mov r1, #0x0
add r2, r4, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -65347,7 +65347,7 @@ FUN_02065054: ; 0x02065054
ldr r2, _0206506C ; =0x0000066C
mov r1, #0x0
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
nop
@@ -79377,7 +79377,7 @@ _0206B8DA:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r4, #0x0
str r4, [r5, #0x4]
str r6, [r5, #0x0]
@@ -84084,14 +84084,14 @@ FUN_0206DE4C: ; 0x0206DE4C
mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
blx FUN_020C74DC
blx G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _0206DE74 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
blx FUN_020C74DC
blx G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0206DE70: .word 0x04000050
@@ -84155,13 +84155,13 @@ FUN_0206DE94: ; 0x0206DE94
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
blx FUN_020C7C28
blx G3X_SetFog
mov r0, #0x0
ldr r2, _0206DF0C ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
blx FUN_020C7B3C
blx G3X_SetClearColor
ldr r1, _0206DF10 ; =0xBFFF0000
ldr r0, _0206DF14 ; =0x04000580
str r1, [r0, #0x0]
@@ -84720,7 +84720,7 @@ FUN_0206E2F0: ; 0x0206E2F0
mov r1, #0x0
mov r2, #0x78
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -88378,7 +88378,7 @@ FUN_0206FD24: ; 0x0206FD24
add r0, r5, r0
add r1, #0x60
lsl r2, r2, #0x8
blx FUN_020DF438
blx memcpy
mov r0, #0xc
add r1, r4, #0x0
bl FUN_02016A8C
@@ -88490,7 +88490,7 @@ FUN_0206FE74: ; 0x0206FE74
ldr r2, _0206FF50 ; =0x00000B38
mov r1, #0x0
add r6, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
ldr r1, _0206FF54 ; =0x000005A4
@@ -93303,14 +93303,14 @@ _020724FE:
ldr r1, [sp, #0x0]
add r0, r5, #0x0
mov r2, #0x20
blx FUN_020DF438
blx memcpy
add r1, r4, #0x6
lsl r2, r1, #0x6
ldr r1, [sp, #0x4]
add r0, r6, #0x0
add r1, r1, r2
mov r2, #0x20
blx FUN_020DF438
blx memcpy
add r1, r4, #0x0
add r1, #0xc
lsl r2, r1, #0x6
@@ -93318,7 +93318,7 @@ _020724FE:
add r0, r7, #0x0
add r1, r1, r2
mov r2, #0x20
blx FUN_020DF438
blx memcpy
ldr r0, [sp, #0x0]
add r4, r4, #0x1
add r0, #0x40
@@ -97348,13 +97348,13 @@ _02074638:
ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
blx FUN_020DF438
blx memcpy
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
blx FUN_020DF438
blx memcpy
ldr r0, [sp, #0x4]
mov r2, #0x20
add r0, r0, r4
@@ -97366,13 +97366,13 @@ _02074638:
ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
blx FUN_020DF438
blx memcpy
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
blx FUN_020DF438
blx memcpy
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -102727,7 +102727,7 @@ _020772FE:
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r0, #0x12
bl FUN_02016B94
mov r1, #0x16
@@ -102890,7 +102890,7 @@ FUN_020774B8: ; 0x020774B8
ldr r1, _020774E8 ; =0x000057E0
add r6, r3, #0x0
lsl r2, r2, #0x8
blx FUN_020C92F4
blx GX_LoadOBJ
ldr r4, [r4, #0xc]
add r0, r5, #0x0
add r1, r6, #0x0
@@ -102900,7 +102900,7 @@ FUN_020774B8: ; 0x020774B8
add r0, r4, r0
mov r1, #0xc0
mov r2, #0x20
blx FUN_020C9480
blx GX_LoadOBJPltt
pop {r4-r6, pc}
nop
_020774E8: .word 0x000057E0
@@ -106027,7 +106027,7 @@ _02078E52:
add r0, sp, #0x0
mov r1, #0x3a
mov r2, #0x2
blx FUN_020C9480
blx GX_LoadOBJPltt
pop {r3, pc}
thumb_func_start FUN_02078E7C
@@ -106220,7 +106220,7 @@ _02078FD0:
add r0, r5, #0x0
lsl r2, r2, #0x8
lsl r1, r1, #0x5
blx FUN_020C9294
blx GXS_LoadOBJ
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -106260,7 +106260,7 @@ _02079012:
add r0, r7, #0x0
lsl r1, r1, #0x5
mov r2, #0x80
blx FUN_020C9294
blx GXS_LoadOBJ
add r0, r5, #0x1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
@@ -106854,7 +106854,7 @@ _02079470:
mov r1, #0x0
mov r2, #0x7
str r3, [sp, #0x0]
blx FUN_020C74DC
blx G2x_SetBlendAlpha_
mov r0, #0xd3
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -107924,7 +107924,7 @@ FUN_02079C7C: ; 0x02079C7C
ldr r2, _02079DAC ; =0x0000069C
mov r1, #0x0
add r5, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
mov r1, #0x93
@@ -108459,7 +108459,7 @@ FUN_0207A188: ; 0x0207A188
mov r1, #0x1
mov r2, #0x1e
mov r3, #0x17
blx FUN_020C74DC
blx G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0207A19C: .word 0x04000050
@@ -118029,8 +118029,8 @@ FUN_0207EF6C: ; 0x0207EF6C
push {r3-r4, lr}
sub sp, #0x4
blx FUN_020BB7F4
blx FUN_020C7E94
blx FUN_020C7D28
blx G3X_Init
blx G3X_InitMtxStack
ldr r0, _0207EFEC ; =0x04000060
ldr r1, _0207EFF0 ; =0xFFFFCFFD
ldrh r2, [r0, #0x0]
@@ -118060,13 +118060,13 @@ FUN_0207EF6C: ; 0x0207EF6C
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
blx FUN_020C7C28
blx G3X_SetFog
mov r0, #0x0
ldr r2, _0207EFF8 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
blx FUN_020C7B3C
blx G3X_SetClearColor
ldr r1, _0207EFFC ; =0x04000540
mov r0, #0x0
str r0, [r1, #0x0]
@@ -118682,43 +118682,43 @@ FUN_0207F48C: ; 0x0207F48C
add r6, r2, #0x0
sub r7, r1, r0
add r0, r7, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
mov r1, #0x0
blx FUN_020EAEF0
blx _fgr
bls _0207F4E0
add r0, r7, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
blx FUN_020EB5C4
blx _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx FUN_020EB4C0
blx _fadd
blx _ffix
b _0207F506
_0207F4E0:
add r0, r7, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
blx FUN_020EB5C4
blx _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx FUN_020EB4C0
blx _fsub
blx _ffix
_0207F506:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118728,43 +118728,43 @@ _0207F506:
ldrsh r0, [r5, r0]
sub r7, r1, r0
add r0, r7, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
mov r1, #0x0
blx FUN_020EAEF0
blx _fgr
bls _0207F558
add r0, r7, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
blx FUN_020EB5C4
blx _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx FUN_020EB4C0
blx _fadd
blx _ffix
b _0207F57E
_0207F558:
add r0, r7, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
blx FUN_020EB5C4
blx _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx FUN_020EB4C0
blx _fsub
blx _ffix
_0207F57E:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118774,43 +118774,43 @@ _0207F57E:
ldrsh r0, [r5, r0]
sub r4, r1, r0
add r0, r4, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
mov r1, #0x0
blx FUN_020EAEF0
blx _fgr
bls _0207F5D0
add r0, r4, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
blx FUN_020EB5C4
blx _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx FUN_020EB4C0
blx _fadd
blx _ffix
b _0207F5F6
_0207F5D0:
add r0, r4, #0x0
blx FUN_020EB534
blx _fflt
ldr r1, _0207F600 ; =0x45800000
blx FUN_020EB084
blx _fdiv
ldr r1, _0207F604 ; =0x40800000
blx FUN_020EB084
blx _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
blx FUN_020EB5C4
blx _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx FUN_020EB4C0
blx _fsub
blx _ffix
_0207F5F6:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -127939,7 +127939,7 @@ FUN_02083BAC: ; 0x02083BAC
ldr r0, [r4, r0]
add r1, r6, #0x0
lsl r2, r2, #0x4
blx FUN_020DF438
blx memcpy
ldr r0, [r4, #0x58]
add r0, r0, #0x1
str r0, [r4, #0x58]
@@ -128388,7 +128388,7 @@ _02083ED0:
cmp r1, r0
bne _02083EFE
bl FUN_0202CB8C
blx FUN_020DDC5C
blx MATH_CountPopulation
mov r1, #0xc6
lsl r1, r1, #0x2
ldr r1, [r4, r1]
@@ -128742,7 +128742,7 @@ _0208415E:
cmp r1, r0
bne _02084186
bl FUN_0202CB8C
blx FUN_020DDC5C
blx MATH_CountPopulation
ldr r1, _02084208 ; =0x00004A48
ldr r2, [r4, r1]
cmp r2, r0
@@ -131946,7 +131946,7 @@ FUN_020859C0: ; 0x020859C0
ldr r2, _02085BA0 ; =0x0000042C
mov r1, #0x0
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
bl FUN_0222E2BC
mov r1, #0x23
lsl r1, r1, #0x4
@@ -132596,7 +132596,7 @@ _02085F5E:
mov r1, #0x0
mov r2, #0x30
str r0, [r4, #0x8]
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r5, #0x0
bl LoadPlayerDataAddress
ldr r1, [r4, #0x8]
@@ -132609,7 +132609,7 @@ _02085F5E:
mov r1, #0x0
mov r2, #0x40
str r0, [r4, #0xc]
blx FUN_020DF4A4
blx Call_FillMemWithValue
ldr r1, _02085FA8 ; =FUN_02085DA4
add r0, r6, #0x0
add r2, r4, #0x0
@@ -132752,7 +132752,7 @@ FUN_02086084: ; 0x02086084
mov r1, #0x0
mov r2, #0x80
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
add r0, r5, #0x0
bl FUN_0200628C
str r0, [r4, #0x0]
@@ -133167,14 +133167,14 @@ FUN_0208643C: ; 0x0208643C
mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
blx FUN_020C74DC
blx G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _02086464 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
blx FUN_020C74DC
blx G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_02086460: .word 0x04000050
@@ -133239,13 +133239,13 @@ FUN_02086488: ; 0x02086488
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
blx FUN_020C7C28
blx G3X_SetFog
mov r0, #0x0
ldr r2, _02086500 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
blx FUN_020C7B3C
blx G3X_SetClearColor
ldr r1, _02086504 ; =0xBFFF0000
ldr r0, _02086508 ; =0x04000580
str r1, [r0, #0x0]
@@ -134325,7 +134325,7 @@ _02086DB4:
bl FUN_0200C82C
mov r0, #0x0
add r1, r7, #0x0
blx FUN_020EB010
blx _feq
beq _02086DD2
ldr r0, [r6, #0x6c]
ldr r2, [sp, #0x0]
@@ -136992,22 +136992,22 @@ _0208826A:
cmp r0, #0x5
beq _020882B8
ldrb r0, [r4, r0]
blx FUN_020EB57C
blx _ffltu
add r1, r0, #0x0
ldr r0, _02088318 ; =0x3F8CCCCD
blx FUN_020EB5C4
blx FUN_020EB4F4
blx _fmul
blx _ffixu
ldr r1, [sp, #0x4]
strb r0, [r4, r1]
add r4, sp, #0x8
ldr r0, [sp, #0x0]
add r4, #0x1
ldrb r0, [r4, r0]
blx FUN_020EB57C
blx _ffltu
add r1, r0, #0x0
ldr r0, _0208831C ; =0x3F666666
blx FUN_020EB5C4
blx FUN_020EB4F4
blx _fmul
blx _ffixu
ldr r1, [sp, #0x0]
strb r0, [r4, r1]
_020882B8:
@@ -137365,59 +137365,59 @@ _020884D8:
str r0, [sp, #0x44]
beq _02088596
lsl r0, r7, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _020885A4
_02088596:
lsl r0, r7, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_020885A4:
blx FUN_020EB4C0
blx _ffix
str r0, [sp, #0x48]
ldr r0, [sp, #0x30]
cmp r0, #0x0
beq _020885C2
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _020885D0
_020885C2:
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_020885D0:
blx FUN_020EB4C0
blx _ffix
str r0, [sp, #0x4c]
add r0, sp, #0x78
ldrh r0, [r0, #0x10]
cmp r0, #0x0
beq _020885F0
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
blx FUN_020EA980
blx _fadd
b _020885FE
_020885F0:
lsl r0, r0, #0xc
blx FUN_020EB534
blx _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
blx FUN_020EB7B0
blx _fsub
_020885FE:
blx FUN_020EB4C0
blx _ffix
str r0, [sp, #0x50]
cmp r6, #0x2
bne _02088612
@@ -138221,7 +138221,7 @@ _02088BBA:
add r2, r0, #0x0
ldr r1, [r4, #0x18]
add r0, r5, #0x0
blx FUN_020DF438
blx memcpy
ldr r0, [r4, #0x18]
bl FUN_02016A18
mov r0, #0x0
@@ -139455,7 +139455,7 @@ FUN_02089498: ; 0x02089498
mov r1, #0x0
mov r2, #0x38
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -140031,7 +140031,7 @@ FUN_02089960: ; 0x02089960
mov r1, #0x0
mov r2, #0x3c
add r4, r0, #0x0
blx FUN_020DF4A4
blx Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+3521
View File
File diff suppressed because it is too large Load Diff
View File
View File
+506
View File
@@ -0,0 +1,506 @@
SDK_SYS_STACKSIZE = 0x00000000;
CONST_34 = 0x00000034;
CONST_3F = 0x0000003F;
SDK_IRQ_STACKSIZE = 0x00000400;
// .data
// OS
OSi_IrqCallbackInfoIndex = 0x02106818;
// DGT
Unk_0210683C = 0x0210683C;
Unk_02106840 = 0x02106840;
Unk_02106900 = 0x02106900;
Unk_02106A00 = 0x02106A00;
Unk_02106A04 = 0x02106A04;
// .bss
gBacklightTop = 0x02106FA0;
gBacklightTop_2 = 0x02106FA0;
gUnknown2106FB8 = 0x02106FB8;
gUnknown21C48B8 = 0x021C48B8;
gUnk021C4918 = 0x021C4918;
OSi_IrqCallbackInfo = 0x021D341C;
isInitialized = 0x021D347C;
OSi_StackForDestructor = 0x021D3480;
OSi_RescheduleCount = 0x021D3484;
OSi_ThreadIdCount = 0x021D3488;
OSi_SystemCallbackInSwitchThread = 0x021D348C;
OSi_CurrentThreadPtr = 0x021D3490;
OSi_IsThreadInitialized = 0x021D3494;
OSi_ThreadInfo = 0x021D3498;
OSi_IdleThread = 0x021D34A8;
OSi_LauncherThread = 0x021D3568;
OSi_IdleThreadStack = 0x021D3628;
OSi_Initialized = 0x021D36F0;
OSi_MainExArenaEnabled = 0x021D36F4;
OSi_HeapInfo = 0x021D36F8;
OSi_UserExceptionHandler = 0x021D371C;
OSi_UserExceptionHandlerArg = 0x21D3720;
OSi_DebuggerHandler = 0x021D3724;
OSi_ExContext = 0x021D3728;
OSi_TimerReserved = 0x021D37A8;
OSi_UseTick = 0x021D37AC;
OSi_NeedResetTimer = 0x021D37B0;
OSi_TickCounter = 0x021D37B4;
OSi_UseAlarm = 0x021D37BC;
OSi_AlarmQueue = 0x021D37C0;
OSi_UseVAlarm = 0x021D37C8;
OSi_PreviousVCount = 0x021D37CC;
OSi_VFrameCount = 0x021D37D0;
OSi_VAlarmQueue = 0x021D37D4;
OSi_IsInitReset = 0x021D37DC;
OSi_IsResetOccurred = 0x021D37E0;
OSi_vramExclusive = 0x021D37E4;
OSi_vramLockId = 0x021D37E8;
cardi_common = 0x021D55C0;
// Overlay
FUN_021D74E0 = 0x021D74E0;
FUN_021D76AC = 0x021D76AC;
gUnk021D76C8 = 0x021D76C8;
FUN_021D77C4 = 0x021D77C4;
FUN_021D7800 = 0x021D7800;
FUN_021D78FC = 0x021D78FC;
FUN_021D79B4 = 0x021D79B4;
FUN_021D7CA4 = 0x021D7CA4;
FUN_021D7F8C = 0x021D7F8C;
FUN_021D8018 = 0x021D8018;
FUN_021D8164 = 0x021D8164;
FUN_021D82BC = 0x021D82BC;
FUN_021D8320 = 0x021D8320;
FUN_021D836C = 0x021D836C;
FUN_021D83A8 = 0x021D83A8;
FUN_021D83C0 = 0x021D83C0;
FUN_021D844C = 0x021D844C;
FUN_021D8494 = 0x021D8494;
FUN_021D85FC = 0x021D85FC;
FUN_021D8624 = 0x021D8624;
FUN_021D865C = 0x021D865C;
FUN_021D8758 = 0x021D8758;
FUN_021D8820 = 0x021D8820;
FUN_021D88E4 = 0x021D88E4;
FUN_021D89CC = 0x021D89CC;
FUN_021D8B64 = 0x021D8B64;
FUN_021D8C24 = 0x021D8C24;
FUN_021D917C = 0x021D917C;
FUN_021D959C = 0x021D959C;
FUN_021D967C = 0x021D967C;
FUN_021D96F4 = 0x021D96F4;
FUN_021D9708 = 0x021D9708;
FUN_021D971C = 0x021D971C;
FUN_021D9820 = 0x021D9820;
FUN_021D99F8 = 0x021D99F8;
FUN_021DA464 = 0x021DA464;
FUN_021DA4EC = 0x021DA4EC;
FUN_021DA54C = 0x021DA54C;
FUN_021DA58C = 0x021DA58C;
FUN_021DA5B8 = 0x021DA5B8;
FUN_021DA5C8 = 0x021DA5C8;
FUN_021DA5D0 = 0x021DA5D0;
FUN_021DA5D8 = 0x021DA5D8;
FUN_021DA7B4 = 0x021DA7B4;
FUN_021DAAA4 = 0x021DAAA4;
FUN_021DAC70 = 0x021DAC70;
FUN_021DAE40 = 0x021DAE40;
FUN_021DAED4 = 0x021DAED4;
FUN_021DAF28 = 0x021DAF28;
FUN_021DAF78 = 0x021DAF78;
FUN_021DAF98 = 0x021DAF98;
FUN_021DB030 = 0x021DB030;
FUN_021DB7E8 = 0x021DB7E8;
FUN_021DB858 = 0x021DB858;
gUnk021DBE18 = 0x021DBE18;
FUN_021DC174 = 0x021DC174;
FUN_021DD6F0 = 0x021DD6F0;
FUN_021DD718 = 0x021DD718;
FUN_021DDB08 = 0x021DDB08;
FUN_021E1374 = 0x021E1374;
FUN_021E1858 = 0x021E1858;
FUN_021E1994 = 0x021E1994;
FUN_021E1BF8 = 0x021E1BF8;
FUN_021E1C4C = 0x021E1C4C;
FUN_021E1C54 = 0x021E1C54;
FUN_021E1ECC = 0x021E1ECC;
FUN_021E1F34 = 0x021E1F34;
FUN_021E1F58 = 0x021E1F58;
FUN_021E1F60 = 0x021E1F60;
FUN_021E2464 = 0x021E2464;
FUN_021E2608 = 0x021E2608;
FUN_021E26CC = 0x021E26CC;
FUN_021E27E8 = 0x021E27E8;
FUN_021E288C = 0x021E288C;
FUN_021E28A0 = 0x021E28A0;
FUN_021E2950 = 0x021E2950;
FUN_021E29B4 = 0x021E29B4;
FUN_021E29C8 = 0x021E29C8;
FUN_021E2A70 = 0x021E2A70;
FUN_021E2AD4 = 0x021E2AD4;
FUN_021E2B80 = 0x021E2B80;
FUN_021E2B9C = 0x021E2B9C;
FUN_021E2BB8 = 0x021E2BB8;
FUN_021E2BD0 = 0x021E2BD0;
FUN_021E2C24 = 0x021E2C24;
FUN_021E2C58 = 0x021E2C58;
FUN_021E2CBC = 0x021E2CBC;
FUN_021E32F0 = 0x021E32F0;
FUN_021E331C = 0x021E331C;
FUN_021E3424 = 0x021E3424;
FUN_021E3444 = 0x021E3444;
FUN_021E495C = 0x021E495C;
FUN_021E4C54 = 0x021E4C54;
FUN_021E4C60 = 0x021E4C60;
FUN_021E4DE4 = 0x021E4DE4;
FUN_021E5614 = 0x021E5614;
FUN_021E57D4 = 0x021E57D4;
FUN_021E5970 = 0x021E5970;
FUN_021E5B30 = 0x021E5B30;
FUN_021E5FD8 = 0x021E5FD8;
FUN_021E5FE0 = 0x021E5FE0;
FUN_021E6410 = 0x021E6410;
FUN_021E643C = 0x021E643C;
FUN_021E6990 = 0x021E6990;
FUN_021E69BC = 0x021E69BC;
FUN_021E6BF4 = 0x021E6BF4;
FUN_021E7030 = 0x021E7030;
FUN_021E70F0 = 0x021E70F0;
FUN_021E7138 = 0x021E7138;
FUN_021E7184 = 0x021E7184;
FUN_021E71E8 = 0x021E71E8;
FUN_021E7750 = 0x021E7750;
FUN_021E799C = 0x021E799C;
FUN_021E7AC0 = 0x021E7AC0;
FUN_021E7EA0 = 0x021E7EA0;
FUN_021E7EB0 = 0x021E7EB0;
FUN_021E7EC4 = 0x021E7EC4;
FUN_021E7EC8 = 0x021E7EC8;
FUN_021E7ED0 = 0x021E7ED0;
FUN_021E7ED8 = 0x021E7ED8;
FUN_021E7FBC = 0x021E7FBC;
FUN_021E8128 = 0x021E8128;
FUN_021E8130 = 0x021E8130;
FUN_021E8140 = 0x021E8140;
FUN_021E8144 = 0x021E8144;
FUN_021E8148 = 0x021E8148;
FUN_021E8158 = 0x021E8158;
FUN_021E81BC = 0x021E81BC;
FUN_021E84F4 = 0x021E84F4;
FUN_021E856C = 0x021E856C;
FUN_021E8588 = 0x021E8588;
FUN_021E85E4 = 0x021E85E4;
FUN_021E85FC = 0x021E85FC;
FUN_021EAE90 = 0x021EAE90;
FUN_021EB044 = 0x021EB044;
FUN_021EC57C = 0x021EC57C;
FUN_021EC71C = 0x021EC71C;
FUN_021EC854 = 0x021EC854;
FUN_021EC864 = 0x021EC864;
FUN_021ECD64 = 0x021ECD64;
FUN_021ECF14 = 0x021ECF14;
FUN_021ED0CC = 0x021ED0CC;
FUN_021ED49C = 0x021ED49C;
FUN_021ED4E0 = 0x021ED4E0;
FUN_021ED52C = 0x021ED52C;
FUN_021ED5C4 = 0x021ED5C4;
FUN_021ED5EC = 0x021ED5EC;
FUN_021ED644 = 0x021ED644;
FUN_021ED940 = 0x021ED940;
FUN_021EDA48 = 0x021EDA48;
FUN_021EDBC8 = 0x021EDBC8;
FUN_021EF5E0 = 0x021EF5E0;
FUN_021EF604 = 0x021EF604;
FUN_021EF620 = 0x021EF620;
FUN_021EF654 = 0x021EF654;
FUN_021EF824 = 0x021EF824;
FUN_021EF844 = 0x021EF844;
FUN_021EF8C8 = 0x021EF8C8;
FUN_021EF8DC = 0x021EF8DC;
FUN_021EFA9C = 0x021EFA9C;
FUN_021F02C4 = 0x021F02C4;
FUN_021F1D8C = 0x021F1D8C;
FUN_021F1DC8 = 0x021F1DC8;
FUN_021F1DFC = 0x021F1DFC;
FUN_021F1EC0 = 0x021F1EC0;
FUN_021F1F78 = 0x021F1F78;
FUN_021F2094 = 0x021F2094;
FUN_021F20D8 = 0x021F20D8;
FUN_021F20F8 = 0x021F20F8;
FUN_021F2AF4 = 0x021F2AF4;
FUN_021F2E0C = 0x021F2E0C;
FUN_021F2E28 = 0x021F2E28;
FUN_021F2F48 = 0x021F2F48;
FUN_021F2F6C = 0x021F2F6C;
FUN_021F3A18 = 0x021F3A18;
FUN_021F3AB4 = 0x021F3AB4;
FUN_021F3B4C = 0x021F3B4C;
FUN_021F3B7C = 0x021F3B7C;
FUN_021F3DA4 = 0x021F3DA4;
FUN_021F44D8 = 0x021F44D8;
FUN_021F4520 = 0x021F4520;
FUN_021F4568 = 0x021F4568;
FUN_021F4594 = 0x021F4594;
FUN_021F45E8 = 0x021F45E8;
FUN_021F4608 = 0x021F4608;
FUN_021F4BD0 = 0x021F4BD0;
FUN_021F4C88 = 0x021F4C88;
FUN_021F4D80 = 0x021F4D80;
FUN_021F4DC8 = 0x021F4DC8;
FUN_021F4E7C = 0x021F4E7C;
FUN_021F57EC = 0x021F57EC;
FUN_021F5C44 = 0x021F5C44;
FUN_021F61DC = 0x021F61DC;
FUN_021F61E8 = 0x021F61E8;
FUN_02211E60 = 0x02211E60;
FUN_0222D5C0 = 0x0222D5C0;
FUN_0222DAEC = 0x0222DAEC;
FUN_0222DD1C = 0x0222DD1C;
FUN_0222DD38 = 0x0222DD38;
FUN_0222E2BC = 0x0222E2BC;
FUN_0222E360 = 0x0222E360;
FUN_0222E3A0 = 0x0222E3A0;
FUN_0222E7E8 = 0x0222E7E8;
FUN_0222E874 = 0x0222E874;
FUN_0222ED34 = 0x0222ED34;
FUN_0222EDBC = 0x0222EDBC;
FUN_0222F440 = 0x0222F440;
FUN_0222F480 = 0x0222F480;
FUN_0222F7E0 = 0x0222F7E0;
FUN_0222F990 = 0x0222F990;
FUN_022300D4 = 0x022300D4;
FUN_022300DC = 0x022300DC;
FUN_022300E4 = 0x022300E4;
FUN_022300E8 = 0x022300E8;
FUN_022300F4 = 0x022300F4;
FUN_02230100 = 0x02230100;
FUN_0223010C = 0x0223010C;
FUN_02230118 = 0x02230118;
FUN_02230124 = 0x02230124;
FUN_02230F3C = 0x02230F3C;
FUN_02230F70 = 0x02230F70;
FUN_02230F80 = 0x02230F80;
FUN_02231344 = 0x02231344;
FUN_02231350 = 0x02231350;
FUN_0223135C = 0x0223135C;
FUN_02231368 = 0x02231368;
FUN_02231374 = 0x02231374;
FUN_02239944 = 0x02239944;
FUN_02239AAC = 0x02239AAC;
FUN_0223CACC = 0x0223CACC;
FUN_0223CB08 = 0x0223CB08;
FUN_0223CCDC = 0x0223CCDC;
FUN_0223CD7C = 0x0223CD7C;
FUN_0223D3D0 = 0x0223D3D0;
FUN_0223D638 = 0x0223D638;
FUN_0223D648 = 0x0223D648;
FUN_0223DFB4 = 0x0223DFB4;
FUN_0223E060 = 0x0223E060;
FUN_0223E118 = 0x0223E118;
FUN_0223E154 = 0x0223E154;
FUN_0223E1A4 = 0x0223E1A4;
FUN_0223E1E0 = 0x0223E1E0;
FUN_0223E2AC = 0x0223E2AC;
FUN_0223E4A8 = 0x0223E4A8;
FUN_0223E4D4 = 0x0223E4D4;
FUN_0223E554 = 0x0223E554;
FUN_0223E6B8 = 0x0223E6B8;
FUN_0223E734 = 0x0223E734;
FUN_0223E7FC = 0x0223E7FC;
FUN_0223EB8C = 0x0223EB8C;
FUN_0223EF7C = 0x0223EF7C;
FUN_0223F4D8 = 0x0223F4D8;
FUN_0223F4F4 = 0x0223F4F4;
FUN_0223F8D8 = 0x0223F8D8;
FUN_0223FCE8 = 0x0223FCE8;
FUN_02240790 = 0x02240790;
FUN_022407CC = 0x022407CC;
FUN_022407DC = 0x022407DC;
FUN_022407F8 = 0x022407F8;
FUN_02240834 = 0x02240834;
FUN_02240844 = 0x02240844;
FUN_0224089C = 0x0224089C;
FUN_022408FC = 0x022408FC;
FUN_022411F4 = 0x022411F4;
FUN_02241230 = 0x02241230;
FUN_02241914 = 0x02241914;
FUN_02242A38 = 0x02242A38;
FUN_02242BE0 = 0x02242BE0;
FUN_0224312C = 0x0224312C;
FUN_022432E4 = 0x022432E4;
FUN_0224339C = 0x0224339C;
FUN_022433A8 = 0x022433A8;
FUN_022433B0 = 0x022433B0;
FUN_022433B8 = 0x022433B8;
FUN_022433F8 = 0x022433F8;
FUN_02243408 = 0x02243408;
FUN_02243428 = 0x02243428;
FUN_02243448 = 0x02243448;
FUN_0224345C = 0x0224345C;
FUN_022434AC = 0x022434AC;
FUN_022434BC = 0x022434BC;
FUN_022434D0 = 0x022434D0;
FUN_02243694 = 0x02243694;
FUN_022436C8 = 0x022436C8;
FUN_022436E8 = 0x022436E8;
FUN_02243780 = 0x02243780;
FUN_02243838 = 0x02243838;
FUN_022438DC = 0x022438DC;
FUN_022438E0 = 0x022438E0;
FUN_022438FC = 0x022438FC;
FUN_02243920 = 0x02243920;
FUN_022439F8 = 0x022439F8;
FUN_02243AD8 = 0x02243AD8;
FUN_02243BA8 = 0x02243BA8;
FUN_02243C5C = 0x02243C5C;
FUN_02243D3C = 0x02243D3C;
FUN_02243DA0 = 0x02243DA0;
FUN_02243DB8 = 0x02243DB8;
FUN_02243DC0 = 0x02243DC0;
FUN_02243DC4 = 0x02243DC4;
FUN_02243DD8 = 0x02243DD8;
FUN_02243DE0 = 0x02243DE0;
FUN_02243E34 = 0x02243E34;
FUN_02243E74 = 0x02243E74;
FUN_02243F18 = 0x02243F18;
FUN_02243F50 = 0x02243F50;
FUN_02243F9C = 0x02243F9C;
FUN_02244210 = 0x02244210;
FUN_02244558 = 0x02244558;
FUN_02244660 = 0x02244660;
FUN_022446BC = 0x022446BC;
FUN_022446E0 = 0x022446E0;
FUN_022446FC = 0x022446FC;
FUN_02244758 = 0x02244758;
FUN_02244770 = 0x02244770;
FUN_02244824 = 0x02244824;
FUN_0224484C = 0x0224484C;
FUN_02244D1C = 0x02244D1C;
FUN_02244D20 = 0x02244D20;
FUN_02244D3C = 0x02244D3C;
FUN_02244D40 = 0x02244D40;
FUN_02244D58 = 0x02244D58;
FUN_02244D98 = 0x02244D98;
FUN_02244DA0 = 0x02244DA0;
FUN_02244DB0 = 0x02244DB0;
FUN_02244DBC = 0x02244DBC;
FUN_02244DC4 = 0x02244DC4;
FUN_02244EF8 = 0x02244EF8;
FUN_02244F18 = 0x02244F18;
FUN_02244F24 = 0x02244F24;
FUN_02244F2C = 0x02244F2C;
FUN_02245088 = 0x02245088;
FUN_02245114 = 0x02245114;
FUN_02245190 = 0x02245190;
FUN_02245198 = 0x02245198;
FUN_022451F0 = 0x022451F0;
FUN_0224525C = 0x0224525C;
FUN_022452A4 = 0x022452A4;
FUN_02245324 = 0x02245324;
FUN_02245340 = 0x02245340;
FUN_02245358 = 0x02245358;
FUN_0224566C = 0x0224566C;
FUN_022456E8 = 0x022456E8;
FUN_02245844 = 0x02245844;
FUN_02245910 = 0x02245910;
FUN_02245F1C = 0x02245F1C;
FUN_02245F4C = 0x02245F4C;
FUN_02245FA0 = 0x02245FA0;
FUN_022461A4 = 0x022461A4;
FUN_022461B8 = 0x022461B8;
FUN_0224666C = 0x0224666C;
FUN_022466A0 = 0x022466A0;
FUN_022466AC = 0x022466AC;
FUN_02246F1C = 0x02246F1C;
FUN_02247294 = 0x02247294;
FUN_022472AC = 0x022472AC;
FUN_02247544 = 0x02247544;
FUN_02247614 = 0x02247614;
FUN_02247728 = 0x02247728;
FUN_02247808 = 0x02247808;
FUN_02247970 = 0x02247970;
FUN_02247A34 = 0x02247A34;
FUN_022483BC = 0x022483BC;
FUN_022483E0 = 0x022483E0;
FUN_022483EC = 0x022483EC;
FUN_02248724 = 0x02248724;
FUN_0224884C = 0x0224884C;
FUN_022488CC = 0x022488CC;
FUN_022488EC = 0x022488EC;
FUN_022488F4 = 0x022488F4;
FUN_022488FC = 0x022488FC;
FUN_0224891C = 0x0224891C;
FUN_02248B54 = 0x02248B54;
FUN_02248B58 = 0x02248B58;
FUN_02248B5C = 0x02248B5C;
FUN_02248B60 = 0x02248B60;
FUN_02248B6C = 0x02248B6C;
FUN_02248CC0 = 0x02248CC0;
FUN_02248CD0 = 0x02248CD0;
FUN_02248DF8 = 0x02248DF8;
FUN_02248F70 = 0x02248F70;
FUN_02248FE0 = 0x02248FE0;
FUN_02249038 = 0x02249038;
FUN_022490A0 = 0x022490A0;
FUN_022491FC = 0x022491FC;
FUN_022494C8 = 0x022494C8;
FUN_02249508 = 0x02249508;
FUN_02249668 = 0x02249668;
FUN_022497E8 = 0x022497E8;
FUN_02249E6C = 0x02249E6C;
FUN_02249E78 = 0x02249E78;
FUN_02249E84 = 0x02249E84;
FUN_02249E90 = 0x02249E90;
FUN_0224A310 = 0x0224A310;
FUN_0224A528 = 0x0224A528;
FUN_0224A7C8 = 0x0224A7C8;
FUN_0224ABAC = 0x0224ABAC;
FUN_0224B124 = 0x0224B124;
FUN_0224B2C4 = 0x0224B2C4;
FUN_0224B568 = 0x0224B568;
FUN_0224B818 = 0x0224B818;
FUN_0224B86C = 0x0224B86C;
FUN_0224B9E0 = 0x0224B9E0;
FUN_0224BBEC = 0x0224BBEC;
FUN_0224BD90 = 0x0224BD90;
FUN_0224C038 = 0x0224C038;
FUN_0224C27C = 0x0224C27C;
FUN_0224C520 = 0x0224C520;
FUN_0224C678 = 0x0224C678;
FUN_0224C6E8 = 0x0224C6E8;
FUN_0224C6F4 = 0x0224C6F4;
FUN_0224C700 = 0x0224C700;
FUN_0224C8C8 = 0x0224C8C8;
FUN_0224CA2C = 0x0224CA2C;
FUN_0224CA54 = 0x0224CA54;
FUN_0224CA58 = 0x0224CA58;
FUN_0224CA88 = 0x0224CA88;
FUN_0224CA94 = 0x0224CA94;
FUN_0224CAA0 = 0x0224CAA0;
FUN_0224CAB4 = 0x0224CAB4;
FUN_0224CB30 = 0x0224CB30;
FUN_0224CBB0 = 0x0224CBB0;
FUN_0224CC24 = 0x0224CC24;
FUN_0224CECC = 0x0224CECC;
FUN_0224D14C = 0x0224D14C;
FUN_0224D2E0 = 0x0224D2E0;
FUN_0224D3E8 = 0x0224D3E8;
FUN_0224D70C = 0x0224D70C;
FUN_0224D76C = 0x0224D76C;
FUN_0224D79C = 0x0224D79C;
FUN_0224DCB8 = 0x0224DCB8;
FUN_0224DD94 = 0x0224DD94;
FUN_0224DDB8 = 0x0224DDB8;
FUN_0224E554 = 0x0224E554;
FUN_0224E764 = 0x0224E764;
FUN_0224E7C4 = 0x0224E7C4;
FUN_0224F12C = 0x0224F12C;
FUN_02252534 = 0x02252534;
FUN_02252538 = 0x02252538;
FUN_022567E0 = 0x022567E0;
// ???
SDK_MAIN_ARENA_LO = 0x0225FFA0;
// EWRAM
SDK_SECTION_ARENA_EX_START = 0x023E0000;
// DTCM
gUnk027FFC20 = 0x027FFC20;
-13766
View File
File diff suppressed because it is too large Load Diff
-7
View File
@@ -1,7 +0,0 @@
/* rom1.5.s TODO: Disassemble */
.include "asm/macros.inc"
.section .text
arm_func_start FUN_0208AC14
FUN_0208AC14:
.incbin "baserom.nds", 0x8EC14, 0x3EFF8
-150
View File
@@ -1,150 +0,0 @@
/* rom2.s TODO: Disassemble */
.include "asm/macros.inc"
.section .text
.incbin "baserom.nds", 0xD9150, 0x16AE0
arm_func_start _ll_mul
_ll_mul: ; 0x020EBC30
stmdb sp!, {r4, r5, lr}
umull r5, r4, r0, r2
mla r4, r0, r3, r4
mla r4, r2, r1, r4
mov r1, r4
mov r0, r5
ldmia sp!, {r4, r5, lr}
bx lr
arm_func_start _ll_shl
_ll_shl: ; 0x020EBC50
ands r2, r2, #0x3F
bxeq lr
subs r3, r2, #0x20
bge _020EBC74
rsb r3, r2, #0x20
mov r1, r1, lsl r2
orr r1, r1, r0, lsr r3
mov r0, r0, lsl r2
bx lr
_020EBC74:
mov r1, r0, lsl r3
mov r0, #0x0
bx lr
arm_func_start _s32_div_f
_s32_div_f: ; 0x20EBC80
; Test whether the args have different signs
eor ip, r0, r1
and ip, ip, #0x80000000
; Test the sign of the numerator, and make it positive
cmp r0, #0x0
rsblt r0, r0, #0x0
addlt ip, ip, #1
; Make the denominator positive, also test for div0
cmp r1, #0x0
rsblt r1, r1, #0x0
beq _020EBE78
; If the numerator is less than the denominator, return (0, numerator)
cmp r0, r1
movcc r1, r0
movcc r0, #0x0
bcc _020EBE78
; Do the actual division
mov r2, #0x1c
mov r3, r0, lsr #0x4
cmp r1, r3, lsr #0xc
suble r2, r2, #0x10
movle r3, r3, lsr #0x10
cmp r1, r3, lsr #0x4
suble r2, r2, #0x8
movle r3, r3, lsr #0x8
cmp r1, r3
suble r2, r2, #0x4
movle r3, r3, lsr #0x4
mov r0, r0, lsl r2
rsb r1, r1, #0x0
adds r0, r0, r0
add r2, r2, r2, lsl #0x1
add pc, pc, r2, lsl #0x2
nop
.rept 32
adcs r3, r1, r3, lsl #0x1
subcc r3, r3, r1
adcs r0, r0, r0
.endr
mov r1, r3
_020EBE78:
; If the signs differed originally, negate quotient
ands r3, ip, #0x80000000
rsbne r0, r0, #0x0
; If the numerator was negative, negate remainder
ands r3, ip, #0x1
rsbne r1, r1, #0x0
bx lr
; required to make the linker happy :
arm_func_start _u32_div_f
_u32_div_f: ; 0x020EBE8C
cmp r1, #0x0
bxeq lr ; About as wrong as we can be
cmp r0, r1
movcc r1, r0
movcc r0, #0x0
bxcc lr
mov r2, #0x1c
mov r3, r0, lsr #0x4
cmp r1, r3, lsr #0xc
suble r2, r2, #0x10
movle r3, r3, lsr #0x10
cmp r1, r3, lsr #0x4
suble r2, r2, #0x8
movle r3, r3, lsr #0x8
cmp r1, r3
suble r2, r2, #0x4
movle r3, r3, lsr #0x4
mov r0, r0, lsl r2
rsb r1, r1, #0x0
adds r0, r0, r0
add r2, r2, r2, lsl #0x1
add pc, pc, r2, lsl #0x2
nop
.rept 32
adcs r3, r1, r3, lsl #0x1
subcc r3, r3, r1
adcs r0, r0, r0
.endr
mov r1, r3
bx lr
.incbin "baserom.nds", 0xF0070, 0x55C
arm_func_start _fp_init
_fp_init: ; 0x020EC5CC
bx lr
arm_func_start sys_writec
sys_writec: ; 0x020EC5D0
str lr, [sp, #-4]!
mov r1, r0
mov r0, #0x3
swi 0x123456
ldr pc, [sp], #0x4
arm_func_start sys_readc
sys_readc: ; 0x020EC5E4
str lr, [sp, #-4]!
mov r1, #0x0
mov r0, #0x7
swi 0x123456
ldr pc, [sp], #0x4
.incbin "baserom.nds", 0xF05F8, 0x9C
arm_func_start __call_static_initializers
__call_static_initializers: ; 0x020EC694
.incbin "baserom.nds", 0xF0694, 0x7C
.section .data
.incbin "baserom.nds", 0xF0710, 0x3F8
+52 -52
View File
@@ -272,31 +272,31 @@ FileNameTable:
.byte 0x05, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /custom_ball
; Directory: /application/custom_ball
.byte 4 | 0x80
.ascii "data"
.byte 0x03, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /application/data
; Directory: /application/custom_ball/data
.byte 12
.ascii "cb_data.narc"
.byte 0 ; end
; Directory: /wifi_earth
; Directory: /application/wifi_earth
.byte 15
.ascii "wifi_earth.narc"
.byte 21
.ascii "wifi_earth_place.narc"
.byte 0 ; end
; Directory: /zukanlist
; Directory: /application/zukanlist
.byte 8 | 0x80
.ascii "zkn_data"
.byte 0x06, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /application/zkn_data
; Directory: /application/zukanlist/zkn_data
.byte 15
.ascii "zukan_data.narc"
.byte 22
@@ -335,14 +335,14 @@ FileNameTable:
.byte 0x0C, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /b_tower
; Directory: /battle/b_tower
.byte 10
.ascii "btdpm.narc"
.byte 10
.ascii "btdtr.narc"
.byte 0 ; end
; Directory: /graphic
; Directory: /battle/graphic
.byte 14
.ascii "b_bag_gra.narc"
.byte 16
@@ -355,7 +355,7 @@ FileNameTable:
.ascii "vs_demo_gra.narc"
.byte 0 ; end
; Directory: /skill
; Directory: /battle/skill
.byte 11
.ascii "be_seq.narc"
.byte 12
@@ -364,7 +364,7 @@ FileNameTable:
.ascii "waza_seq.narc"
.byte 0 ; end
; Directory: /tr_ai
; Directory: /battle/tr_ai
.byte 14
.ascii "tr_ai_seq.narc"
.byte 0 ; end
@@ -378,12 +378,12 @@ FileNameTable:
.byte 0x0F, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /data
; Directory: /contest/data
.byte 17
.ascii "contest_data.narc"
.byte 0 ; end
; Directory: /graphic
; Directory: /contest/graphic
.byte 15
.ascii "contest_bg.narc"
.byte 16
@@ -661,14 +661,14 @@ FileNameTable:
.byte 0x12, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /mmodel
; Directory: /data/mmodel
.byte 11
.ascii "fldeff.narc"
.byte 11
.ascii "mmodel.narc"
.byte 0 ; end
; Directory: /sound
; Directory: /data/sound
.byte 15
.ascii "sound_data.sdat"
.byte 0 ; end
@@ -691,13 +691,13 @@ FileNameTable:
.byte 0x1C, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /egg
; Directory: /demo/egg
.byte 4 | 0x80
.ascii "data"
.byte 0x15, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /demo/data
; Directory: /demo/egg/data
.byte 13
.ascii "egg_data.narc"
.byte 8 | 0x80
@@ -705,41 +705,41 @@ FileNameTable:
.byte 0x16, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /egg/particle
; Directory: /demo/egg/data/particle
.byte 22
.ascii "egg_demo_particle.narc"
.byte 0 ; end
; Directory: /intro
; Directory: /demo/intro
.byte 10
.ascii "intro.narc"
.byte 13
.ascii "intro_tv.narc"
.byte 0 ; end
; Directory: /shinka
; Directory: /demo/shinka
.byte 4 | 0x80
.ascii "data"
.byte 0x19, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /demo/data
; Directory: /demo/shinka/data
.byte 8 | 0x80
.ascii "particle"
.byte 0x1A, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /shinka/particle
; Directory: /demo/shinka/data/particle
.byte 25
.ascii "shinka_demo_particle.narc"
.byte 0 ; end
; Directory: /syoujyou
; Directory: /demo/syoujyou
.byte 13
.ascii "syoujyou.narc"
.byte 0 ; end
; Directory: /title
; Directory: /demo/title
.byte 12
.ascii "op_demo.narc"
.byte 14
@@ -784,7 +784,7 @@ FileNameTable:
.byte 0x2B, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /areadata
; Directory: /fielddata/areadata
.byte 14
.ascii "area_data.narc"
.byte 16 | 0x80
@@ -798,68 +798,68 @@ FileNameTable:
.byte 0x22, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /fielddata/area_build_model
; Directory: /fielddata/areadata/area_build_model
.byte 15
.ascii "area_build.narc"
.byte 18
.ascii "areabm_texset.narc"
.byte 0 ; end
; Directory: /fielddata/area_map_tex
; Directory: /fielddata/areadata/area_map_tex
.byte 16
.ascii "map_tex_set.narc"
.byte 0 ; end
; Directory: /fielddata/area_move_model
; Directory: /fielddata/areadata/area_move_model
.byte 20
.ascii "move_model_list.narc"
.byte 0 ; end
; Directory: /build_model
; Directory: /fielddata/build_model
.byte 16
.ascii "build_model.narc"
.byte 22
.ascii "build_model_matshp.dat"
.byte 0 ; end
; Directory: /encountdata
; Directory: /fielddata/encountdata
.byte 15
.ascii "d_enc_data.narc"
.byte 15
.ascii "p_enc_data.narc"
.byte 0 ; end
; Directory: /eventdata
; Directory: /fielddata/eventdata
.byte 23
.ascii "zone_event_release.narc"
.byte 0 ; end
; Directory: /land_data
; Directory: /fielddata/land_data
.byte 22
.ascii "land_data_release.narc"
.byte 0 ; end
; Directory: /mapmatrix
; Directory: /fielddata/mapmatrix
.byte 15
.ascii "map_matrix.narc"
.byte 0 ; end
; Directory: /maptable
; Directory: /fielddata/maptable
.byte 11
.ascii "mapname.bin"
.byte 0 ; end
; Directory: /mm_list
; Directory: /fielddata/mm_list
.byte 20
.ascii "move_model_list.narc"
.byte 0 ; end
; Directory: /pokemon_trade
; Directory: /fielddata/pokemon_trade
.byte 14
.ascii "fld_trade.narc"
.byte 0 ; end
; Directory: /script
; Directory: /fielddata/script
.byte 20
.ascii "scr_seq_release.narc"
.byte 0 ; end
@@ -957,7 +957,7 @@ FileNameTable:
.byte 0x2E, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /itemdata
; Directory: /itemtool/itemdata
.byte 14
.ascii "item_data.narc"
.byte 14
@@ -974,7 +974,7 @@ FileNameTable:
.byte 0x30, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /scenario
; Directory: /msgdata/scenario
.byte 12
.ascii "scr_msg.narc"
.byte 0 ; end
@@ -1023,12 +1023,12 @@ FileNameTable:
.byte 0x3C, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /icongra
; Directory: /poketool/icongra
.byte 14
.ascii "poke_icon.narc"
.byte 0 ; end
; Directory: /personal
; Directory: /poketool/personal
.byte 8
.ascii "evo.narc"
.byte 12
@@ -1041,17 +1041,17 @@ FileNameTable:
.ascii "wotbl.narc"
.byte 0 ; end
; Directory: /pokeanm
; Directory: /poketool/pokeanm
.byte 12
.ascii "pokeanm.narc"
.byte 0 ; end
; Directory: /pokefoot
; Directory: /poketool/pokefoot
.byte 13
.ascii "pokefoot.narc"
.byte 0 ; end
; Directory: /pokegra
; Directory: /poketool/pokegra
.byte 11
.ascii "height.narc"
.byte 13
@@ -1068,28 +1068,28 @@ FileNameTable:
.ascii "pokegra.narc"
.byte 0 ; end
; Directory: /trainer
; Directory: /poketool/trainer
.byte 11
.ascii "trdata.narc"
.byte 11
.ascii "trpoke.narc"
.byte 0 ; end
; Directory: /trgra
; Directory: /poketool/trgra
.byte 11
.ascii "trbgra.narc"
.byte 11
.ascii "trfgra.narc"
.byte 0 ; end
; Directory: /trmsg
; Directory: /poketool/trmsg
.byte 10
.ascii "trtbl.narc"
.byte 13
.ascii "trtblofs.narc"
.byte 0 ; end
; Directory: /waza
; Directory: /poketool/waza
.byte 13
.ascii "waza_tbl.narc"
.byte 0 ; end
@@ -1100,7 +1100,7 @@ FileNameTable:
.byte 0x3E, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /eng
; Directory: /resource/eng
.byte 5 | 0x80
.ascii "trial"
.byte 0x3F, 0xF0 ; dir ID
@@ -1109,12 +1109,12 @@ FileNameTable:
.byte 0x40, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /resource/trial
; Directory: /resource/eng/trial
.byte 10
.ascii "trial.narc"
.byte 0 ; end
; Directory: /resource/zukan
; Directory: /resource/eng/zukan
.byte 10
.ascii "zukan.narc"
.byte 0 ; end
@@ -1135,7 +1135,7 @@ FileNameTable:
.byte 0x44, 0xF0 ; dir ID
.byte 0 ; end
; Directory: /effectclact
; Directory: /wazaeffect/effectclact
.byte 11
.ascii "wecell.narc"
.byte 14
@@ -1146,14 +1146,14 @@ FileNameTable:
.ascii "wepltt.narc"
.byte 0 ; end
; Directory: /effectdata
; Directory: /wazaeffect/effectdata
.byte 18
.ascii "ball_particle.narc"
.byte 18
.ascii "waza_particle.narc"
.byte 0 ; end
; Directory: /pt_debug
; Directory: /wazaeffect/pt_debug
.byte 19
.ascii "debug_particle.narc"
.byte 0 ; end
+2872 -2600
View File
File diff suppressed because it is too large Load Diff
+8 -34
View File
@@ -1,10 +1,8 @@
/* TEST */
MEMORY {
header (RWX) : ORIGIN=0, LENGTH=0
arm9 (RWX) : ORIGIN=0x2000000, LENGTH=0
unk_10b724 (RWX) : ORIGIN=0, LENGTH=0
arm9overlay (RWX) : ORIGIN=0, LENGTH=0
arm7 (RWX) : ORIGIN=0x2380000, LENGTH=0
arm9 (RWX) : ORIGIN=0x02000000, LENGTH=0
arm7 (RWX) : ORIGIN=0x02380000, LENGTH=0
filenametable (RWX) : ORIGIN=0, LENGTH=0
fileallocationtable (RWX) : ORIGIN=0, LENGTH=0
icon_title (RWX) : ORIGIN=0, LENGTH=0
@@ -374,35 +372,10 @@ SECTIONS {
} > header
.arm9 : AT (0x4000) {
secure.o (.text)
crt0.o (.text)
main.o (.text)
FUN_02000DF4.o (.text)
unk_02000E0C.o (.text)
string_util.o (.text)
unk_020023C0.o (.text)
filesystem.o (.text)
unk_02006864.o (.text)
script.o (.text)
unk_02038C78.o (.text)
scrcmd.o (.text)
unk_02046030.o (.text)
rom1.5.o (.text)
FUN_020C9C0C.o (.text)
rom2.o (.text)
/* rodata */
rom2.o (.data)
string_util.o (.data)
rom2_2.o (.data)
} > arm9
.unk_10b724 : AT (0x10B724) {
unk_10b724.o (.text)
} > unk_10b724
.arm9overlay : AT (0x10B800) {
arm9overlay.o (.text)
} > arm9overlay
_start = .;
_start_AutoloadDoneCallback = . + 0xA74;
INCLUDE arm9.bin
} > arm9
.FILE_10C400 : AT (0x10C400) {
FILE_10C400.o (.text) /* 0x10C400 */
@@ -667,7 +640,8 @@ SECTIONS {
} > rom3.FILE_30C600
.arm7 : AT(0x30D000) {
arm7_rom.o(.text)
ARM7AutoLoad = 0x02380158;
INCLUDE arm7.bin
} > arm7
.filenametable : AT(0x336400) {
+59 -372
View File
@@ -1,381 +1,60 @@
SDK_SYS_STACKSIZE = 0x00000000;
CONST_34 = 0x00000034;
CONST_3F = 0x0000003F;
OS_IrqHandler = 0x01FF8000;
FUN_01FF84A4 = 0x01FF84A4;
FUN_01FF84E4 = 0x01FF84E4;
FUN_01FF8544 = 0x01FF8544;
FUN_01FF857C = 0x01FF857C;
FUN_01FF85F0 = 0x01FF85F0;
FUN_0208ACEC = 0x0208ACEC;
FUN_0208AD80 = 0x0208AD80;
FUN_0208AF80 = 0x0208AF80;
FUN_0208AF94 = 0x0208AF94;
FUN_0208AFA8 = 0x0208AFA8;
FUN_0208B05C = 0x0208B05C;
FUN_0208B128 = 0x0208B128;
FUN_0208B4A0 = 0x0208B4A0;
FUN_02090CC8 = 0x02090CC8;
FUN_02090DB8 = 0x02090DB8;
FUN_02096B14 = 0x02096B14;
FUN_02096B78 = 0x02096B78;
FUN_02096CCC = 0x02096CCC;
FUN_02096D2C = 0x02096D2C;
FUN_02096DA0 = 0x02096DA0;
FUN_02096E90 = 0x02096E90;
FUN_02096F18 = 0x02096F18;
FUN_02096F80 = 0x02096F80;
FUN_02096FB0 = 0x02096FB0;
FUN_02096FF4 = 0x02096FF4;
FUN_0209700C = 0x0209700C;
FUN_020973B4 = 0x020973B4;
FUN_020ADDC0 = 0x020ADDC0;
FUN_020ADDC8 = 0x020ADDC8;
FUN_020ADDF0 = 0x020ADDF0;
FUN_020ADE2C = 0x020ADE2C;
FUN_020ADFA0 = 0x020ADFA0;
FUN_020ADFDC = 0x020ADFDC;
FUN_020ADFE8 = 0x020ADFE8;
FUN_020AE82C = 0x020AE82C;
FUN_020AE8CC = 0x020AE8CC;
FUN_020AE918 = 0x020AE918;
FUN_020AEB70 = 0x020AEB70;
FUN_020AEC7C = 0x020AEC7C;
FUN_020AEC98 = 0x020AEC98;
FUN_020AEE40 = 0x020AEE40;
FUN_020AEEB8 = 0x020AEEB8;
FUN_020AEF1C = 0x020AEF1C;
FUN_020AF894 = 0x020AF894;
FUN_020AF9C4 = 0x020AF9C4;
FUN_020AFA28 = 0x020AFA28;
FUN_020AFA80 = 0x020AFA80;
FUN_020AFBA8 = 0x020AFBA8;
FUN_020AFBFC = 0x020AFBFC;
FUN_020AFC04 = 0x020AFC04;
FUN_020AFD88 = 0x020AFD88;
FUN_020AFD94 = 0x020AFD94;
FUN_020AFEB8 = 0x020AFEB8;
FUN_020AFFD8 = 0x020AFFD8;
FUN_020B0030 = 0x020B0030;
FUN_020B0088 = 0x020B0088;
FUN_020B00F0 = 0x020B00F0;
FUN_020B0138 = 0x020B0138;
FUN_020B0180 = 0x020B0180;
FUN_020B0250 = 0x020B0250;
FUN_020B02C8 = 0x020B02C8;
FUN_020B0448 = 0x020B0448;
FUN_020B0870 = 0x020B0870;
FUN_020B0BB0 = 0x020B0BB0;
FUN_020B0C7C = 0x020B0C7C;
FUN_020B0E34 = 0x020B0E34;
FUN_020B0FC0 = 0x020B0FC0;
FUN_020B10E8 = 0x020B10E8;
FUN_020B1240 = 0x020B1240;
FUN_020B1340 = 0x020B1340;
FUN_020B1528 = 0x020B1528;
FUN_020B1768 = 0x020B1768;
FUN_020B19C4 = 0x020B19C4;
FUN_020B19DC = 0x020B19DC;
FUN_020B1A14 = 0x020B1A14;
FUN_020B1A24 = 0x020B1A24;
FUN_020B1EA4 = 0x020B1EA4;
FUN_020B1EC4 = 0x020B1EC4;
FUN_020B1EE4 = 0x020B1EE4;
FUN_020B1EFC = 0x020B1EFC;
FUN_020B1F80 = 0x020B1F80;
FUN_020B20C8 = 0x020B20C8;
FUN_020B2194 = 0x020B2194;
FUN_020B224C = 0x020B224C;
FUN_020B23D8 = 0x020B23D8;
FUN_020B242C = 0x020B242C;
FUN_020B2780 = 0x020B2780;
FUN_020B2794 = 0x020B2794;
FUN_020B28B4 = 0x020B28B4;
FUN_020B2A08 = 0x020B2A08;
FUN_020B2B08 = 0x020B2B08;
FUN_020B2B58 = 0x020B2B58;
FUN_020B2D9C = 0x020B2D9C;
FUN_020B317C = 0x020B317C;
FUN_020B31F0 = 0x020B31F0;
FUN_020B326C = 0x020B326C;
FUN_020B3334 = 0x020B3334;
FUN_020B3390 = 0x020B3390;
FUN_020B33A0 = 0x020B33A0;
FUN_020B4358 = 0x020B4358;
FUN_020B43A4 = 0x020B43A4;
FUN_020B442C = 0x020B442C;
FUN_020B4568 = 0x020B4568;
FUN_020B4F38 = 0x020B4F38;
FUN_020B502C = 0x020B502C;
FUN_020B772C = 0x020B772C;
FUN_020B7790 = 0x020B7790;
FUN_020B7C58 = 0x020B7C58;
FUN_020B7C78 = 0x020B7C78;
FUN_020B7CDC = 0x020B7CDC;
FUN_020B7CE4 = 0x020B7CE4;
FUN_020B7CF0 = 0x020B7CF0;
FUN_020B7D28 = 0x020B7D28;
FUN_020B7DFC = 0x020B7DFC;
FUN_020B7E10 = 0x020B7E10;
FUN_020B7E1C = 0x020B7E1C;
FUN_020B80B4 = 0x020B80B4;
FUN_020B844C = 0x020B844C;
FUN_020B8474 = 0x020B8474;
FUN_020B849C = 0x020B849C;
FUN_020BAC98 = 0x020BAC98;
FUN_020BAFB8 = 0x020BAFB8;
FUN_020BB1C0 = 0x020BB1C0;
FUN_020BB394 = 0x020BB394;
FUN_020BB59C = 0x020BB59C;
FUN_020BB7F4 = 0x020BB7F4;
FUN_020BC0FC = 0x020BC0FC;
FUN_020BC13C = 0x020BC13C;
FUN_020BC2A0 = 0x020BC2A0;
FUN_020C0174 = 0x020C0174;
FUN_020C01A0 = 0x020C01A0;
FUN_020C01D0 = 0x020C01D0;
FUN_020C03B8 = 0x020C03B8;
FUN_020C041C = 0x020C041C;
FUN_020C044C = 0x020C044C;
FUN_020C04DC = 0x020C04DC;
FUN_020C0510 = 0x020C0510;
FUN_020C054C = 0x020C054C;
FUN_020C0670 = 0x020C0670;
FUN_020C0688 = 0x020C0688;
FUN_020C0DD4 = 0x020C0DD4;
FUN_020C0E14 = 0x020C0E14;
FUN_020C0E7C = 0x020C0E7C;
FUN_020C0EA4 = 0x020C0EA4;
FUN_020C0EF4 = 0x020C0EF4;
FUN_020C0F30 = 0x020C0F30;
FUN_020C0F50 = 0x020C0F50;
FUN_020C0F68 = 0x020C0F68;
FUN_020C0F80 = 0x020C0F80;
FUN_020C0F8C = 0x020C0F8C;
FUN_020C0F9C = 0x020C0F9C;
FUN_020C0FDC = 0x020C0FDC;
FUN_020C1040 = 0x020C1040;
FUN_020C10A4 = 0x020C10A4;
FUN_020C1148 = 0x020C1148;
FUN_020C1180 = 0x020C1180;
FUN_020C1E58 = 0x020C1E58;
FUN_020C1E68 = 0x020C1E68;
FUN_020C1EA4 = 0x020C1EA4;
FUN_020C1F54 = 0x020C1F54;
FUN_020C1FA4 = 0x020C1FA4;
FUN_020C1FF0 = 0x020C1FF0;
FUN_020C20DC = 0x020C20DC;
FUN_020C2104 = 0x020C2104;
FUN_020C217C = 0x020C217C;
FUN_020C226C = 0x020C226C;
FUN_020C22D0 = 0x020C22D0;
FUN_020C23FC = 0x020C23FC;
FUN_020C26F8 = 0x020C26F8;
FUN_020C2828 = 0x020C2828;
FUN_020C290C = 0x020C290C;
FUN_020C2A94 = 0x020C2A94;
FUN_020C35E0 = 0x020C35E0;
FUN_020C360C = 0x020C360C;
FUN_020C3640 = 0x020C3640;
FUN_020C3674 = 0x020C3674;
FUN_020C36A8 = 0x020C36A8;
FUN_020C3910 = 0x020C3910;
FUN_020C3980 = 0x020C3980;
FUN_020C39CC = 0x020C39CC;
FUN_020C3EA4 = 0x020C3EA4;
FUN_020C3EB0 = 0x020C3EB0;
FUN_020C3F14 = 0x020C3F14;
FUN_020C3F38 = 0x020C3F38;
FUN_020C3F54 = 0x020C3F54;
FUN_020C3F70 = 0x020C3F70;
FUN_020C400C = 0x020C400C;
FUN_020C504C = 0x020C504C;
FUN_020C50B8 = 0x020C50B8;
FUN_020C5288 = 0x020C5288;
FUN_020C53C8 = 0x020C53C8;
FUN_020C5588 = 0x020C5588;
FUN_020C5600 = 0x020C5600;
FUN_020C5634 = 0x020C5634;
FUN_020C5668 = 0x020C5668;
FUN_020C5974 = 0x020C5974;
FUN_020C5978 = 0x020C5978;
FUN_020C59A4 = 0x020C59A4;
FUN_020C59C0 = 0x020C59C0;
FUN_020C5A34 = 0x020C5A34;
FUN_020C5A80 = 0x020C5A80;
FUN_020C5AC8 = 0x020C5AC8;
FUN_020C5AF8 = 0x020C5AF8;
FUN_020C5B28 = 0x020C5B28;
FUN_020C5D2C = 0x020C5D2C;
FUN_020C5D4C = 0x020C5D4C;
FUN_020C5D9C = 0x020C5D9C;
FUN_020C5DBC = 0x020C5DBC;
FUN_020C5E54 = 0x020C5E54;
FUN_020C600C = 0x020C600C;
FUN_020C6034 = 0x020C6034;
FUN_020C605C = 0x020C605C;
FUN_020C6070 = 0x020C6070;
FUN_020C6098 = 0x020C6098;
FUN_020C60AC = 0x020C60AC;
FUN_020C60C0 = 0x020C60C0;
FUN_020C60E4 = 0x020C60E4;
FUN_020C6108 = 0x020C6108;
FUN_020C611C = 0x020C611C;
FUN_020C6168 = 0x020C6168;
FUN_020C61F4 = 0x020C61F4;
FUN_020C6280 = 0x020C6280;
FUN_020C62FC = 0x020C62FC;
FUN_020C63A8 = 0x020C63A8;
FUN_020C65C0 = 0x020C65C0;
FUN_020C66B4 = 0x020C66B4;
FUN_020C68B8 = 0x020C68B8;
FUN_020C6970 = 0x020C6970;
FUN_020C6A84 = 0x020C6A84;
FUN_020C6BF0 = 0x020C6BF0;
FUN_020C6F60 = 0x020C6F60;
FUN_020C6FB0 = 0x020C6FB0;
FUN_020C7010 = 0x020C7010;
FUN_020C7058 = 0x020C7058;
FUN_020C70B0 = 0x020C70B0;
FUN_020C70D0 = 0x020C70D0;
FUN_020C7104 = 0x020C7104;
FUN_020C7124 = 0x020C7124;
FUN_020C74B8 = 0x020C74B8;
FUN_020C74DC = 0x020C74DC;
FUN_020C74F8 = 0x020C74F8;
FUN_020C7A14 = 0x020C7A14;
FUN_020C7B3C = 0x020C7B3C;
FUN_020C7C28 = 0x020C7C28;
FUN_020C7D28 = 0x020C7D28;
FUN_020C7E0C = 0x020C7E0C;
FUN_020C7E94 = 0x020C7E94;
FUN_020C7FF0 = 0x020C7FF0;
FUN_020C802C = 0x020C802C;
FUN_020C8068 = 0x020C8068;
FUN_020C80A4 = 0x020C80A4;
FUN_020C823C = 0x020C823C;
FUN_020C8538 = 0x020C8538;
FUN_020C8728 = 0x020C8728;
FUN_020C8774 = 0x020C8774;
FUN_020C87E8 = 0x020C87E8;
FUN_020C880C = 0x020C880C;
FUN_020C8858 = 0x020C8858;
FUN_020C88CC = 0x020C88CC;
FUN_020C88F0 = 0x020C88F0;
FUN_020C8948 = 0x020C8948;
FUN_020C89BC = 0x020C89BC;
FUN_020C8A2C = 0x020C8A2C;
FUN_020C8A90 = 0x020C8A90;
FUN_020C8B10 = 0x020C8B10;
FUN_020C8C14 = 0x020C8C14;
FUN_020C8C7C = 0x020C8C7C;
FUN_020C8CE4 = 0x020C8CE4;
FUN_020C8D4C = 0x020C8D4C;
FUN_020C8DB4 = 0x020C8DB4;
FUN_020C8E1C = 0x020C8E1C;
FUN_020C8E84 = 0x020C8E84;
FUN_020C8EEC = 0x020C8EEC;
FUN_020C8F54 = 0x020C8F54;
FUN_020C8FBC = 0x020C8FBC;
FUN_020C9024 = 0x020C9024;
FUN_020C908C = 0x020C908C;
FUN_020C90F4 = 0x020C90F4;
FUN_020C915C = 0x020C915C;
FUN_020C91C4 = 0x020C91C4;
FUN_020C922C = 0x020C922C;
FUN_020C9294 = 0x020C9294;
FUN_020C92F4 = 0x020C92F4;
FUN_020C9354 = 0x020C9354;
FUN_020C93BC = 0x020C93BC;
FUN_020C9418 = 0x020C9418;
FUN_020C9480 = 0x020C9480;
FUN_020C94E8 = 0x020C94E8;
FUN_020C9550 = 0x020C9550;
OS_SpinWait = 0x020CD380;
FUN_020D5150 = 0x020D5150;
FUN_020D5168 = 0x020D5168;
FUN_020D5180 = 0x020D5180;
FUN_020D526C = 0x020D526C;
PMi_SetLED = 0x020D5338;
PMi_SetLEDAsync = 0x020D5374;
PMi_ReadRegister = 0x020D5498;
PMi_SendSleepStart = 0x020D55C0;
PM_Init = 0x020D5764;
PMi_WaitBusy = 0x020D5884;
PMi_Lock = 0x020D58C4;
FUN_020D5F40 = 0x020D5F40;
FUN_020D614C = 0x020D614C;
FUN_020D6320 = 0x020D6320;
FUN_020D6578 = 0x020D6578;
FUN_020D660C = 0x020D660C;
FUN_020D66A0 = 0x020D66A0;
FUN_020D66B0 = 0x020D66B0;
CARD_UnlockRom = 0x020D66C0;
CARD_LockRom = 0x020D66E0;
FUN_020D6700 = 0x020D6700;
FUN_020D6D7C = 0x020D6D7C;
FUN_020D6DAC = 0x020D6DAC;
FUN_020D6DB8 = 0x020D6DB8;
FUN_020D6DC4 = 0x020D6DC4;
FUN_020D6F20 = 0x020D6F20;
CARD_Init = 0x020D7228;
CARDi_ReadRom = 0x020D72AC;
CARD_IsPulledOut = 0x020D7D18;
FUN_020D7E9C = 0x020D7E9C;
FUN_020D8A4C = 0x020D8A4C;
FUN_020D8AF0 = 0x020D8AF0;
FUN_020D8B94 = 0x020D8B94;
FUN_020D8C3C = 0x020D8C3C;
FUN_020D8F34 = 0x020D8F34;
FUN_020D9014 = 0x020D9014;
FUN_020D9060 = 0x020D9060;
FUN_020D9168 = 0x020D9168;
FUN_020D9244 = 0x020D9244;
FUN_020D940C = 0x020D940C;
FUN_020D950C = 0x020D950C;
FUN_020D9554 = 0x020D9554;
FUN_020D9624 = 0x020D9624;
FUN_020D972C = 0x020D972C;
FUN_020D9774 = 0x020D9774;
FUN_020D97B4 = 0x020D97B4;
FUN_020D9960 = 0x020D9960;
FUN_020D99EC = 0x020D99EC;
FUN_020D9B48 = 0x020D9B48;
FUN_020DAD74 = 0x020DAD74;
FUN_020DADD4 = 0x020DADD4;
FUN_020DAF30 = 0x020DAF30;
CTRDG_IsExisting = 0x020DB68C;
FUN_020DB7A8 = 0x020DB7A8;
CTRDG_Init = 0x020DBC80;
FUN_020DDC5C = 0x020DDC5C;
FUN_020DDCE4 = 0x020DDCE4;
FUN_020DDD28 = 0x020DDD28;
FUN_020DDD60 = 0x020DDD60;
FUN_020DDE44 = 0x020DDE44;
FUN_020DDF60 = 0x020DDF60;
FUN_020DE3F0 = 0x020DE3F0;
FUN_020DF438 = 0x020DF438;
FUN_020DF4A4 = 0x020DF4A4;
FUN_020DF510 = 0x020DF510;
FUN_020E2EAC = 0x020E2EAC;
FUN_020E2EC8 = 0x020E2EC8;
FUN_020EA980 = 0x020EA980;
FUN_020EAEF0 = 0x020EAEF0;
FUN_020EB010 = 0x020EB010;
FUN_020EB084 = 0x020EB084;
FUN_020EB4C0 = 0x020EB4C0;
FUN_020EB4F4 = 0x020EB4F4;
FUN_020EB534 = 0x020EB534;
FUN_020EB57C = 0x020EB57C;
FUN_020EB5C4 = 0x020EB5C4;
FUN_020EB7B0 = 0x020EB7B0;
FUN_020EBA38 = 0x020EBA38;
_ll_udiv = 0x020EBBE8;
SDK_IRQ_STACKSIZE = 0x00000400;
// .data
// OS
OSi_IrqCallbackInfoIndex = 0x02106818;
// DGT
Unk_0210683C = 0x0210683C;
Unk_02106840 = 0x02106840;
Unk_02106900 = 0x02106900;
Unk_02106A00 = 0x02106A00;
Unk_02106A04 = 0x02106A04;
// .bss
gBacklightTop = 0x02106FA0;
gBacklightTop_2 = 0x02106FA0;
gUnknown2106FB8 = 0x02106FB8;
gUnknown21C48B8 = 0x021C48B8;
gUnk021C4918 = 0x021C4918;
OSi_IrqCallbackInfo = 0x021D341C;
isInitialized = 0x021D347C;
OSi_StackForDestructor = 0x021D3480;
OSi_RescheduleCount = 0x021D3484;
OSi_ThreadIdCount = 0x021D3488;
OSi_SystemCallbackInSwitchThread = 0x021D348C;
OSi_CurrentThreadPtr = 0x021D3490;
OSi_IsThreadInitialized = 0x021D3494;
OSi_ThreadInfo = 0x021D3498;
OSi_IdleThread = 0x021D34A8;
OSi_LauncherThread = 0x021D3568;
OSi_IdleThreadStack = 0x021D3628;
OSi_Initialized = 0x021D36F0;
OSi_MainExArenaEnabled = 0x021D36F4;
OSi_HeapInfo = 0x021D36F8;
OSi_UserExceptionHandler = 0x021D371C;
OSi_UserExceptionHandlerArg = 0x21D3720;
OSi_DebuggerHandler = 0x021D3724;
OSi_ExContext = 0x021D3728;
OSi_TimerReserved = 0x021D37A8;
OSi_UseTick = 0x021D37AC;
OSi_NeedResetTimer = 0x021D37B0;
OSi_TickCounter = 0x021D37B4;
OSi_UseAlarm = 0x021D37BC;
OSi_AlarmQueue = 0x021D37C0;
OSi_UseVAlarm = 0x021D37C8;
OSi_PreviousVCount = 0x021D37CC;
OSi_VFrameCount = 0x021D37D0;
OSi_VAlarmQueue = 0x021D37D4;
OSi_IsInitReset = 0x021D37DC;
OSi_IsResetOccurred = 0x021D37E0;
OSi_vramExclusive = 0x021D37E4;
OSi_vramLockId = 0x021D37E8;
cardi_common = 0x021D55C0;
// Overlay
FUN_021D74E0 = 0x021D74E0;
FUN_021D76AC = 0x021D76AC;
gUnk021D76C8 = 0x021D76C8;
@@ -509,6 +188,8 @@ FUN_021E856C = 0x021E856C;
FUN_021E8588 = 0x021E8588;
FUN_021E85E4 = 0x021E85E4;
FUN_021E85FC = 0x021E85FC;
FUN_021EAE90 = 0x021EAE90;
FUN_021EB044 = 0x021EB044;
FUN_021EC57C = 0x021EC57C;
FUN_021EC71C = 0x021EC71C;
FUN_021EC854 = 0x021EC854;
@@ -814,6 +495,12 @@ FUN_0224F12C = 0x0224F12C;
FUN_02252534 = 0x02252534;
FUN_02252538 = 0x02252538;
FUN_022567E0 = 0x022567E0;
SDK_AUTOLOAD_DTCM_START = 0x027E0000;
SDK_STATIC_BSS_END = 0x021D74E0;
// ???
SDK_MAIN_ARENA_LO = 0x0225FFA0;
// EWRAM
SDK_SECTION_ARENA_EX_START = 0x023E0000;
// DTCM
gUnk027FFC20 = 0x027FFC20;