This commit is contained in:
Louis Hampton
2020-06-20 19:01:00 +01:00
1744 changed files with 239102 additions and 163201 deletions

3
.gitignore vendored
View File

@@ -47,4 +47,5 @@ symbols.csv
# NARCs
*.narc
*.arc
!files/poketool/personal/pms.narc
files/**/*.c
*.o

View File

@@ -17,7 +17,6 @@ cache:
install:
# These files are only accessible from Travis CI IP Addresses to prevent piracy.
- wget http://private.martmists.com/mwccarm.zip
- wget http://private.martmists.com/baserom.nds
- wget http://private.martmists.com/nitro.zip
- unzip mwccarm.zip
- mv mwccarm tools
@@ -34,3 +33,6 @@ notifications:
after_success:
- .travis/calcrom/webhook.sh pokediamond
after_failure:
- .travis/post_failed.sh pokediamond

8
.travis/post_failed.sh Normal file
View File

@@ -0,0 +1,8 @@
#!/bin/bash -ex
ZIPFILE=${HOME}/pokediamond.zip
build_name=${1:-pokediamond}
zip -r ${ZIPFILE} ${TRAVIS_BUILD_DIR}
ANONFILES_URL=$(curl -F "file=@$ZIPFILE" https://api.anonfiles.com/upload | grep -Po '"short": "\K[^"]*')
curl -d "{\"username\": \"$CALCROM_DISCORD_WEBHOOK_USERNAME\", \"avatar_url\": \"$CALCROM_DISCORD_WEBHOOK_AVATAR_URL_NOTOK\", \"content\":\"ERROR IN $build_name\\nBranch: $TRAVIS_BRANCH\\nPull request: $TRAVIS_PULL_REQUEST\\nBuild state: $ANONFILES_URL\"}" -H "Content-Type: application/json" -X POST $CALCROM_DISCORD_WEBHOOK_URL

View File

@@ -1,6 +1,6 @@
cmake_minimum_required (VERSION 2.8.11)
project(PokeDiamond)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
# TODO: Add commands
@@ -11,7 +11,14 @@ add_compile_options(-fms-extensions)
file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "*.c" "*.cpp")
add_executable(PokeDiamond ${SOURCES})
target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include)
target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include arm7/lib/include)
add_executable(calcrom .travis/calcrom/calcrom.cpp)
target_include_directories(calcrom PRIVATE /usr/local/include)
add_executable(knarc tools/knarc/Source.cpp tools/knarc/Narc.cpp)
add_executable(jsonproc tools/jsonproc/jsonproc.cpp)
target_include_directories(jsonproc PRIVATE SYSTEM tools/jsonproc)
add_executable(o2narc tools/o2narc/o2narc.cpp)

View File

@@ -105,11 +105,11 @@ OBJDUMP_MODE="${OBJDUMP_MODE:-force-thumb}"
OBJDUMP_VMA="${OBJDUMP_VMA:-0x02000000}"
OBJDUMP="arm-none-eabi-objdump -Drz -bbinary -m${OBJDUMP_ARCH} -M${OBJDUMP_MODE}"
OPTIONS="--start-address=$(($1 + OBJDUMP_VMA)) --stop-address=$(($1 + $2 + OBJDUMP_VMA))"
$OBJDUMP $OPTIONS baserom.sbin > baserom.dump || exit 1
$OBJDUMP $OPTIONS build/arm9.sbin > arm9.dump
diff -u baserom.dump arm9.dump
$OBJDUMP $OPTIONS $(dirname $0)/baserom.sbin > $(dirname $0)/baserom.dump || exit 1
$OBJDUMP $OPTIONS $(dirname $0)/build/arm9.sbin > $(dirname $0)/arm9.dump
diff -u $(dirname $0)/baserom.dump $(dirname $0)/arm9.dump
```
Place a clean version of the ARM9 binary as arm9/baserom.sbin. In your terminal, navigate to the arm9 directory and run `./asmdiff.sh 0 $(wc -c baserom.sbin) | less`, then scroll through to where the grievances begin. Fix any obvious problems in your code/tree, and rerun. If the differences are extensive, you may have induced a shift in the binary either by writing incorrect code or placing it incorrectly into the LCF. *Tip: you can specify a start address and size to only compare the portion of the ROM you are working on.*
Place a clean version of the ARM9 binary as arm9/baserom.sbin (arm9/build/arm9.bin from a successful build should suffice). In your terminal, navigate to the arm9 directory and run `./asmdiff.sh 0 $(wc -c baserom.sbin) | less`, then scroll through to where the grievances begin. Fix any obvious problems in your code/tree, and rerun. If the differences are extensive, you may have induced a shift in the binary either by writing incorrect code or placing it incorrectly into the LCF. *Tip: you can specify a start address and size to only compare the portion of the ROM you are working on.*
## Decompiling data

View File

@@ -1,18 +1,14 @@
### 1. Copy baserom(s) into root folder
Put a clean copy of Pokemon Diamond (US) nds rom at `./baserom.nds`.
### 2. Install MWCC compiler
### 1. Install MWCC compiler
The build system requires the use of the Metrowerk C Compiler 2.0/base to compile matching files. We cannot distribute the correct compiler here so join the PRET discord and download the pinned mwccarm.zip zip in #pokediamond and extract it to tools/. Run each of the executables so they ask for a license.dat and provide the one in the rar (it may also ask for it when compiling). This only needs to be done once.
In the future, a GCC option will be available so MWCC is not required to build, however it is required for a matching ROM.
### 3. Install Nitro SDK
### 2. Install Nitro SDK
As with the compiler, the Nitro SDK is proprietary and cannot be distributed here. Opened the pinned Mega folder in the PRET discord and download "NITRO SDK v3.0.zip" and "NITRO SDK V3.0 Plus 2.zip" from the "SDK System Libraries" folder. Extract v3.0.zip into a separate folder, then extract v3.0 Plus 2.zip into the same folder, overwriting when prompted. Copy the contents of tools/bin from the Nitro SDK to tools/bin in your pokediamond clone. Finally, copy include/nitro/specfiles/ARM7-TS.lcf.template into the arm7 subdirectory, and include/nitro/specfiles/ARM9-TS.lcf.template into the arm9 subdirectory.
### 4. Dependencies
### 3. Dependencies
#### Linux
@@ -48,7 +44,7 @@ You will still require the following packages:
Install them using either the Cygwin package manager or using pacman on Msys2.
### 5. Build ROM
### 4. Build ROM
Run `make` to build the ROM.

View File

@@ -32,9 +32,19 @@ endif
ifeq ($(OS),Windows_NT)
EXE := .exe
WINE :=
GREP := grep -P
SED := sed -r
else
EXE :=
WINE := wine
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
GREP := grep -E
SED := perl -p -e
else
GREP := grep -P
SED := sed -r
endif
endif
ifeq ($(NOWINE),1)
@@ -165,7 +175,7 @@ SBINFILES = $(BINFILES:%.bin=%.sbin)
##################### Compiler Options #######################
MWCCVERSION = 2.0/base
MWCCVERSION = 2.0/sp1
CROSS := arm-none-eabi-
@@ -191,7 +201,7 @@ OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o
ASFLAGS = -proc arm5te
CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/include -W all
CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/include -W all
LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
####################### Other Tools #########################
@@ -199,7 +209,9 @@ LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
# DS TOOLS
TOOLS_DIR = tools
SHA1SUM = sha1sum
CSV2BIN = $(TOOLS_DIR)/csv2bin/csv2bin
JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc
O2NARC = $(TOOLS_DIR)/o2narc/o2narc
GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx
MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE) -q
MAKEBANNER = $(WINE) $(TOOLS_DIR)/bin/makebanner.exe
@@ -242,12 +254,12 @@ clean: mostlyclean
$(MAKE) -C arm7 clean
$(MAKE) -C tools/mwasmarm_patcher clean
$(RM) $(filter-out files/poketool/personal/pms.narc,$(filter %.narc %.arc,$(HOSTFS_FILES)))
$(MAKE) -C files/poketool/personal/growtbl 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) {} +
find files \( -name '*.c' -o -name '*.o' \) -exec $(RM) {} +
tidy:
$(MAKE) -C arm9 tidy
@@ -331,7 +343,7 @@ $(BUILD_DIR)/pokediamond_bnr.bin: pokediamond.bsf graphics/icon.4bpp graphics/ic
$(MAKEBANNER) $< $@
symbols.csv: arm9 arm7
(echo "Name,Location"; grep -P " *[0-9A-F]{8} [0-9A-F]{8} \S+ +\w+\t\(\w+\.o\)" arm9/build/arm9.elf.xMAP arm7/build/arm7.elf.xMAP | sed -r 's/ *([0-9A-F]{8}) [0-9A-F]{8} \S+ +(\w+)\t\(\w+\.o\)/\2,\1/g' | cut -d: -f2) > $@
(echo "Name,Location"; $(GREP) " *[0-9A-F]{8} [0-9A-F]{8} \S+ +\w+\t\(\w+\.o\)" arm9/build/arm9.elf.xMAP arm7/build/arm7.elf.xMAP | $(SED) 's/ *([0-9A-F]{8}) [0-9A-F]{8} \S+ +(\w+)\t\(\w+\.o\)/\2,\1/g' | cut -d: -f2) > $@
### Debug Print ###

View File

@@ -8,6 +8,8 @@ It builds the following ROM:
To set up the repository, see [INSTALL.md](INSTALL.md).
For contributor instructions, see [CONTRIBUTING.md](CONTRIBUTING.md).
## See also
Other disassembly and/or decompilation projects:

View File

@@ -196,7 +196,6 @@ DUMMY != mkdir -p $(ALL_DIRS)
%.pal: ;
# Included files
baserom.%: ;
%.h: ;
%.inc: ;

View File

@@ -68,8 +68,8 @@ Autoload WRAM
Object SPI_pm.o
Object SPI_mic.o
Object CTRDG.o
Object CTRDG_sp.o
Object wram2.o
Object wram_data.o
Object wram_bss.o
}

View File

@@ -215,4 +215,3 @@ _038010C0:
bx lr
_038010CC: .word _038099A4
_038010D0: .word FUN_03801048
.balign 2, 0 ; Don't pad with nop

542
arm7/asm/CTRDG_sp.s Normal file
View File

@@ -0,0 +1,542 @@
.include "asm/macros.inc"
.include "global.inc"
.section .data
.global _03807704
_03807704:
.word 0x00000001
.global _03807708
_03807708:
.word 0xFFFFFFFF
.section .bss
.global _03809FBC
_03809FBC: ;0x03809FBC
.space 0x03809FC0 - 0x03809FBC
.global current_vib
current_vib: ;0x03809FC0
.space 0x03809FC4 - 0x03809FC0
.global _03809FC4
_03809FC4: ;0x03809FC4
.space 0x03809FC8 - 0x03809FC4
.global _03809FC8
_03809FC8: ;0x03809FC8
.space 0x03809FCC - 0x03809FC8
.global _03809FCC
_03809FCC: ;0x03809FCC
.space 0x03809FD0 - 0x03809FCC
.global _03809FD0
_03809FD0: ;0x03809FD0
.space 0x03809FD4 - 0x03809FD0
.global _03809FD4
_03809FD4: ;0x03809FD4
.space 0x03809FEC - 0x03809FD4
.global _03809FEC
_03809FEC: ;0x03809FEC
.space 0x0380A018 - 0x03809FEC
.section .text
arm_func_start FUN_03803BD4
FUN_03803BD4: ;@ 0x03803BD4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
and r0, r1, #63 ;@ 0x3f
cmp r0, #3
bne _03803C40
ldr r0, _03803C50 ;@ =0x01FFFFC0
and r0, r1, r0
mov r2, r0, lsr #6
ldr r1, _03803C54 ;@ =0x04000204
ldrh r0, [r1]
bic r0, r0, #96 ;@ 0x60
orr r0, r0, r2, lsl #5
strh r0, [r1]
mov r7, #1
mov r6, #17
mov r5, #18
mov r4, #0
b _03803C24
_03803C1C:
mov r0, r7
bl FUN_037F8CB4
_03803C24:
mov r0, r6
mov r1, r5
mov r2, r4
bl PXI_SendWordByFifo
cmp r0, #0
bne _03803C1C
b _03803C44
_03803C40:
bl OS_Terminate
_03803C44:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_03803C50: .word 0x01FFFFC0
_03803C54: .word 0x04000204
arm_func_start CTRDGi_TerminateARM7
CTRDGi_TerminateARM7: ;@ 0x03803C58
stmfd sp!, {lr}
sub sp, sp, #4
mov r0, #0
bl CTRDG_VibPulseEdgeUpdate
bl SND_BeginSleep
bl WVR_Shutdown
bl OS_Terminate
add sp, sp, #4
ldmia sp!, {lr}
bx lr
arm_func_start CTRDG_CheckPullOut_Polling
CTRDG_CheckPullOut_Polling: ;@ 0x03803C80
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r1, _03803D80 ;@ =_03807708
ldr r3, [r1]
mvn r0, #0
cmp r3, r0
ldreq r0, _03803D84 ;@ =0x027FFC3C
ldreq r0, [r0]
addeq r0, r0, #10
streq r0, [r1]
beq _03803D74
ldr r0, _03803D88 ;@ =_03809FCC
ldr r0, [r0]
cmp r0, #0
bne _03803D74
ldr r0, _03803D8C ;@ =_03809FC8
ldr r0, [r0]
cmp r0, #0
bne _03803D74
ldr r2, _03803D84 ;@ =0x027FFC3C
ldr r0, [r2]
cmp r0, r3
bcc _03803D74
ldr r0, [r2]
add r0, r0, #10
str r0, [r1]
bl CTRDG_IsPulledOut
ldr r1, _03803D8C ;@ =_03809FC8
str r0, [r1]
bl CTRDG_IsExisting
cmp r0, #0
bne _03803D28
ldr r0, _03803D90 ;@ =_03807704
ldr r0, [r0]
cmp r0, #0
movne r1, #1
ldrne r0, _03803D88 ;@ =_03809FCC
strne r1, [r0]
bne _03803D74
mov r1, #1
ldr r0, _03803D8C ;@ =_03809FC8
str r1, [r0]
_03803D28:
mov r7, #0
ldr r0, _03803D90 ;@ =_03807704
str r7, [r0]
ldr r0, _03803D8C ;@ =_03809FC8
ldr r0, [r0]
cmp r0, #0
beq _03803D74
mov r6, #100 ;@ 0x64
mov r5, #13
mov r4, #17
b _03803D5C
_03803D54:
mov r0, r6
bl OS_Sleep
_03803D5C:
mov r0, r5
mov r1, r4
mov r2, r7
bl PXI_SendWordByFifo
cmp r0, #0
bne _03803D54
_03803D74:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_03803D80: .word _03807708
_03803D84: .word 0x027FFC3C
_03803D88: .word _03809FCC
_03803D8C: .word _03809FC8
_03803D90: .word _03807704
arm_func_start CTRDGi_IsNinLogoOfAgb
CTRDGi_IsNinLogoOfAgb: ;@ 0x03803D94
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r7, r0
mov r0, #134217728 ;@ 0x8000000
add r6, r0, #4
mov r4, #1
bl OS_GetLockID
mov r0, r0, lsl #16
mov r5, r0, lsr #16
mov r0, r5
bl OS_LockCartridge
mov r1, #0
ldr r0, _03803E3C ;@ =0x0000FFFF
eor r2, r0, #3
mov r2, r2, lsl #16
mov lr, r2, lsr #16
eor r2, r0, #132 ;@ 0x84
mov r2, r2, lsl #16
mov r8, r2, lsr #16
b _03803E18
_03803DE0:
mov ip, r0
cmp r1, #76 ;@ 0x4c
moveq ip, r8
beq _03803DF8
cmp r1, #77 ;@ 0x4d
moveq ip, lr
_03803DF8:
mov r3, r1, lsl #1
ldrh r2, [r7, r3]
and ip, ip, r2
ldrh r2, [r6, r3]
cmp ip, r2
movne r4, #0
bne _03803E20
add r1, r1, #1
_03803E18:
cmp r1, #78 ;@ 0x4e
blt _03803DE0
_03803E20:
mov r0, r5
bl OS_UnLockCartridge
mov r0, r5
bl OS_ReleaseLockID
mov r0, r4
ldmia sp!, {r4, r5, r6, r7, r8, lr}
bx lr
_03803E3C: .word 0x0000FFFF
arm_func_start FUN_03803E40
FUN_03803E40: ;@ 0x03803E40
ldr r1, _03803E54 ;@ =current_vib
str r0, [r1]
ldr r1, _03803E58 ;@ =0x08001000
strh r0, [r1]
bx lr
_03803E54: .word current_vib
_03803E58: .word 0x08001000
arm_func_start CTRDG_VibPulseEdgeUpdate
CTRDG_VibPulseEdgeUpdate: ;@ 0x03803E5C
stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #4
movs r5, r0
beq _03803E9C
ldr r0, [r5]
cmp r0, #0
bne _03803E9C
ldr r0, [r5, #68] ;@ 0x44
add r0, r0, #1
str r0, [r5, #68] ;@ 0x44
ldr r1, [r5, #64] ;@ 0x40
cmp r1, #0
beq _03803E9C
ldr r0, [r5, #68] ;@ 0x44
cmp r0, r1
movhi r5, #0
_03803E9C:
cmp r5, #0
beq _03803EB0
ldr r0, [r5, #60] ;@ 0x3c
cmp r0, #0
bne _03803F48
_03803EB0:
bl OS_DisableInterrupts
mov r9, r0
ldr r0, _03804068 ;@ =current_vib
ldr r0, [r0]
cmp r0, #2
bne _03803F34
mov r8, #0
ldr r7, _0380406C ;@ =0x027FFFE8
ldr r4, _03804070 ;@ =_03809FBC
ldr fp, _03804074 ;@ =0x000080E8
mov r6, r8
mov r5, #1
b _03803F2C
_03803EE4:
mov r0, r7
bl OS_ReadOwnerOfLockWord
ands sl, r0, #128 ;@ 0x80
bne _03803F04
ldrh r0, [r4]
bl OS_TryLockCartridge
cmp r0, #0
bne _03803F24
_03803F04:
mov r0, r6
bl FUN_03803E40
mov r8, r5
cmp sl, #0
bne _03803F2C
ldrh r0, [r4]
bl OS_UnlockCartridge
b _03803F2C
_03803F24:
mov r0, fp
bl OS_SpinWait
_03803F2C:
cmp r8, #0
beq _03803EE4
_03803F34:
ldr r0, _03804078 ;@ =_03809FEC
bl OS_CancelAlarm
mov r0, r9
bl OS_RestoreInterrupts
b _0380405C
_03803F48:
cmp r5, #0
beq _0380405C
ldr r0, _0380406C ;@ =0x027FFFE8
bl OS_ReadOwnerOfLockWord
ands r4, r0, #128 ;@ 0x80
bne _03803F74
ldr r0, _03804070 ;@ =_03809FBC
ldrh r0, [r0]
bl OS_TryLockCartridge
cmp r0, #0
bne _03804044
_03803F74:
ldr r1, [r5]
ldr r0, [r5, #4]
cmp r1, r0
bne _03803FB0
mov r0, #0
bl FUN_03803E40
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, [r5, #8]
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
mov r0, #0
str r0, [r5]
b _0380402C
_03803FB0:
ands r0, r1, #1
beq _03803FF4
mov r0, #0
bl FUN_03803E40
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, [r5]
mov r1, r1, lsr #1
add r1, r5, r1, lsl #2
ldr r1, [r1, #36] ;@ 0x24
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _0380402C
_03803FF4:
mov r0, #2
bl FUN_03803E40
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, [r5]
mov r1, r1, lsr #1
add r1, r5, r1, lsl #2
ldr r1, [r1, #12]
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
_0380402C:
cmp r4, #0
bne _0380405C
ldr r0, _03804070 ;@ =_03809FBC
ldrh r0, [r0]
bl OS_UnlockCartridge
b _0380405C
_03804044:
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, _03804080 ;@ =0x0000020B
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
_0380405C:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
bx lr
_03804068: .word current_vib
_0380406C: .word 0x027FFFE8
_03804070: .word _03809FBC
_03804074: .word 0x000080E8
_03804078: .word _03809FEC
_0380407C: .word CTRDG_VibPulseEdgeUpdate
_03804080: .word 0x0000020B
_03804084:
mov r0, r1
ldr ip, _03804090 ;@ =CTRDG_VibPulseEdgeUpdate
bx ip
_03804090: .word CTRDG_VibPulseEdgeUpdate
arm_func_start CTRDGi_CallbackForPulledOut
CTRDGi_CallbackForPulledOut: ;@ 0x03804094
stmfd sp!, {lr}
sub sp, sp, #4
and r0, r1, #63 ;@ 0x3ff
cmp r0, #2
bne _038040B0
bl CTRDGi_TerminateARM7
b _038040B4
_038040B0:
bl OS_Terminate
_038040B4:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
arm_func_start CTRDGi_CallbackForInitModuleInfo
CTRDGi_CallbackForInitModuleInfo: ;@ 0x038040C0
stmfd sp!, {lr}
sub sp, sp, #4
and r0, r1, #63 ;@ 0x3f
cmp r0, #1
ldreq r0, _038040F4 ;@ =_03809FD4
streq r1, [r0]
moveq r1, #1
streq r1, [r0, #16]
beq _038040E8
bl OS_Terminate
_038040E8:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_038040F4: .word _03809FD4
arm_func_start CTRDGi_InitModuleInfo
CTRDGi_InitModuleInfo: ;@ 0x038040F8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r0, _038041C8 ;@ =_03809FC4
ldr r1, [r0]
cmp r1, #0
bne _038041BC
mov r1, #1
str r1, [r0]
ldr r0, _038041CC ;@ =0x04000300
ldrh r0, [r0]
ands r0, r0, #1
beq _038041BC
mov r0, #262144 ;@ 0x40000
bl OS_SetIrqMask
mov r5, r0
ldr r1, _038041D0 ;@ =0x04000208
ldrh r4, [r1]
mov r0, #1
strh r0, [r1]
mov r7, #256 ;@ 0x100
ldr r6, _038041D4 ;@ =_03809FD4
b _03804158
_03804150:
mov r0, r7
bl FUN_037F8CB4
_03804158:
ldr r0, [r6, #16]
cmp r0, #1
bne _03804150
ldr r1, [r6]
ldr r0, _038041D8 ;@ =0x01FFFFC0
and r0, r1, r0
mov r0, r0, lsr #6
mov r0, r0, lsl #5
add r0, r0, #33554432 ;@ 0x2000000
add r0, r0, #4
bl CTRDGi_IsNinLogoOfAgb
ldr r2, _038041DC ;@ =0x027FFC30
ldrb r1, [r2, #5]
bic r1, r1, #1
and r0, r0, #255 ;@ 0xff
and r0, r0, #1
orr r0, r1, r0
strb r0, [r2, #5]
mov r0, #1
bl CTRDGi_SendtoPxi
ldr r1, _038041D0 ;@ =0x04000208
ldrh r0, [r1]
strh r4, [r1]
mov r0, r5
bl OS_SetIrqMask
_038041BC:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_038041C8: .word _03809FC4
_038041CC: .word 0x04000300
_038041D0: .word 0x04000208
_038041D4: .word _03809FD4
_038041D8: .word 0x01FFFFC0
_038041DC: .word 0x027FFC30
arm_func_start CTRDG_Init
CTRDG_Init: ;@ 0x038041E0
stmfd sp!, {lr}
sub sp, sp, #4
bl OS_InitTick
bl OS_InitAlarm
ldr r0, _03804270 ;@ =_03809FEC
bl OS_CreateAlarm
ldr r0, _03804274 ;@ =_03809FD0
ldr r1, [r0]
cmp r1, #0
bne _03804264
mov r1, #1
str r1, [r0]
bl CTRDGi_InitCommon
bl OS_GetLockID
mvn r1, #2
cmp r0, r1
beq _03804264
ldr r1, _03804278 ;@ =_03809FBC
strh r0, [r1]
bl PXI_Init
mov r0, #13
ldr r1, _0380427C ;@ =CTRDGi_CallbackForInitModuleInfo
bl PXI_SetFifoRecvCallback
bl CTRDGi_InitModuleInfo
mov r0, #13
ldr r1, _03804280 ;@ =CTRDGi_CallbackForPulledOut
bl PXI_SetFifoRecvCallback
mov r0, #16
ldr r1, _03804284 ;@ =_03804084
bl PXI_SetFifoRecvCallback
mov r0, #17
ldr r1, _03804288 ;@ =FUN_03803BD4
bl PXI_SetFifoRecvCallback
_03804264:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_03804270: .word _03809FEC
_03804274: .word _03809FD0
_03804278: .word _03809FBC
_0380427C: .word CTRDGi_CallbackForInitModuleInfo
_03804280: .word CTRDGi_CallbackForPulledOut
_03804284: .word _03804084
_03804288: .word FUN_03803BD4

View File

@@ -1,131 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start OSi_DequeueItem
OSi_DequeueItem: ; 0x037F99E8
ldr r2, [r1, #16]
ldr r1, [r1, #20]
cmp r2, #0
streq r1, [r0, #112] ; 0x70
strne r1, [r2, #20]
cmp r1, #0
streq r2, [r0, #108] ; 0x6c
strne r2, [r1, #16]
bx lr
arm_func_start OSi_EnqueueTail
OSi_EnqueueTail: ; 0x037F9A0C
ldr r2, [r0, #112] ; 0x70
cmp r2, #0
streq r1, [r0, #108] ; 0x6c
strne r1, [r2, #16]
str r2, [r1, #20]
mov r2, #0
str r2, [r1, #16]
str r1, [r0, #112] ; 0x70
bx lr
arm_func_start OSi_UnlockAllMutex
OSi_UnlockAllMutex: ; 0x037F9A30
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
add r5, r6, #108 ; 0x6c
mov r4, #0
b _037F9A58
_037F9A44:
mov r0, r5
bl OSi_RemoveMutexLinkFromQueue
str r4, [r0, #12]
str r4, [r0, #8]
bl OS_WakeupThread
_037F9A58:
ldr r0, [r6, #108] ; 0x6c
cmp r0, #0
bne _037F9A44
ldmia sp!, {r4, r5, r6, lr}
bx lr
arm_func_start OS_UnlockMutex
OS_UnlockMutex: ; 0x037F9A6C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
bl OS_DisableInterrupts
mov r4, r0
ldr r0, _037F9AD8 ; =OSi_ThreadInfo
ldr r0, [r0, #4]
ldr r1, [r5, #8]
cmp r1, r0
bne _037F9AC4
ldr r1, [r5, #12]
sub r1, r1, #1
str r1, [r5, #12]
ldr r1, [r5, #12]
cmp r1, #0
bne _037F9AC4
mov r1, r5
bl OSi_DequeueItem
mov r0, #0
str r0, [r5, #8]
mov r0, r5
bl OS_WakeupThread
_037F9AC4:
mov r0, r4
bl OS_RestoreInterrupts
add sp, sp, #4
ldmia sp!, {r4, r5, lr}
bx lr
_037F9AD8: .word OSi_ThreadInfo
arm_func_start OS_LockMutex
OS_LockMutex: ; 0x037F9ADC
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r5, r0
bl OS_DisableInterrupts
mov r4, r0
ldr r0, _037F9B64 ; =OSi_ThreadInfo
ldr r7, [r0, #4]
mov r6, #0
_037F9AFC:
ldr r0, [r5, #8]
cmp r0, #0
bne _037F9B28
str r7, [r5, #8]
ldr r0, [r5, #12]
add r0, r0, #1
str r0, [r5, #12]
mov r0, r7
mov r1, r5
bl OSi_EnqueueTail
b _037F9B50
_037F9B28:
cmp r0, r7
ldreq r0, [r5, #12]
addeq r0, r0, #1
streq r0, [r5, #12]
beq _037F9B50
str r5, [r7, #104] ; 0x68
mov r0, r5
bl OS_SleepThread
str r6, [r7, #104] ; 0x68
b _037F9AFC
_037F9B50:
mov r0, r4
bl OS_RestoreInterrupts
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_037F9B64: .word OSi_ThreadInfo
arm_func_start OS_InitMutex
OS_InitMutex: ; 0x037F9B68
mov r2, #0
str r2, [r0, #4]
ldr r1, [r0, #4]
str r1, [r0]
str r2, [r0, #8]
str r2, [r0, #12]
bx lr

View File

@@ -3,500 +3,6 @@
.section .text
arm_func_start FUN_03803BD4
FUN_03803BD4: ;@ 0x03803BD4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
and r0, r1, #63 ;@ 0x3f
cmp r0, #3
bne _03803C40
ldr r0, _03803C50 ;@ =0x01FFFFC0
and r0, r1, r0
mov r2, r0, lsr #6
ldr r1, _03803C54 ;@ =0x04000204
ldrh r0, [r1]
bic r0, r0, #96 ;@ 0x60
orr r0, r0, r2, lsl #5
strh r0, [r1]
mov r7, #1
mov r6, #17
mov r5, #18
mov r4, #0
b _03803C24
_03803C1C:
mov r0, r7
bl FUN_037F8CB4
_03803C24:
mov r0, r6
mov r1, r5
mov r2, r4
bl PXI_SendWordByFifo
cmp r0, #0
bne _03803C1C
b _03803C44
_03803C40:
bl OS_Terminate
_03803C44:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_03803C50: .word 0x01FFFFC0
_03803C54: .word 0x04000204
arm_func_start FUN_03803C58
FUN_03803C58: ;@ 0x03803C58
stmfd sp!, {lr}
sub sp, sp, #4
mov r0, #0
bl CTRDG_VibPulseEdgeUpdate
bl SND_BeginSleep
bl WVR_Shutdown
bl OS_Terminate
add sp, sp, #4
ldmia sp!, {lr}
bx lr
arm_func_start CTRDG_CheckPullOut_Polling
CTRDG_CheckPullOut_Polling: ;@ 0x03803C80
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r1, _03803D80 ;@ =_03807708
ldr r3, [r1]
mvn r0, #0
cmp r3, r0
ldreq r0, _03803D84 ;@ =0x027FFC3C
ldreq r0, [r0]
addeq r0, r0, #10
streq r0, [r1]
beq _03803D74
ldr r0, _03803D88 ;@ =_03809FCC
ldr r0, [r0]
cmp r0, #0
bne _03803D74
ldr r0, _03803D8C ;@ =_03809FC8
ldr r0, [r0]
cmp r0, #0
bne _03803D74
ldr r2, _03803D84 ;@ =0x027FFC3C
ldr r0, [r2]
cmp r0, r3
bcc _03803D74
ldr r0, [r2]
add r0, r0, #10
str r0, [r1]
bl CTRDG_IsPulledOut
ldr r1, _03803D8C ;@ =_03809FC8
str r0, [r1]
bl CTRDG_IsExisting
cmp r0, #0
bne _03803D28
ldr r0, _03803D90 ;@ =_03807704
ldr r0, [r0]
cmp r0, #0
movne r1, #1
ldrne r0, _03803D88 ;@ =_03809FCC
strne r1, [r0]
bne _03803D74
mov r1, #1
ldr r0, _03803D8C ;@ =_03809FC8
str r1, [r0]
_03803D28:
mov r7, #0
ldr r0, _03803D90 ;@ =_03807704
str r7, [r0]
ldr r0, _03803D8C ;@ =_03809FC8
ldr r0, [r0]
cmp r0, #0
beq _03803D74
mov r6, #100 ;@ 0x64
mov r5, #13
mov r4, #17
b _03803D5C
_03803D54:
mov r0, r6
bl OS_Sleep
_03803D5C:
mov r0, r5
mov r1, r4
mov r2, r7
bl PXI_SendWordByFifo
cmp r0, #0
bne _03803D54
_03803D74:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_03803D80: .word _03807708
_03803D84: .word 0x027FFC3C
_03803D88: .word _03809FCC
_03803D8C: .word _03809FC8
_03803D90: .word _03807704
arm_func_start FUN_03803D94
FUN_03803D94: ;@ 0x03803D94
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r7, r0
mov r0, #134217728 ;@ 0x8000000
add r6, r0, #4
mov r4, #1
bl OS_GetLockID
mov r0, r0, lsl #16
mov r5, r0, lsr #16
mov r0, r5
bl OS_LockCartridge
mov r1, #0
ldr r0, _03803E3C ;@ =0x0000FFFF
eor r2, r0, #3
mov r2, r2, lsl #16
mov lr, r2, lsr #16
eor r2, r0, #132 ;@ 0x84
mov r2, r2, lsl #16
mov r8, r2, lsr #16
b _03803E18
_03803DE0:
mov ip, r0
cmp r1, #76 ;@ 0x4c
moveq ip, r8
beq _03803DF8
cmp r1, #77 ;@ 0x4d
moveq ip, lr
_03803DF8:
mov r3, r1, lsl #1
ldrh r2, [r7, r3]
and ip, ip, r2
ldrh r2, [r6, r3]
cmp ip, r2
movne r4, #0
bne _03803E20
add r1, r1, #1
_03803E18:
cmp r1, #78 ;@ 0x4e
blt _03803DE0
_03803E20:
mov r0, r5
bl OS_UnLockCartridge
mov r0, r5
bl OS_ReleaseLockID
mov r0, r4
ldmia sp!, {r4, r5, r6, r7, r8, lr}
bx lr
_03803E3C: .word 0x0000FFFF
arm_func_start FUN_03803E40
FUN_03803E40: ;@ 0x03803E40
ldr r1, _03803E54 ;@ =current_vib
str r0, [r1]
ldr r1, _03803E58 ;@ =0x08001000
strh r0, [r1]
bx lr
_03803E54: .word current_vib
_03803E58: .word 0x08001000
arm_func_start CTRDG_VibPulseEdgeUpdate
CTRDG_VibPulseEdgeUpdate: ;@ 0x03803E5C
stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #4
movs r5, r0
beq _03803E9C
ldr r0, [r5]
cmp r0, #0
bne _03803E9C
ldr r0, [r5, #68] ;@ 0x44
add r0, r0, #1
str r0, [r5, #68] ;@ 0x44
ldr r1, [r5, #64] ;@ 0x40
cmp r1, #0
beq _03803E9C
ldr r0, [r5, #68] ;@ 0x44
cmp r0, r1
movhi r5, #0
_03803E9C:
cmp r5, #0
beq _03803EB0
ldr r0, [r5, #60] ;@ 0x3c
cmp r0, #0
bne _03803F48
_03803EB0:
bl OS_DisableInterrupts
mov r9, r0
ldr r0, _03804068 ;@ =current_vib
ldr r0, [r0]
cmp r0, #2
bne _03803F34
mov r8, #0
ldr r7, _0380406C ;@ =0x027FFFE8
ldr r4, _03804070 ;@ =_03809FBC
ldr fp, _03804074 ;@ =0x000080E8
mov r6, r8
mov r5, #1
b _03803F2C
_03803EE4:
mov r0, r7
bl OS_ReadOwnerOfLockWord
ands sl, r0, #128 ;@ 0x80
bne _03803F04
ldrh r0, [r4]
bl OS_TryLockCartridge
cmp r0, #0
bne _03803F24
_03803F04:
mov r0, r6
bl FUN_03803E40
mov r8, r5
cmp sl, #0
bne _03803F2C
ldrh r0, [r4]
bl OS_UnlockCartridge
b _03803F2C
_03803F24:
mov r0, fp
bl OS_SpinWait
_03803F2C:
cmp r8, #0
beq _03803EE4
_03803F34:
ldr r0, _03804078 ;@ =_03809FEC
bl OS_CancelAlarm
mov r0, r9
bl OS_RestoreInterrupts
b _0380405C
_03803F48:
cmp r5, #0
beq _0380405C
ldr r0, _0380406C ;@ =0x027FFFE8
bl OS_ReadOwnerOfLockWord
ands r4, r0, #128 ;@ 0x80
bne _03803F74
ldr r0, _03804070 ;@ =_03809FBC
ldrh r0, [r0]
bl OS_TryLockCartridge
cmp r0, #0
bne _03804044
_03803F74:
ldr r1, [r5]
ldr r0, [r5, #4]
cmp r1, r0
bne _03803FB0
mov r0, #0
bl FUN_03803E40
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, [r5, #8]
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
mov r0, #0
str r0, [r5]
b _0380402C
_03803FB0:
ands r0, r1, #1
beq _03803FF4
mov r0, #0
bl FUN_03803E40
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, [r5]
mov r1, r1, lsr #1
add r1, r5, r1, lsl #2
ldr r1, [r1, #36] ;@ 0x24
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
b _0380402C
_03803FF4:
mov r0, #2
bl FUN_03803E40
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, [r5]
mov r1, r1, lsr #1
add r1, r5, r1, lsl #2
ldr r1, [r1, #12]
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
_0380402C:
cmp r4, #0
bne _0380405C
ldr r0, _03804070 ;@ =_03809FBC
ldrh r0, [r0]
bl OS_UnlockCartridge
b _0380405C
_03804044:
str r5, [sp]
ldr r0, _03804078 ;@ =_03809FEC
ldr r1, _03804080 ;@ =0x0000020B
mov r2, #0
ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
bl OS_SetAlarm
_0380405C:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
bx lr
_03804068: .word current_vib
_0380406C: .word 0x027FFFE8
_03804070: .word _03809FBC
_03804074: .word 0x000080E8
_03804078: .word _03809FEC
_0380407C: .word CTRDG_VibPulseEdgeUpdate
_03804080: .word 0x0000020B
_03804084:
mov r0, r1
ldr ip, _03804090 ;@ =CTRDG_VibPulseEdgeUpdate
bx ip
_03804090: .word CTRDG_VibPulseEdgeUpdate
arm_func_start FUN_03804094
FUN_03804094: ;@ 0x03804094
stmfd sp!, {lr}
sub sp, sp, #4
and r0, r1, #63 ;@ 0x3f
cmp r0, #2
bne _038040B0
bl FUN_03803C58
b _038040B4
_038040B0:
bl OS_Terminate
_038040B4:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
arm_func_start FUN_038040C0
FUN_038040C0: ;@ 0x038040C0
stmfd sp!, {lr}
sub sp, sp, #4
and r0, r1, #63 ;@ 0x3f
cmp r0, #1
ldreq r0, _038040F4 ;@ =_03809FD4
streq r1, [r0]
moveq r1, #1
streq r1, [r0, #16]
beq _038040E8
bl OS_Terminate
_038040E8:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_038040F4: .word _03809FD4
arm_func_start CTRDGi_InitModuleInfo
CTRDGi_InitModuleInfo: ;@ 0x038040F8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r0, _038041C8 ;@ =_03809FC4
ldr r1, [r0]
cmp r1, #0
bne _038041BC
mov r1, #1
str r1, [r0]
ldr r0, _038041CC ;@ =0x04000300
ldrh r0, [r0]
ands r0, r0, #1
beq _038041BC
mov r0, #262144 ;@ 0x40000
bl OS_SetIrqMask
mov r5, r0
ldr r1, _038041D0 ;@ =0x04000208
ldrh r4, [r1]
mov r0, #1
strh r0, [r1]
mov r7, #256 ;@ 0x100
ldr r6, _038041D4 ;@ =_03809FD4
b _03804158
_03804150:
mov r0, r7
bl FUN_037F8CB4
_03804158:
ldr r0, [r6, #16]
cmp r0, #1
bne _03804150
ldr r1, [r6]
ldr r0, _038041D8 ;@ =0x01FFFFC0
and r0, r1, r0
mov r0, r0, lsr #6
mov r0, r0, lsl #5
add r0, r0, #33554432 ;@ 0x2000000
add r0, r0, #4
bl FUN_03803D94
ldr r2, _038041DC ;@ =0x027FFC30
ldrb r1, [r2, #5]
bic r1, r1, #1
and r0, r0, #255 ;@ 0xff
and r0, r0, #1
orr r0, r1, r0
strb r0, [r2, #5]
mov r0, #1
bl CTRDGi_SendtoPxi
ldr r1, _038041D0 ;@ =0x04000208
ldrh r0, [r1]
strh r4, [r1]
mov r0, r5
bl OS_SetIrqMask
_038041BC:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, lr}
bx lr
_038041C8: .word _03809FC4
_038041CC: .word 0x04000300
_038041D0: .word 0x04000208
_038041D4: .word _03809FD4
_038041D8: .word 0x01FFFFC0
_038041DC: .word 0x027FFC30
arm_func_start CTRDG_Init
CTRDG_Init: ;@ 0x038041E0
stmfd sp!, {lr}
sub sp, sp, #4
bl OS_InitTick
bl OS_InitAlarm
ldr r0, _03804270 ;@ =_03809FEC
bl OS_CreateAlarm
ldr r0, _03804274 ;@ =_03809FD0
ldr r1, [r0]
cmp r1, #0
bne _03804264
mov r1, #1
str r1, [r0]
bl CTRDGi_InitCommon
bl OS_GetLockID
mvn r1, #2
cmp r0, r1
beq _03804264
ldr r1, _03804278 ;@ =_03809FBC
strh r0, [r1]
bl PXI_Init
mov r0, #13
ldr r1, _0380427C ;@ =FUN_038040C0
bl PXI_SetFifoRecvCallback
bl CTRDGi_InitModuleInfo
mov r0, #13
ldr r1, _03804280 ;@ =FUN_03804094
bl PXI_SetFifoRecvCallback
mov r0, #16
ldr r1, _03804284 ;@ =_03804084
bl PXI_SetFifoRecvCallback
mov r0, #17
ldr r1, _03804288 ;@ =FUN_03803BD4
bl PXI_SetFifoRecvCallback
_03804264:
add sp, sp, #4
ldmia sp!, {lr}
bx lr
_03804270: .word _03809FEC
_03804274: .word _03809FD0
_03804278: .word _03809FBC
_0380427C: .word FUN_038040C0
_03804280: .word FUN_03804094
_03804284: .word _03804084
_03804288: .word FUN_03803BD4
arm_func_start FUN_0380428C
FUN_0380428C: ;@ 0x0380428C
stmfd sp!, {lr}

View File

@@ -2,38 +2,6 @@
.include "global.inc"
.section .bss
.global _03809FBC
_03809FBC: ;0x03809FBC
.space 0x03809FC0 - 0x03809FBC
.global current_vib
current_vib: ;0x03809FC0
.space 0x03809FC4 - 0x03809FC0
.global _03809FC4
_03809FC4: ;0x03809FC4
.space 0x03809FC8 - 0x03809FC4
.global _03809FC8
_03809FC8: ;0x03809FC8
.space 0x03809FCC - 0x03809FC8
.global _03809FCC
_03809FCC: ;0x03809FCC
.space 0x03809FD0 - 0x03809FCC
.global _03809FD0
_03809FD0: ;0x03809FD0
.space 0x03809FD4 - 0x03809FD0
.global _03809FD4
_03809FD4: ;0x03809FD4
.space 0x03809FEC - 0x03809FD4
.global _03809FEC
_03809FEC: ;0x03809FEC
.space 0x0380A018 - 0x03809FEC
.global _0380A018
_0380A018: ;0x0380A018
.space 0x0380A038 - 0x0380A018

View File

@@ -1,13 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.section .data
.global _03807704
_03807704:
.word 0x00000001
.global _03807708
_03807708:
.word 0xFFFFFFFF
.balign 2, 0 ; Don't pad with nop

View File

@@ -12,4 +12,14 @@ void MIi_CpuCopyFast(register u32 * src, register u32 * dst, register u32 size);
void MI_CpuFill8(register u8 value, register u8 * dst, register u32 size);
void MI_CpuCopy8(register u8 * src, register u8 * dst, register u32 size);
static inline void MI_CpuFill32(void *dest, u32 data, u32 size)
{
MIi_CpuClear32(data, dest, size);
}
static inline void MI_CpuClear32(void *dest, u32 size)
{
MI_CpuFill32(dest, 0, size);
}
#endif

View File

@@ -0,0 +1,9 @@
#ifndef POKEDIAMOND_ARM7_OS_ALARM_H
#define POKEDIAMOND_ARM7_OS_ALARM_H
#include "nitro/OS_alarm_shared.h"
void OS_CreateAlarm(OSAlarm *alarm);
void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg);
#endif //POKEDIAMOND_ARM7_OS_ALARM_H

View File

@@ -13,4 +13,8 @@ typedef struct OSContext
u32 sp_svc;
} OSContext;
extern u32 OS_SaveContext(OSContext *context);
extern void OS_LoadContext(OSContext *context);
extern void OS_InitContext(OSContext *context, u32 func, u32 stack);
#endif //POKEDIAMOND_ARM7_OS_CONTEXT_H

View File

@@ -0,0 +1,14 @@
#ifndef POKEDIAMOND_ARM7_OS_MUTEX_H
#define POKEDIAMOND_ARM7_OS_MUTEX_H
#include "OS_context.h"
#include "nitro/OS_mutex_shared.h"
void OSi_DequeueItem(OSThread * thread, OSMutex * mutex);
void OSi_EnqueueTail(OSThread * thread, OSMutex * mutex);
void OS_InitMutex(OSMutex* mutex);
void OS_LockMutex(OSMutex* mutex);
void OS_UnlockMutex(OSMutex* mutex);
void OSi_UnlockAllMutex(OSThread * thread);
#endif //POKEDIAMOND_ARM7_OS_MUTEX_H

View File

@@ -4,4 +4,33 @@
#include "OS_context.h"
#include "nitro/OS_thread_shared.h"
static s32 OSi_GetUnusedThreadId(void);
static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue);
static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread);
OSMutex *OSi_RemoveMutexLinkFromQueue(OSMutexQueue *queue);
static void OSi_InsertThreadToList(OSThread *thread);
static void OSi_RemoveThreadFromList(OSThread *thread);
static void OSi_RescheduleThread(void);
void OS_InitThread(void);
void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio);
void OS_ExitThread(void);
static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg);
static void OSi_ExitThread(void *arg);
static void OSi_ExitThread_Destroy(void);
void OS_JoinThread(OSThread *thread);
BOOL OS_IsThreadTerminated(const OSThread *thread);
void OS_SleepThread(OSThreadQueue *queue);
void OS_WakeupThread(OSThreadQueue *queue);
void OS_WakeupThreadDirect(OSThread *thread);
OSThread *OS_SelectThread(void);
void OS_RescheduleThread(void);
BOOL OS_SetThreadPriority(OSThread *thread, u32 prio);
void OS_Sleep(u32 msec);
static void OSi_SleepAlarmCallback(void *arg);
OSSwitchThreadCallback OS_SetSwitchThreadCallback(OSSwitchThreadCallback callback);
u32 OS_DisableScheduler(void);
u32 OS_EnableScheduler(void);
void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor);
#endif //POKEDIAMOND_ARM7_OS_THREAD_H

View File

@@ -4,5 +4,6 @@
#include "nitro/consts_shared.h"
#include "mmap.h"
#include "registers.h"
#include "systemWork.h"
#endif //POKEDIAMOND_ARM7_CONSTS_H

View File

@@ -0,0 +1,7 @@
#ifndef POKEDIAMOND_ARM7_SYSTEMWORK_H
#define POKEDIAMOND_ARM7_SYSTEMWORK_H
#include "OS_context.h"
#include "nitro/OS_systemWork_shared.h"
#endif //POKEDIAMOND_ARM7_SYSTEMWORK_H

95
arm7/lib/src/OS_mutex.c Normal file
View File

@@ -0,0 +1,95 @@
#include "function_target.h"
#include "OS_mutex.h"
#include "OS_system.h"
#include "OS_thread.h"
ARM_FUNC void OS_InitMutex(OSMutex* mutex) {
OS_InitThreadQueue(&mutex->queue);
mutex->thread = NULL;
mutex->count = 0;
}
ARM_FUNC void OS_LockMutex(OSMutex* mutex) {
OSIntrMode mode;
OSThread* current;
mode = OS_DisableInterrupts();
current = OS_GetCurrentThread();
while (1) {
OSThread* owner = mutex->thread;
if (owner == NULL) {
mutex->thread = current;
mutex->count++;
OSi_EnqueueTail(current, mutex);
break;
}
else if (owner == current) {
mutex->count++;
break;
}
else {
current->mutex = mutex;
OS_SleepThread(&mutex->queue);
current->mutex = NULL;
}
}
(void)OS_RestoreInterrupts(mode);
}
ARM_FUNC void OS_UnlockMutex(OSMutex* mutex) {
OSIntrMode mode;
OSThread* current;
mode = OS_DisableInterrupts();
current = OS_GetCurrentThread();
if (mutex->thread == current) {
if (--mutex->count == 0) {
OSi_DequeueItem(current, mutex);
mutex->thread = NULL;
OS_WakeupThread(&mutex->queue);
}
}
(void)OS_RestoreInterrupts(mode);
}
ARM_FUNC void OSi_UnlockAllMutex(OSThread * thread) {
OSMutex * mutex;
while (thread->mutexQueue.head) {
mutex = OSi_RemoveMutexLinkFromQueue(&thread->mutexQueue);
mutex->count = 0;
mutex->thread = NULL;
OS_WakeupThread(&mutex->queue);
}
}
ARM_FUNC void OSi_EnqueueTail(OSThread * thread, OSMutex * mutex) {
OSMutex * tail = thread->mutexQueue.tail;
if (tail == NULL) {
thread->mutexQueue.head = mutex;
}
else {
tail->link.next = mutex;
}
mutex->link.prev = tail;
mutex->link.next = NULL;
thread->mutexQueue.tail = mutex;
}
ARM_FUNC void OSi_DequeueItem(OSThread * thread, OSMutex * mutex) {
OSMutex *next = mutex->link.next;
OSMutex *prev = mutex->link.prev;
if (next == NULL) {
thread->mutexQueue.tail = prev;
}
else {
next->link.prev = prev;
}
if (prev == NULL) {
thread->mutexQueue.head = next;
}
else {
prev->link.next = next;
}
}

597
arm7/lib/src/OS_thread.c Normal file
View File

@@ -0,0 +1,597 @@
#include "OS_thread.h"
#include "function_target.h"
#include "OS_system.h"
#include "consts.h"
#include "OS_terminate_proc.h"
#include "OS_mutex.h"
#include "OS_alarm.h"
#include "OS_context.h"
#include "nitro/OS_systemWork_shared.h"
#include "MI_memory.h"
extern void SDK_SYS_STACKSIZE(void);
extern void SDK_IRQ_STACKSIZE(void);
u32 OSi_RescheduleCount = 0;
void *OSi_StackForDestructor = NULL;
OSThreadInfo OSi_ThreadInfo;
BOOL OSi_IsThreadInitialized = FALSE;
OSThread **OSi_CurrentThreadPtr = NULL;
void *OSi_SystemCallbackInSwitchThread = NULL;
static s32 OSi_ThreadIdCount = 0;
OSThread OSi_LauncherThread;
OSThread OSi_IdleThread;
ARM_FUNC static s32 OSi_GetUnusedThreadId(void)
{
return ++OSi_ThreadIdCount;
}
ARM_FUNC static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread)
{
OSThread *next = queue->head;
while (next && next->priority <= thread->priority)
{
if (next == thread)
return;
next = next->link.next;
}
if (!next)
{
OSThread *prev = queue->tail;
if (!prev)
{
queue->head = thread;
}
else
{
prev->link.next = thread;
}
thread->link.prev = prev;
thread->link.next = NULL;
queue->tail = thread;
}
else
{
OSThread *prev = next->link.prev;
if (!prev)
{
queue->head = thread;
}
else
{
prev->link.next = thread;
}
thread->link.prev = prev;
thread->link.next = next;
next->link.prev = thread;
}
}
ARM_FUNC static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue)
{
OSThread *thread = queue->head;
if (thread)
{
OSThread *next = thread->link.next;
queue->head = next;
if (next)
{
next->link.prev = NULL;
}
else
{
queue->tail = NULL;
thread->queue = NULL;
}
}
return thread;
}
ARM_FUNC static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread)
{
OSThread *queueHead = queue->head;
while (queueHead)
{
OSThread *next = queueHead->link.next;
if (queueHead == thread)
{
OSThread *prev = queueHead->link.prev;
if (queue->head == queueHead)
{
queue->head = next;
}
else
{
prev->link.next = next;
}
if (queue->tail == queueHead)
{
queue->tail = prev;
}
else
{
next->link.prev = prev;
}
break;
}
queueHead = next;
}
return queueHead;
}
ARM_FUNC OSMutex *OSi_RemoveMutexLinkFromQueue(OSMutexQueue *queue)
{
OSMutex *mutexHead = queue->head;
if (mutexHead)
{
OSMutex *next = mutexHead->link.next;
queue->head = next;
if (next)
{
next->link.prev = NULL;
}
else
{
queue->tail = NULL;
}
}
return mutexHead;
}
ARM_FUNC static void OSi_InsertThreadToList(OSThread *thread)
{
OSThread *t = OSi_ThreadInfo.list;
OSThread *pre = NULL;
while(t && t->priority < thread->priority)
{
pre = t;
t = t->next;
}
if (!pre)
{
thread->next = OSi_ThreadInfo.list;
OSi_ThreadInfo.list = thread;
}
else
{
thread->next = pre->next;
pre->next = thread;
}
}
ARM_FUNC static void OSi_RemoveThreadFromList(OSThread *thread)
{
OSThread *t = OSi_ThreadInfo.list;
OSThread *pre = NULL;
while (t && t != thread)
{
pre = t;
t = t-> next;
}
if (!pre)
{
OSi_ThreadInfo.list = thread->next;
}
else
{
pre->next = thread->next;
}
}
ARM_FUNC static void OSi_RescheduleThread(void)
{
if (OSi_RescheduleCount <= 0)
{
OSThreadInfo *info = &OSi_ThreadInfo;
if (info->irqDepth > 0 || OS_GetProcMode() == OS_PROCMODE_IRQ)
{
info->isNeedRescheduling = TRUE;
}
else
{
OSThread *currentThread = OSi_GetCurrentThread();
OSThread *nextThread = OS_SelectThread();
if (currentThread == nextThread || !nextThread)
return;
if (currentThread->state != OS_THREAD_STATE_TERMINATED
&& OS_SaveContext(&currentThread->context))
return;
if (OSi_SystemCallbackInSwitchThread)
{
((OSSwitchThreadCallback)OSi_SystemCallbackInSwitchThread) (currentThread, nextThread);
}
if (info->switchCallback)
{
((OSSwitchThreadCallback)info->switchCallback) (currentThread, nextThread);
}
OS_SetCurrentThread(nextThread);
OS_LoadContext(&nextThread->context);
}
}
}
ARM_FUNC void OS_InitThread(void)
{
if (OSi_IsThreadInitialized)
return;
OSi_IsThreadInitialized = TRUE;
OSi_CurrentThreadPtr = &(OSi_ThreadInfo.current);
OSi_LauncherThread.priority = OS_THREAD_LAUNCHER_PRIORITY;
OSi_LauncherThread.id = 0;
OSi_LauncherThread.state = OS_THREAD_STATE_READY;
OSi_LauncherThread.next = NULL;
OSi_LauncherThread.profiler = NULL;
OSi_ThreadInfo.list = &OSi_LauncherThread;
OS_SetCurrentThread(&OSi_LauncherThread);
void *stackLo = (((s32)SDK_SYS_STACKSIZE) <= 0) ?
(void *)((u32)HW_WRAM - (s32)SDK_SYS_STACKSIZE) :
(void *)((u32)(HW_PRV_WRAM_IRQ_STACK_END - (s32)SDK_IRQ_STACKSIZE) - (s32)SDK_SYS_STACKSIZE);
OSi_LauncherThread.stackBottom = (u32)(HW_PRV_WRAM_IRQ_STACK_END - (s32)SDK_IRQ_STACKSIZE);
OSi_LauncherThread.stackTop = (u32)stackLo;
OSi_LauncherThread.stackWarningOffset = 0;
//checksums
*(u32 *)(OSi_LauncherThread.stackBottom - sizeof(u32)) = 0xd73bfdf7UL;
*(u32 *)OSi_LauncherThread.stackTop = 0xfbdd37bbUL;
OS_InitThreadQueue(&OSi_LauncherThread.joinQueue);
OSi_ThreadInfo.isNeedRescheduling = FALSE;
OSi_ThreadInfo.irqDepth = 0;
OS_GetSystemWork()->threadinfo_subp = &OSi_ThreadInfo;
(void)OS_SetSwitchThreadCallback(NULL);
}
ARM_FUNC void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio)
{
OSIntrMode enable = OS_DisableInterrupts();
s32 index = OSi_GetUnusedThreadId();
thread->priority = prio;
thread->id = (u32)index;
thread->state = OS_THREAD_STATE_WAITING;
thread->profiler = NULL;
OSi_InsertThreadToList(thread);
thread->stackBottom = (u32)stack;
thread->stackTop = (u32)stack - stackSize;
thread->stackWarningOffset = 0;
*(u32 *)(thread->stackBottom - sizeof(u32)) = 0xd73bfdf7UL;
*(u32 *)thread->stackTop = 0xfbdd37bbUL;
OS_InitThreadQueue(&thread->joinQueue);
OS_InitContext(&thread->context, (u32)func, (u32)stack - 4);
thread->context.r[0] = (u32)arg;
thread->context.lr = (u32)OS_ExitThread;
MI_CpuClear32((void *)((u32)stack - stackSize + 4), stackSize - 8);
thread->mutex = NULL;
thread->mutexQueue.head = NULL;
thread->mutexQueue.tail = NULL;
OS_SetThreadDestructor(thread, NULL);
thread->queue = NULL;
thread->link.prev = thread->link.next = NULL;
MI_CpuClear32(&thread->specific[0], sizeof(void *) * OS_THREAD_SPECIFIC_MAX);
thread->alarmForSleep = NULL;
(void)OS_RestoreInterrupts(enable);
}
ARM_FUNC void OS_ExitThread(void)
{
(void)OS_DisableInterrupts();
OSi_ExitThread_ArgSpecified(OS_GetCurrentThread(), 0);
}
ARM_FUNC static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg)
{
if (OSi_StackForDestructor)
{
OS_InitContext(&thread->context, (u32)OSi_ExitThread, (u32)OSi_StackForDestructor);
thread->context.r[0] = (u32)arg;
thread->context.cpsr |= HW_PSR_DISABLE_IRQ;
thread->state = OS_THREAD_STATE_READY;
OS_LoadContext(&thread->context);
}
else
{
OSi_ExitThread(arg);
}
}
ARM_FUNC static void OSi_ExitThread(void *arg)
{
OSThread *currentThread = OSi_GetCurrentThread();
OSThreadDestructor destructor = currentThread->destructor;
if (destructor)
{
currentThread->destructor = NULL;
destructor(arg);
(void)OS_DisableInterrupts();
}
OSi_ExitThread_Destroy();
}
ARM_FUNC static void OSi_ExitThread_Destroy(void)
{
OSThread *currentThread = OSi_GetCurrentThread();
(void)OS_DisableScheduler();
OSi_UnlockAllMutex(currentThread);
if (currentThread->queue)
{
(void)OSi_RemoveSpecifiedLinkFromQueue(currentThread->queue, currentThread);
}
OSi_RemoveThreadFromList(currentThread);
currentThread->state = OS_THREAD_STATE_TERMINATED;
OS_WakeupThread(&currentThread->joinQueue);
(void)OS_EnableScheduler();
OS_RescheduleThread();
OS_Terminate();
}
ARM_FUNC void OS_JoinThread(OSThread *thread)
{
OSIntrMode enabled = OS_DisableInterrupts();
if (thread->state != OS_THREAD_STATE_TERMINATED)
{
OS_SleepThread(&thread->joinQueue);
}
(void)OS_RestoreInterrupts(enabled);
}
ARM_FUNC BOOL OS_IsThreadTerminated(const OSThread *thread)
{
return (thread->state == OS_THREAD_STATE_TERMINATED) ? TRUE : FALSE;
}
ARM_FUNC void OS_SleepThread(OSThreadQueue *queue)
{
OSIntrMode enabled = OS_DisableInterrupts();
OSThread *currentThread = OSi_GetCurrentThread();
if (queue)
{
currentThread->queue = queue;
OSi_InsertLinkToQueue(queue, currentThread);
}
currentThread->state = OS_THREAD_STATE_WAITING;
OSi_RescheduleThread();
(void)OS_RestoreInterrupts(enabled);
}
ARM_FUNC void OS_WakeupThread(OSThreadQueue *queue)
{
OSIntrMode enabled = OS_DisableInterrupts();
if (queue->head)
{
while (queue->head)
{
OSThread *thread = OSi_RemoveLinkFromQueue(queue);
thread->state = OS_THREAD_STATE_READY;
thread->queue = NULL;
thread->link.prev = thread->link.next = NULL;
}
OS_InitThreadQueue(queue);
OSi_RescheduleThread();
}
(void)OS_RestoreInterrupts(enabled);
}
ARM_FUNC void OS_WakeupThreadDirect(OSThread *thread)
{
OSIntrMode enabled = OS_DisableInterrupts();
thread->state = OS_THREAD_STATE_READY;
OSi_RescheduleThread();
(void)OS_RestoreInterrupts(enabled);
}
ARM_FUNC OSThread *OS_SelectThread(void)
{
OSThread *thread = OSi_ThreadInfo.list;
while (thread && !OS_IsThreadRunnable(thread))
{
thread = thread->next;
}
return thread;
}
ARM_FUNC void OS_RescheduleThread(void)
{
OSIntrMode enabled = OS_DisableInterrupts();
OSi_RescheduleThread();
(void)OS_RestoreInterrupts(enabled);
}
ARM_FUNC BOOL OS_SetThreadPriority(OSThread *thread, u32 prio)
{
OSThread *t = OSi_ThreadInfo.list;
OSThread *pre = NULL;
OSIntrMode enabled = OS_DisableInterrupts();
while (t && t != thread)
{
pre = t;
t = t->next;
}
if (!t || t == &OSi_IdleThread)
{
(void)OS_RestoreInterrupts(enabled);
return FALSE;
}
if (t->priority != prio)
{
if (!pre)
{
OSi_ThreadInfo.list = thread->next;
}
else
{
pre->next = thread->next;
}
thread->priority = prio;
OSi_InsertThreadToList(thread);
OSi_RescheduleThread();
}
(void)OS_RestoreInterrupts(enabled);
return TRUE;
}
ARM_FUNC void OS_Sleep(u32 msec)
{
OSAlarm alarm;
OS_CreateAlarm(&alarm);
OSThread *volatile p_thread = OSi_GetCurrentThread();
OSIntrMode enabled = OS_DisableInterrupts();
p_thread->alarmForSleep = &alarm;
OS_SetAlarm(&alarm, OS_MilliSecondsToTicks(msec), &OSi_SleepAlarmCallback,
(void*)&p_thread);
while (p_thread != NULL)
{
OS_SleepThread(NULL);
}
(void)OS_RestoreInterrupts(enabled);
}
ARM_FUNC static void OSi_SleepAlarmCallback(void *arg)
{
OSThread **pp_thread = (OSThread **)arg;
OSThread *p_thread = *pp_thread;
*pp_thread = NULL;
p_thread->alarmForSleep = NULL;
OS_WakeupThreadDirect(p_thread);
}
ARM_FUNC OSSwitchThreadCallback OS_SetSwitchThreadCallback(OSSwitchThreadCallback callback)
{
OSIntrMode enabled = OS_DisableInterrupts();
OSSwitchThreadCallback prev = OSi_ThreadInfo.switchCallback;
OSi_ThreadInfo.switchCallback = callback;
(void)OS_RestoreInterrupts(enabled);
return prev;
}
ARM_FUNC u32 OS_DisableScheduler(void)
{
OSIntrMode enabled = OS_DisableInterrupts();
u32 count;
if (OSi_RescheduleCount < (u32)-1)
{
count = OSi_RescheduleCount++;
}
(void)OS_RestoreInterrupts(enabled);
return count;
}
ARM_FUNC u32 OS_EnableScheduler(void)
{
OSIntrMode enabled = OS_DisableInterrupts();
u32 count = 0;
if (OSi_RescheduleCount > 0)
{
count = OSi_RescheduleCount--;
}
(void)OS_RestoreInterrupts(enabled);
return count;
}
ARM_FUNC void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor)
{
thread->destructor = dtor;
}

View File

@@ -158,7 +158,7 @@ OVERLAYS := \
##################### Compiler Options #######################
MWCCVERSION = 2.0/base
MWCCVERSION = 2.0/sp1
TOOLS_DIR = ../tools
CROSS := arm-none-eabi-
@@ -184,7 +184,7 @@ OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o
ASFLAGS = -proc arm5te -i ../include -i ..
CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start
# LIBS := -Llib -lsyscall
@@ -309,7 +309,6 @@ DUMMY != mkdir -p $(ALL_DIRS)
%.pal: ;
# Included files
baserom.%: ;
%.h: ;
%.inc: ;

View File

@@ -144,7 +144,7 @@ SECTIONS {
unk_02008AA4.o (.text)
unk_02008DEC.o (.text)
unk_02009EAC.o (.text)
unk_0200A384.o (.text)
msgdata.o (.text)
unk_0200AA80.o (.text)
unk_0200BA78.o (.text)
unk_0200BB14.o (.text)
@@ -400,7 +400,7 @@ SECTIONS {
unk_020842D0.o (.text)
unk_020842DC.o (.text)
unk_020851B8.o (.text)
unk_02085258.o (.text)
nutdata.o (.text)
unk_02085338.o (.text)
unk_020854E0.o (.text)
unk_020859C0.o (.text)

View File

@@ -1,679 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.extern UNK_020FFA38
.section .rodata
.global UNK_020EDB80
UNK_020EDB80: ; 0x020EDB80
.short 0x169F, 0x0F14, 0x0B4F, 0x090C, 0x078A, 0x0676, 0x05A7, 0x0506
.short 0x0486, 0x041C, 0x03C5, 0x037A, 0x033B, 0x0304, 0x02D3, 0x02A9
.short 0x0283, 0x0261, 0x0243, 0x0227, 0x020E, 0x01F7, 0x01E2, 0x01CF
.short 0x01BD, 0x01AC, 0x019D, 0x018F, 0x0182, 0x0175, 0x0169, 0x015E
.short 0x0154, 0x014A, 0x0141, 0x0139, 0x0130, 0x0128, 0x0121, 0x011A
.short 0x0113, 0x010D, 0x0107, 0x0101, 0x00FB, 0x00F6, 0x00F1, 0x00EC
.short 0x00E7, 0x00E3, 0x00DE, 0x00DA, 0x00D6, 0x00D2, 0x00CE, 0x00CB
.short 0x00C7, 0x00C4, 0x00C1, 0x00BD, 0x00BA, 0x00B7, 0x00B4, 0x00B2
.short 0x00AF, 0x00AC, 0x00AA, 0x00A7, 0x00A5, 0x00A3, 0x00A0, 0x009E
.short 0x009C, 0x009A, 0x0098, 0x0096, 0x0094, 0x0092, 0x0090, 0x008E
.short 0x008D, 0x008B, 0x0089, 0x0088, 0x0086, 0x0085, 0x0083, 0x0082
.short 0x0080, 0x007F, 0x007D, 0x007C, 0x007B, 0x0079, 0x0078, 0x0077
.short 0x0076, 0x0074, 0x0073, 0x0072, 0x0071, 0x0070, 0x006F, 0x006E
.short 0x006D, 0x006C, 0x006B, 0x006A, 0x0069, 0x0068, 0x0067, 0x0066
.short 0x0065, 0x0064, 0x0063, 0x0062, 0x0062, 0x0061, 0x0060, 0x005F
.short 0x005E, 0x005E, 0x005D, 0x005C, 0x005B, 0x005B, 0x005A
.global UNK_020EDC7E
UNK_020EDC7E: ; 0x020EDC7E
.short 0x0000, 0x00B7, 0x016D, 0x0223, 0x02D9, 0x038F, 0x0445, 0x04FB
.short 0x05B1, 0x0667, 0x071D, 0x07D3, 0x0889, 0x093F, 0x09F5, 0x0AAB
.short 0x0B61, 0x0C17, 0x0CCD, 0x0D83, 0x0E39, 0x0EEF, 0x0FA5, 0x105C
.short 0x1112, 0x11C8, 0x127E, 0x1334, 0x13EA, 0x14A0, 0x1556, 0x160C
.short 0x16C2, 0x1778, 0x182E, 0x18E4, 0x199A, 0x1A50, 0x1B06, 0x1BBC
.short 0x1C72, 0x1D28, 0x1DDE, 0x1E94, 0x1F4A, 0x2000, 0x20B7, 0x216D
.short 0x2223, 0x22D9, 0x238F, 0x2445, 0x24FB, 0x25B1, 0x2667, 0x271D
.short 0x27D3, 0x2889, 0x293F, 0x29F5, 0x2AAB, 0x2B61, 0x2C17, 0x2CCD
.short 0x2D83, 0x2E39, 0x2EEF, 0x2FA5, 0x305C, 0x3112, 0x31C8, 0x327E
.short 0x3334, 0x33EA, 0x34A0, 0x3556, 0x360C, 0x36C2, 0x3778, 0x382E
.short 0x38E4, 0x399A, 0x3A50, 0x3B06, 0x3BBC, 0x3C72, 0x3D28, 0x3DDE
.short 0x3E94, 0x3F4A, 0x4000, 0x40B7, 0x416D, 0x4223, 0x42D9, 0x438F
.short 0x4445, 0x44FB, 0x45B1, 0x4667, 0x471D, 0x47D3, 0x4889, 0x493F
.short 0x49F5, 0x4AAB, 0x4B61, 0x4C17, 0x4CCD, 0x4D83, 0x4E39, 0x4EEF
.short 0x4FA5, 0x505C, 0x5112, 0x51C8, 0x527E, 0x5334, 0x53EA, 0x54A0
.short 0x5556, 0x560C, 0x56C2, 0x5778, 0x582E, 0x58E4, 0x599A, 0x5A50
.short 0x5B06, 0x5BBC, 0x5C72, 0x5D28, 0x5DDE, 0x5E94, 0x5F4A, 0x6000
.short 0x60B7, 0x616D, 0x6223, 0x62D9, 0x638F, 0x6445, 0x64FB, 0x65B1
.short 0x6667, 0x671D, 0x67D3, 0x6889, 0x693F, 0x69F5, 0x6AAB, 0x6B61
.short 0x6C17, 0x6CCD, 0x6D83, 0x6E39, 0x6EEF, 0x6FA5, 0x705C, 0x7112
.short 0x71C8, 0x727E, 0x7334, 0x73EA, 0x74A0, 0x7556, 0x760C, 0x76C2
.short 0x7778, 0x782E, 0x78E4, 0x799A, 0x7A50, 0x7B06, 0x7BBC, 0x7C72
.short 0x7D28, 0x7DDE, 0x7E94, 0x7F4A, 0x8000, 0x80B7, 0x816D, 0x8223
.short 0x82D9, 0x838F, 0x8445, 0x84FB, 0x85B1, 0x8667, 0x871D, 0x87D3
.short 0x8889, 0x893F, 0x89F5, 0x8AAB, 0x8B61, 0x8C17, 0x8CCD, 0x8D83
.short 0x8E39, 0x8EEF, 0x8FA5, 0x905C, 0x9112, 0x91C8, 0x927E, 0x9334
.short 0x93EA, 0x94A0, 0x9556, 0x960C, 0x96C2, 0x9778, 0x982E, 0x98E4
.short 0x999A, 0x9A50, 0x9B06, 0x9BBC, 0x9C72, 0x9D28, 0x9DDE, 0x9E94
.short 0x9F4A, 0xA000, 0xA0B7, 0xA16D, 0xA223, 0xA2D9, 0xA38F, 0xA445
.short 0xA4FB, 0xA5B1, 0xA667, 0xA71D, 0xA7D3, 0xA889, 0xA93F, 0xA9F5
.short 0xAAAB, 0xAB61, 0xAC17, 0xACCD, 0xAD83, 0xAE39, 0xAEEF, 0xAFA5
.short 0xB05C, 0xB112, 0xB1C8, 0xB27E, 0xB334, 0xB3EA, 0xB4A0, 0xB556
.short 0xB60C, 0xB6C2, 0xB778, 0xB82E, 0xB8E4, 0xB99A, 0xBA50, 0xBB06
.short 0xBBBC, 0xBC72, 0xBD28, 0xBDDE, 0xBE94, 0xBF4A, 0xC000, 0xC0B7
.short 0xC16D, 0xC223, 0xC2D9, 0xC38F, 0xC445, 0xC4FB, 0xC5B1, 0xC667
.short 0xC71D, 0xC7D3, 0xC889, 0xC93F, 0xC9F5, 0xCAAB, 0xCB61, 0xCC17
.short 0xCCCD, 0xCD83, 0xCE39, 0xCEEF, 0xCFA5, 0xD05C, 0xD112, 0xD1C8
.short 0xD27E, 0xD334, 0xD3EA, 0xD4A0, 0xD556, 0xD60C, 0xD6C2, 0xD778
.short 0xD82E, 0xD8E4, 0xD99A, 0xDA50, 0xDB06, 0xDBBC, 0xDC72, 0xDD28
.short 0xDDDE, 0xDE94, 0xDF4A, 0xE000, 0xE0B7, 0xE16D, 0xE223, 0xE2D9
.short 0xE38F, 0xE445, 0xE4FB, 0xE5B1, 0xE667, 0xE71D, 0xE7D3, 0xE889
.short 0xE93F, 0xE9F5, 0xEAAB, 0xEB61, 0xEC17, 0xECCD, 0xED83, 0xEE39
.short 0xEEEF, 0xEFA5, 0xF05C, 0xF112, 0xF1C8, 0xF27E, 0xF334, 0xF3EA
.short 0xF4A0, 0xF556, 0xF60C, 0xF6C2, 0xF778, 0xF82E, 0xF8E4, 0xF99A
.short 0xFA50, 0xFB06, 0xFBBC, 0xFC72, 0xFD28, 0xFDDE, 0xFE94, 0xFF4A
.balign 4, 0
.global UNK_020EDF50
UNK_020EDF50: ; 0x020EDF50
.word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
.word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
.word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
.word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
.word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
.word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
.word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
.word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
.word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
.word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
.word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
.word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
.word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
.word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
.word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
.word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
.word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
.word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
.word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
.word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
.word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
.word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
.word 0x00000FFE, 0x00000FFF, 0x00001000, 0x00000FFF
.word 0x00000FFE, 0x00000FFA, 0x00000FF6, 0x00000FF0
.word 0x00000FEA, 0x00000FE1, 0x00000FD8, 0x00000FCE
.word 0x00000FC2, 0x00000FB5, 0x00000FA6, 0x00000F97
.word 0x00000F86, 0x00000F74, 0x00000F61, 0x00000F4D
.word 0x00000F38, 0x00000F21, 0x00000F09, 0x00000EF0
.word 0x00000ED6, 0x00000EBA, 0x00000E9E, 0x00000E80
.word 0x00000E61, 0x00000E42, 0x00000E21, 0x00000DFE
.word 0x00000DDB, 0x00000DB7, 0x00000D92, 0x00000D6B
.word 0x00000D44, 0x00000D1B, 0x00000CF2, 0x00000CC7
.word 0x00000C9C, 0x00000C6F, 0x00000C42, 0x00000C13
.word 0x00000BE4, 0x00000BB4, 0x00000B82, 0x00000B50
.word 0x00000B1D, 0x00000AE9, 0x00000AB5, 0x00000A7F
.word 0x00000A49, 0x00000A12, 0x000009DA, 0x000009A1
.word 0x00000968, 0x0000092D, 0x000008F2, 0x000008B7
.word 0x0000087B, 0x0000083E, 0x00000800, 0x000007C2
.word 0x00000783, 0x00000744, 0x00000704, 0x000006C3
.word 0x00000682, 0x00000640, 0x000005FE, 0x000005BC
.word 0x00000579, 0x00000536, 0x000004F2, 0x000004AE
.word 0x00000469, 0x00000424, 0x000003DF, 0x00000399
.word 0x00000354, 0x0000030E, 0x000002C7, 0x00000281
.word 0x0000023A, 0x000001F3, 0x000001AC, 0x00000165
.word 0x0000011E, 0x000000D6, 0x0000008F, 0x00000047
.word 0x00000000, 0xFFFFFFB9, 0xFFFFFF71, 0xFFFFFF2A
.word 0xFFFFFEE2, 0xFFFFFE9B, 0xFFFFFE54, 0xFFFFFE0D
.word 0xFFFFFDC6, 0xFFFFFD7F, 0xFFFFFD39, 0xFFFFFCF2
.word 0xFFFFFCAC, 0xFFFFFC67, 0xFFFFFC21, 0xFFFFFBDC
.word 0xFFFFFB97, 0xFFFFFB52, 0xFFFFFB0E, 0xFFFFFACA
.word 0xFFFFFA87, 0xFFFFFA44, 0xFFFFFA02, 0xFFFFF9C0
.word 0xFFFFF97E, 0xFFFFF93D, 0xFFFFF8FC, 0xFFFFF8BC
.word 0xFFFFF87D, 0xFFFFF83E, 0xFFFFF800, 0xFFFFF7C2
.word 0xFFFFF785, 0xFFFFF749, 0xFFFFF70E, 0xFFFFF6D3
.word 0xFFFFF698, 0xFFFFF65F, 0xFFFFF626, 0xFFFFF5EE
.word 0xFFFFF5B7, 0xFFFFF581, 0xFFFFF54B, 0xFFFFF517
.word 0xFFFFF4E3, 0xFFFFF4B0, 0xFFFFF47E, 0xFFFFF44C
.word 0xFFFFF41C, 0xFFFFF3ED, 0xFFFFF3BE, 0xFFFFF391
.word 0xFFFFF364, 0xFFFFF339, 0xFFFFF30E, 0xFFFFF2E5
.word 0xFFFFF2BC, 0xFFFFF295, 0xFFFFF26E, 0xFFFFF249
.word 0xFFFFF225, 0xFFFFF202, 0xFFFFF1DF, 0xFFFFF1BE
.word 0xFFFFF19F, 0xFFFFF180, 0xFFFFF162, 0xFFFFF146
.word 0xFFFFF12A, 0xFFFFF110, 0xFFFFF0F7, 0xFFFFF0DF
.word 0xFFFFF0C8, 0xFFFFF0B3, 0xFFFFF09F, 0xFFFFF08C
.word 0xFFFFF07A, 0xFFFFF069, 0xFFFFF05A, 0xFFFFF04B
.word 0xFFFFF03E, 0xFFFFF032, 0xFFFFF028, 0xFFFFF01F
.word 0xFFFFF016, 0xFFFFF010, 0xFFFFF00A, 0xFFFFF006
.word 0xFFFFF002, 0xFFFFF001, 0xFFFFF000, 0xFFFFF001
.word 0xFFFFF002, 0xFFFFF006, 0xFFFFF00A, 0xFFFFF010
.word 0xFFFFF016, 0xFFFFF01F, 0xFFFFF028, 0xFFFFF032
.word 0xFFFFF03E, 0xFFFFF04B, 0xFFFFF05A, 0xFFFFF069
.word 0xFFFFF07A, 0xFFFFF08C, 0xFFFFF09F, 0xFFFFF0B3
.word 0xFFFFF0C8, 0xFFFFF0DF, 0xFFFFF0F7, 0xFFFFF110
.word 0xFFFFF12A, 0xFFFFF146, 0xFFFFF162, 0xFFFFF180
.word 0xFFFFF19F, 0xFFFFF1BE, 0xFFFFF1DF, 0xFFFFF202
.word 0xFFFFF225, 0xFFFFF249, 0xFFFFF26E, 0xFFFFF295
.word 0xFFFFF2BC, 0xFFFFF2E5, 0xFFFFF30E, 0xFFFFF339
.word 0xFFFFF364, 0xFFFFF391, 0xFFFFF3BE, 0xFFFFF3ED
.word 0xFFFFF41C, 0xFFFFF44C, 0xFFFFF47E, 0xFFFFF4B0
.word 0xFFFFF4E3, 0xFFFFF517, 0xFFFFF54B, 0xFFFFF581
.word 0xFFFFF5B7, 0xFFFFF5EE, 0xFFFFF626, 0xFFFFF65F
.word 0xFFFFF698, 0xFFFFF6D3, 0xFFFFF70E, 0xFFFFF749
.word 0xFFFFF785, 0xFFFFF7C2, 0xFFFFF800, 0xFFFFF83E
.word 0xFFFFF87D, 0xFFFFF8BC, 0xFFFFF8FC, 0xFFFFF93D
.word 0xFFFFF97E, 0xFFFFF9C0, 0xFFFFFA02, 0xFFFFFA44
.word 0xFFFFFA87, 0xFFFFFACA, 0xFFFFFB0E, 0xFFFFFB52
.word 0xFFFFFB97, 0xFFFFFBDC, 0xFFFFFC21, 0xFFFFFC67
.word 0xFFFFFCAC, 0xFFFFFCF2, 0xFFFFFD39, 0xFFFFFD7F
.word 0xFFFFFDC6, 0xFFFFFE0D, 0xFFFFFE54, 0xFFFFFE9B
.word 0xFFFFFEE2, 0xFFFFFF2A, 0xFFFFFF71, 0xFFFFFFB9
.word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
.word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
.word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
.word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
.word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
.word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
.word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
.word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
.word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
.word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
.word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
.word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
.word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
.word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
.word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
.word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
.word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
.word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
.word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
.word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
.word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
.word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
.word 0x00000FFE, 0x00000FFF
.section .data
.global UNK_02105BA8
UNK_02105BA8: ; 0x02105BA8
.byte 0x71, 0x02, 0x00, 0x00
.global UNK_02105BAC
UNK_02105BAC: ; 0x02105BAC
.byte 0x00, 0x00, 0x00, 0x00, 0xDF, 0xB0, 0x08, 0x99
.section .bss
.global gLCRNG_State
gLCRNG_State: ; 0x021C4D48
.space 4
.global gMTRNG_State
gMTRNG_State: ; 0x021C4D4C
.space 624 * 4
.text
thumb_func_start FUN_0201B93C
FUN_0201B93C: ; 0x0201B93C
mov r1, #0x5a
lsl r1, r1, #0x2
cmp r0, r1
blo _0201B948
mov r0, #0x0
bx lr
_0201B948:
lsl r1, r0, #0x2
ldr r0, _0201B950 ; =UNK_020EDF50
ldr r0, [r0, r1]
bx lr
.balign 4
_0201B950: .word UNK_020EDF50
thumb_func_start FUN_0201B954
FUN_0201B954: ; 0x0201B954
mov r1, #0x5a
lsl r1, r1, #0x2
cmp r0, r1
blo _0201B960
mov r0, #0x0
bx lr
_0201B960:
add r0, #0x5a
lsl r1, r0, #0x2
ldr r0, _0201B96C ; =UNK_020EDF50
ldr r0, [r0, r1]
bx lr
nop
_0201B96C: .word UNK_020EDF50
thumb_func_start FUN_0201B970
FUN_0201B970: ; 0x0201B970
; gSineTable[x % 360]
push {r3, lr}
mov r1, #0x5a
lsl r1, r1, #0x2
bl _s32_div_f
ldr r0, _0201B984 ; =UNK_020EDF50
lsl r1, r1, #0x2
ldr r0, [r0, r1]
pop {r3, pc}
nop
_0201B984: .word UNK_020EDF50
thumb_func_start FUN_0201B988
FUN_0201B988: ; 0x0201B988
; gSineTable[(x % 360) + 90]
push {r3, lr}
mov r1, #0x5a
lsl r1, r1, #0x2
bl _s32_div_f
add r1, #0x5a
ldr r0, _0201B99C ; =UNK_020EDF50
lsl r1, r1, #0x2
ldr r0, [r0, r1]
pop {r3, pc}
.balign 4
_0201B99C: .word UNK_020EDF50
thumb_func_start FUN_0201B9A0
FUN_0201B9A0: ; 0x0201B9A0
; UNK_020EDC7E[x % 360]
push {r3, lr}
mov r1, #0x5a
lsl r1, r1, #0x2
bl _s32_div_f
ldr r0, _0201B9B4 ; =UNK_020EDC7E
lsl r1, r1, #0x1
ldrh r0, [r0, r1]
pop {r3, pc}
nop
_0201B9B4: .word UNK_020EDC7E
thumb_func_start FUN_0201B9B8
FUN_0201B9B8: ; 0x0201B9B8
; gSineTable[((x << 4) >> 16) % 360]
push {r3, lr}
lsl r0, r0, #0x4
mov r1, #0x5a
lsr r0, r0, #0x10
lsl r1, r1, #0x2
bl _s32_div_f
ldr r0, _0201B9D0 ; =UNK_020EDF50
lsl r1, r1, #0x2
ldr r0, [r0, r1]
pop {r3, pc}
nop
_0201B9D0: .word UNK_020EDF50
thumb_func_start getseed_LC
getseed_LC: ; 0x0201B9D4
ldr r0, _0201B9DC ; =gLCRNG_State
ldr r0, [r0, #0x0]
bx lr
nop
_0201B9DC: .word gLCRNG_State
thumb_func_start seedr_LC
seedr_LC: ; 0x0201B9E0
ldr r1, _0201B9E8 ; =gLCRNG_State
str r0, [r1, #0x0]
bx lr
nop
_0201B9E8: .word gLCRNG_State
thumb_func_start rand_LC
rand_LC: ; 0x0201B9EC
ldr r1, _0201BA04 ; =gLCRNG_State
ldr r0, _0201BA08 ; =0x41C64E6D
ldr r2, [r1, #0x0]
add r3, r2, #0x0
mul r3, r0
ldr r0, _0201BA0C ; =0x00006073
add r0, r3, r0
str r0, [r1, #0x0]
lsr r0, r0, #0x10
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bx lr
.balign 4
_0201BA04: .word gLCRNG_State
_0201BA08: .word 0x41C64E6D
_0201BA0C: .word 0x00006073
thumb_func_start rand_ALT
rand_ALT: ; 0x0201BA10
ldr r1, _0201BA18 ; =0x6C078965
mul r1, r0
add r0, r1, #0x1
bx lr
.balign 4
_0201BA18: .word 0x6C078965
thumb_func_start seedr_MT
seedr_MT: ; 0x0201BA1C
push {r4-r5}
ldr r1, _0201BA50 ; =gLCRNG_State
mov r4, #0x27
str r0, [r1, #0x4]
ldr r1, _0201BA54 ; =UNK_02105BA8
mov r0, #0x1
str r0, [r1, #0x0]
ldr r1, _0201BA58 ; =gMTRNG_State + 4
ldr r3, _0201BA5C ; =0x6C078965
lsl r4, r4, #0x4
_0201BA30:
sub r2, r1, #0x4
ldr r5, [r2, #0x0]
lsr r2, r5, #0x1e
eor r2, r5
add r5, r2, #0x0
mul r5, r3
add r2, r0, r5
add r0, r0, #0x1
stmia r1!, {r2}
cmp r0, r4
blt _0201BA30
ldr r1, _0201BA54 ; =UNK_02105BA8
str r0, [r1, #0x0]
pop {r4-r5}
bx lr
nop
_0201BA50: .word gLCRNG_State
_0201BA54: .word UNK_02105BA8
_0201BA58: .word gMTRNG_State + 4
_0201BA5C: .word 0x6C078965
thumb_func_start rand_MT
rand_MT: ; 0x0201BA60
push {r3-r7, lr}
ldr r0, _0201BB44 ; =UNK_02105BA8
ldr r1, [r0, #0x0]
mov r0, #0x27
lsl r0, r0, #0x4
cmp r1, r0
blt _0201BB18
add r0, r0, #0x1
cmp r1, r0
bne _0201BA7A
ldr r0, _0201BB48 ; =0x00001571
bl seedr_MT
_0201BA7A:
ldr r4, _0201BB4C ; =gMTRNG_State
ldr r1, _0201BB50 ; =UNK_02105BAC
ldr r5, _0201BB54 ; =0x7FFFFFFF
ldr r6, _0201BB58 ; =0x00000634
mov r0, #0x0
_0201BA84:
mov r2, #0x2
ldr r3, [r4, #0x0]
lsl r2, r2, #0x1e
and r3, r2
ldr r2, [r4, #0x4]
add r0, r0, #0x1
and r2, r5
orr r3, r2
lsr r7, r3, #0x1
lsl r3, r3, #0x1f
ldr r2, [r4, r6]
lsr r3, r3, #0x1d
ldr r3, [r1, r3]
eor r2, r7
eor r2, r3
stmia r4!, {r2}
cmp r0, #0xe3
blt _0201BA84
ldr r1, _0201BB5C ; =0x0000026F
cmp r0, r1
bge _0201BAE4
ldr r2, _0201BB4C ; =gMTRNG_State
lsl r1, r0, #0x2
add r1, r2, r1
mov r2, #0xe3
ldr r4, _0201BB50 ; =UNK_02105BAC
ldr r3, _0201BB5C ; =0x0000026F
lsl r2, r2, #0x2
_0201BABC:
mov r5, #0x2
ldr r6, [r1, #0x0]
lsl r5, r5, #0x1e
and r5, r6
ldr r7, [r1, #0x4]
ldr r6, _0201BB54 ; =0x7FFFFFFF
add r0, r0, #0x1
and r6, r7
orr r6, r5
lsr r5, r6, #0x1
sub r7, r1, r2
lsl r6, r6, #0x1f
ldr r7, [r7, #0x0]
lsr r6, r6, #0x1d
ldr r6, [r4, r6]
eor r5, r7
eor r5, r6
stmia r1!, {r5}
cmp r0, r3
blt _0201BABC
_0201BAE4:
ldr r2, _0201BB60 ; =gMTRNG_State + 607 * 4
mov r0, #0x2
ldr r1, [r2, #0x40]
lsl r0, r0, #0x1e
add r3, r1, #0x0
ldr r1, _0201BB64 ; =gLCRNG_State
and r3, r0
ldr r1, [r1, #0x4]
sub r0, r0, #0x1
and r0, r1
add r4, r3, #0x0
orr r4, r0
ldr r0, _0201BB68 ; =gMTRNG_State + 383 * 4
ldr r1, [r0, #0x34]
lsr r0, r4, #0x1
add r3, r1, #0x0
eor r3, r0
lsl r0, r4, #0x1f
lsr r1, r0, #0x1d
ldr r0, _0201BB50 ; =UNK_02105BAC
ldr r0, [r0, r1]
mov r1, #0x0
eor r0, r3
str r0, [r2, #0x40]
ldr r0, _0201BB44 ; =UNK_02105BA8
str r1, [r0, #0x0]
_0201BB18:
ldr r0, _0201BB44 ; =UNK_02105BA8
ldr r2, [r0, #0x0]
add r1, r2, #0x1
str r1, [r0, #0x0]
ldr r0, _0201BB4C ; =gMTRNG_State
lsl r1, r2, #0x2
ldr r1, [r0, r1]
lsr r0, r1, #0xb
add r2, r1, #0x0
eor r2, r0
ldr r0, _0201BB6C ; =0x9D2C5680
lsl r1, r2, #0x7
and r0, r1
eor r2, r0
ldr r0, _0201BB70 ; =0xEFC60000
lsl r1, r2, #0xf
and r0, r1
add r1, r2, #0x0
eor r1, r0
lsr r0, r1, #0x12
eor r0, r1
pop {r3-r7, pc}
.balign 4
_0201BB44: .word UNK_02105BA8
_0201BB48: .word 0x00001571
_0201BB4C: .word gMTRNG_State
_0201BB50: .word UNK_02105BAC
_0201BB54: .word 0x7FFFFFFF
_0201BB58: .word 0x00000634
_0201BB5C: .word 0x0000026F
_0201BB60: .word gMTRNG_State + 607 * 4
_0201BB64: .word gLCRNG_State
_0201BB68: .word gMTRNG_State + 383 * 4
_0201BB6C: .word 0x9D2C5680
_0201BB70: .word 0xEFC60000
thumb_func_start FUN_0201BB74
FUN_0201BB74: ; 0x0201BB74
push {r4-r6, lr}
add r5, r0, #0x0
add r0, sp, #0x0
ldrb r0, [r0, #0x10]
add r4, r2, #0x0
add r6, r3, #0x0
cmp r0, #0x1
bne _0201BB8E
ldr r0, _0201BBC8 ; =0x0000FFFF
mul r0, r1
lsl r0, r0, #0x8
lsr r1, r0, #0x10
b _0201BBA2
_0201BB8E:
cmp r0, #0x2
bne _0201BBA2
ldr r0, _0201BBC8 ; =0x0000FFFF
mul r0, r1
mov r1, #0x5a
lsl r1, r1, #0x2
bl _u32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
_0201BBA2:
asr r0, r1, #0x4
lsl r3, r0, #0x1
lsl r1, r3, #0x1
ldr r2, _0201BBCC ; =UNK_020FFA38
add r3, r3, #0x1
lsl r3, r3, #0x1
ldrsh r1, [r2, r1]
ldrsh r2, [r2, r3]
add r0, r5, #0x0
bl MTX_Rot22_
add r0, r5, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
add r3, r6, #0x0
bl MTX_ScaleApply22
pop {r4-r6, pc}
nop
_0201BBC8: .word 0x0000FFFF
_0201BBCC: .word UNK_020FFA38
thumb_func_start FUN_0201BBD0
FUN_0201BBD0: ; 0x0201BBD0
push {r3-r7, lr}
sub sp, #0x38
lsl r5, r0, #0xc
lsl r4, r1, #0xc
mov r1, #0x0
lsl r0, r2, #0xc
lsl r6, r3, #0xc
str r1, [sp, #0x34]
str r0, [sp, #0x0]
str r0, [sp, #0x20]
str r1, [sp, #0x28]
str r1, [sp, #0x8]
str r1, [sp, #0xc]
asr r1, r5, #0x1f
add r0, r5, #0x0
asr r3, r6, #0x1f
add r2, r6, #0x0
str r5, [sp, #0x2c]
str r4, [sp, #0x30]
str r6, [sp, #0x24]
bl _ll_mul
str r0, [sp, #0x4]
add r2, r4, #0x0
ldr r0, [sp, #0x20]
add r7, r1, #0x0
asr r1, r0, #0x1f
asr r3, r2, #0x1f
bl _ll_mul
mov r2, #0x2
ldr r3, [sp, #0x4]
lsl r2, r2, #0xa
add r3, r3, r2
ldr r2, _0201BC80 ; =0x00000000
str r4, [sp, #0x2c]
adc r7, r2
lsl r2, r7, #0x14
lsr r3, r3, #0xc
orr r3, r2
mov r2, #0x2
lsl r2, r2, #0xa
add r0, r0, r2
ldr r2, _0201BC80 ; =0x00000000
str r5, [sp, #0x30]
adc r1, r2
lsl r1, r1, #0x14
lsr r0, r0, #0xc
orr r0, r1
sub r2, r3, r0
ldr r1, [sp, #0x8]
ldr r0, [sp, #0xc]
str r2, [sp, #0x10]
add r0, r1, r0
add r7, r2, r0
mov r0, #0x0
str r0, [sp, #0x34]
add r0, sp, #0x2c
add r1, sp, #0x14
bl VEC_Normalize
mov r1, #0x0
ldr r0, [sp, #0x0]
str r1, [sp, #0x34]
str r0, [sp, #0x20]
str r1, [sp, #0x28]
add r0, sp, #0x20
add r1, sp, #0x2c
add r2, sp, #0x8
str r5, [sp, #0x2c]
str r4, [sp, #0x30]
str r6, [sp, #0x24]
bl VEC_Subtract
add r0, sp, #0x14
add r1, sp, #0x8
bl VEC_DotProduct
asr r0, r0, #0xc
bpl _0201BC72
neg r0, r0
_0201BC72:
cmp r7, #0x0
bgt _0201BC7C
mov r1, #0x0
mvn r1, r1
mul r0, r1
_0201BC7C:
add sp, #0x38
pop {r3-r7, pc}
.balign 4
_0201BC80: .word 0x00000000
thumb_func_start FUN_0201BC84
FUN_0201BC84: ; 0x0201BC84
push {r3-r5, lr}
lsl r0, r0, #0xd
add r4, r1, #0x0
ldr r2, _0201BCB4 ; =0x0000323D
asr r1, r0, #0x1f
mov r3, #0x0
bl _ll_mul
add r5, r0, #0x0
ldr r0, _0201BCB8 ; =0x0000FFFF
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
mul r0, r4
add r2, r5, r2
adc r1, r3
lsl r1, r1, #0x14
lsr r2, r2, #0xc
orr r2, r1
asr r1, r2, #0xc
bl _s32_div_f
pop {r3-r5, pc}
nop
_0201BCB4: .word 0x0000323D
_0201BCB8: .word 0x0000FFFF

View File

@@ -1877,13 +1877,13 @@ _0203A7E0:
ldr r0, [r5, #0x78]
ldr r1, [sp, #0xc]
ldr r2, [r2, #0x0]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, [sp, #0x14]
ldr r2, [sp, #0x18]
ldr r0, [r0, #0x0]
ldr r1, [r7, #0x0]
ldr r2, [r2, #0x0]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r0, [r4, #0x60]
bl MOD05_021E8140
mov r3, #0x0
@@ -2006,12 +2006,12 @@ FUN_0203A8B8: ; 0x0203A8B8
ldr r0, [r5, #0x78]
ldr r1, [sp, #0x0]
ldr r2, [r6, #0x0]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, [sp, #0x8]
ldr r1, [r7, #0x0]
ldr r0, [r0, #0x0]
ldr r2, [r6, #0x0]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r0, [r4, #0x60]
bl MOD05_021E8140
add r4, r0, #0x0
@@ -8823,7 +8823,7 @@ FUN_0203DFA8: ; 0x0203DFA8
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
bl rand_LC
bl LCRandom
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -8848,7 +8848,7 @@ FUN_0203DFE0: ; 0x0203DFE0
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
bl rand_LC
bl LCRandom
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -9776,7 +9776,7 @@ FUN_0203E774: ; 0x0203E774
add r0, r7, #0x0
bl FUN_020244A4
add r4, r0, #0x0
bl rand_LC
bl LCRandom
add r1, r4, #0x0
bl _s32_div_f
lsl r0, r1, #0x10
@@ -11070,7 +11070,7 @@ _0203F1E0:
mov r0, #0x0
pop {r4-r7, pc}
_0203F1F8:
bl rand_LC
bl LCRandom
add r1, r6, #0x0
bl _s32_div_f
mov r4, #0x0
@@ -11496,7 +11496,7 @@ _0203F54C:
lsl r7, r7, #0x2
b _0203F582
_0203F556:
bl rand_LC
bl LCRandom
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x19
@@ -11504,7 +11504,7 @@ _0203F556:
ldr r7, _0203F5CC ; =0x0000010D
b _0203F582
_0203F568:
bl rand_LC
bl LCRandom
mov r1, #0x6
bl _s32_div_f
lsl r0, r1, #0x10
@@ -11911,7 +11911,7 @@ FUN_0203F880: ; 0x0203F880
bls _0203F8A2
mov r4, #0x64
_0203F8A2:
bl rand_LC
bl LCRandom
mov r1, #0x65
bl _s32_div_f
lsl r0, r1, #0x10
@@ -12201,11 +12201,11 @@ FUN_0203FA58: ; 0x0203FA58
add r1, r5, #0x0
mov r2, #0x1
mov r3, #0x20
bl FUN_0200A9C4
bl ReadMsgData_ExpandPlaceholders
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x0]
ldr r1, [sp, #0x0]
add r0, r7, #0x0
@@ -12219,9 +12219,9 @@ _0203FB24:
_0203FB26:
strh r0, [r6, #0x0]
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
ldr r0, [sp, #0x0]
bl FUN_02021A20
bl String_dtor
add r0, r5, #0x0
bl DestroyMsgData
add r0, r4, #0x0

View File

@@ -362,7 +362,7 @@ FUN_02042F6C: ; 0x02042F6C
bl GetMonData
add r6, r0, #0x0
bl OS_GetTick
bl rand_ALT
bl PRandom
add r1, r0, #0x0
ldr r0, [sp, #0x14]
str r1, [sp, #0x34]
@@ -376,7 +376,7 @@ FUN_02042F6C: ; 0x02042F6C
beq _02042FE8
_02042FD0:
ldr r0, [sp, #0x34]
bl rand_ALT
bl PRandom
add r1, r0, #0x0
add r0, r6, #0x0
str r1, [sp, #0x34]
@@ -437,7 +437,7 @@ _02042FE8:
add r0, r0, r1
str r0, [sp, #0x30]
bne _020430DA
bl rand_LC
bl LCRandom
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -464,7 +464,7 @@ _02042FE8:
mov r1, #0x48
add r2, sp, #0x34
bl SetMonData
bl rand_LC
bl LCRandom
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -640,7 +640,7 @@ _020431D4:
bl SetMonData
add r0, r5, #0x0
add r4, r7, #0x0
bl FUN_02021A20
bl String_dtor
_0204322C:
ldr r1, [sp, #0x8]
mov r0, #0x2
@@ -894,7 +894,7 @@ FUN_020433DC: ; 0x020433DC
mov r3, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
add sp, #0x8
pop {r3-r7, pc}

View File

@@ -66,7 +66,7 @@ FUN_02044198: ; 0x02044198
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
bl rand_LC
bl LCRandom
mov r1, #0x64
bl _s32_div_f
lsl r0, r1, #0x10

View File

@@ -180,7 +180,7 @@ FUN_0203FF10: ; 0x0203FF10
ldr r1, [sp, #0x0]
str r0, [r1, #0x0]
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0x38
pop {r3-r7, pc}

View File

@@ -495,7 +495,7 @@ FUN_02040A7C: ; 0x02040A7C
add r2, r6, #0x0
bl FUN_0200ABB4
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0xc
pop {r4-r7, pc}
@@ -512,7 +512,7 @@ FUN_02040AE4: ; 0x02040AE4
bl NewMsgDataFromNarc
add r5, r0, #0x0
add r1, r4, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r4, r0, #0x0
add r0, r5, #0x0
bl DestroyMsgData
@@ -553,7 +553,7 @@ FUN_02040B0C: ; 0x02040B0C
mov r3, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0x8
pop {r4-r6, pc}
@@ -590,7 +590,7 @@ FUN_02040B5C: ; 0x02040B5C
mov r3, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0x8
pop {r4-r6, pc}
@@ -627,7 +627,7 @@ FUN_02040BAC: ; 0x02040BAC
mov r3, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0x8
pop {r4-r6, pc}
@@ -720,7 +720,7 @@ FUN_02040CA4: ; 0x02040CA4
add r5, r0, #0x0
mov r0, #0x16
mov r1, #0x4
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
add r0, r5, #0x0
add r0, #0x80
@@ -751,7 +751,7 @@ FUN_02040CA4: ; 0x02040CA4
mov r3, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -790,7 +790,7 @@ FUN_02040D04: ; 0x02040D04
lsl r0, r5, #0x10
lsr r0, r0, #0x10
mov r1, #0x20
bl FUN_020852E8
bl GetNutName
add r5, r0, #0x0
cmp r4, #0x2
bhs _02040D5A
@@ -808,7 +808,7 @@ _02040D5C:
mov r3, #0x0
bl FUN_0200ABB4
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -884,7 +884,7 @@ FUN_02040DEC: ; 0x02040DEC
mov r0, #0xb
ldrb r6, [r1, #0x0]
add r1, r0, #0x0
bl FUN_020219F4
bl String_ctor
add r5, #0x80
add r4, r0, #0x0
ldr r0, [r5, #0x0]
@@ -904,7 +904,7 @@ FUN_02040DEC: ; 0x02040DEC
add r2, r4, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}

View File

@@ -188,7 +188,7 @@ _02041DC8:
_02041DCE:
mov r0, #0x40
mov r1, #0x20
bl FUN_020219F4
bl String_ctor
add r6, r0, #0x0
add r0, r4, #0x0
add r0, #0x80
@@ -213,13 +213,13 @@ _02041DCE:
mov r1, #0x0
mov r2, #0x2
bl FUN_02028810
bl rand_MT
bl MTRandom
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
bl FUN_02028788
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r5, #0x0
mov r1, #0x0
mov r2, #0x1

View File

@@ -524,7 +524,7 @@ FUN_0204224C: ; 0x0204224C
mov r0, #0x40
mov r1, #0x4
str r3, [sp, #0x8]
bl FUN_020219F4
bl String_ctor
add r1, r7, #0x0
add r4, r0, #0x0
bl FUN_02021E28
@@ -538,7 +538,7 @@ FUN_0204224C: ; 0x0204224C
add r2, r4, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
add sp, #0xc
pop {r4-r7, pc}
.balign 4
@@ -582,7 +582,7 @@ FUN_020422C0: ; 0x020422C0
ldrh r0, [r0, #0x2]
mov r1, #0x4
add r2, sp, #0x8
bl GetSpeciesName
bl GetSpeciesNameIntoArray
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1

View File

@@ -3,14 +3,39 @@
.section .text
.incbin "baserom.nds", 0x4000, 0xC8
.byte 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0x42, 0x6E
.byte 0xF9, 0xCC, 0x54, 0x4B, 0x74, 0x53, 0x91, 0x91, 0xBC, 0x95, 0xD2, 0x12, 0xE1, 0xD0, 0xF0, 0x41
.byte 0xE5, 0xB6, 0x47, 0xA4, 0x23, 0x18, 0x61, 0xE9, 0xC4, 0x0A, 0xA2, 0xAD, 0xF8, 0x77, 0xB5, 0x6E
.byte 0x4C, 0x8D, 0x57, 0x83, 0x2F, 0x99, 0x16, 0x1A, 0x51, 0x4A, 0x6A, 0x1F, 0x07, 0x78, 0x92, 0xD3
.byte 0xDF, 0x3D, 0x25, 0x0E, 0xF5, 0xA5, 0x93, 0x29, 0x1D, 0xC4, 0xA5, 0x97, 0x54, 0xA0, 0xA8, 0xB2
.byte 0x1B, 0x9B, 0x58, 0x3C, 0xA5, 0xA4, 0x9D, 0x8B, 0x9F, 0x13, 0xAB, 0xF8, 0x09, 0x0D, 0x63, 0xE9
.byte 0xAC, 0xF0, 0x80, 0x2D, 0xA7, 0x87, 0x5F, 0x1C, 0xDC, 0x1B, 0x0C, 0x6D, 0xED, 0xB5, 0x46, 0x60
.byte 0x04, 0x1C, 0x11, 0xDF, 0x70, 0x47, 0xEC, 0xA5, 0x91, 0x81, 0x4D, 0xFF, 0x9E, 0x6D, 0x24, 0x87
.byte 0x2E, 0x74, 0xAB, 0x34, 0x55, 0x7A, 0x0C, 0xA4, 0xC7, 0x66, 0xB7, 0x5A, 0xA7, 0x14, 0x64, 0xDE
.byte 0xFD, 0xC7, 0x24, 0xF7, 0xD9, 0xE0, 0x2D, 0x67, 0x16, 0x72, 0xD3, 0x68, 0x8A, 0xA0, 0xE1, 0xD2
.byte 0x09, 0x2A, 0x35, 0xD5, 0x40, 0x75, 0x41, 0xFC, 0xA3, 0xCA, 0xEB, 0x03, 0xDA, 0x58, 0x31, 0x72
.byte 0x00, 0xFF, 0x46, 0xC7, 0xBA, 0xDF, 0xEE, 0x29, 0xC5, 0xE1, 0xDB, 0x7D, 0x1C, 0x37, 0x87, 0x63
.byte 0x9A, 0x5A, 0x23, 0xCA, 0x8C, 0x38, 0x5E, 0x98
non_word_aligned_thumb_func_start SVC_GetCRC16
SVC_GetCRC16: ; 0x020000C8
swi 14
bx lr
thumb_func_end SVC_GetCRC16
.incbin "baserom.nds", 0x40CC, 0xD2
.byte 0x27, 0x2C, 0x80, 0x42, 0xAA, 0x04, 0x05, 0x4F, 0x89, 0xDD, 0x4D, 0x3A, 0xAB, 0xF0, 0xC9, 0x2F
.byte 0xA0, 0xAF, 0x40, 0x64, 0x08, 0xF4, 0xD8, 0x2A, 0x5D, 0xB2, 0x38, 0xD2, 0xBB, 0x11, 0xE9, 0xDA
.byte 0x6F, 0x72, 0x75, 0x37, 0x66, 0x7C, 0x31, 0xB1, 0xAF, 0x8E, 0xD1, 0x97, 0xC6, 0x7F, 0x7C, 0x4A
.byte 0xEA, 0xE7, 0xF6, 0x4D, 0x6D, 0x83, 0x7F, 0xAA, 0xA3, 0x0C, 0x78, 0xF6, 0x1B, 0xF7, 0x13, 0xDD
.byte 0x71, 0x23, 0x45, 0x1B, 0xFB, 0x8D, 0x6E, 0x65, 0x13, 0xB3, 0x08, 0x71, 0x2C, 0xD8, 0xEE, 0x3C
.byte 0x99, 0xB7, 0xC1, 0xA7, 0x2E, 0xDA, 0xA9, 0x58, 0x55, 0x26, 0xAB, 0xC8, 0xBE, 0x0B, 0xD9, 0xCC
.byte 0x0F, 0x9B, 0xE5, 0x3C, 0x83, 0x54, 0x80, 0xF8, 0xCF, 0x0A, 0x15, 0xDF, 0x70, 0x47, 0x26, 0xB5
.byte 0x77, 0xA0, 0x8A, 0x8B, 0xC1, 0x8F, 0xD7, 0x8A, 0xA5, 0xBC, 0xB5, 0x48, 0xD9, 0xC9, 0x29, 0x97
.byte 0x33, 0xAC, 0x12, 0x04, 0x81, 0x8F, 0x99, 0x51, 0x78, 0x77, 0xB3, 0xED, 0xF0, 0x2F, 0x34, 0xE4
.byte 0x30, 0x45, 0x97, 0x29, 0xF7, 0xCC, 0x1B, 0xCF, 0x15, 0x64, 0x9E, 0x7C, 0x94, 0xF0, 0x4A, 0x98
.byte 0x5D, 0x28, 0x94, 0x12, 0x62, 0x2D, 0xE6, 0x82, 0x0D, 0xB4, 0x98, 0xC6, 0x16, 0xD8, 0xB8, 0x94
.byte 0xFE, 0x65, 0xED, 0x31, 0xE5, 0x88, 0xA5, 0xF0, 0xF6, 0xD6, 0x8F, 0xE6, 0x42, 0x7F, 0xF1, 0xBC
.byte 0xA2, 0xD5, 0x0E, 0x50, 0xFC, 0x83, 0x70, 0x45, 0x55, 0xAF, 0xF5, 0x89, 0xE2, 0x69, 0x71, 0xBA
.byte 0xFA, 0x75
non_word_aligned_thumb_func_start SVC_Sqrt
SVC_Sqrt: ; 0x0200019E
@@ -18,18 +43,117 @@ SVC_Sqrt: ; 0x0200019E
bx lr
thumb_func_end SVC_Sqrt
.incbin "baserom.nds", 0x41A2, 0x15C
.byte 0x1C, 0x85, 0x9C, 0xB6, 0x15, 0xC1, 0x40, 0x1B, 0x79, 0x01, 0x96, 0xC4, 0x80, 0x99, 0xF1, 0x28
.byte 0x6E, 0x3E, 0xE1, 0x0D, 0x73, 0xD8, 0x07, 0xCB, 0x75, 0x1C, 0x44, 0x41, 0xC4, 0x60, 0xE5, 0xB0
.byte 0xBA, 0x74, 0xF1, 0x11, 0xA4, 0x7E, 0xE7, 0x00, 0x6A, 0xBB, 0xB6, 0x78, 0x45, 0xDF, 0x93, 0xF2
.byte 0xF3, 0x8B, 0xA1, 0xE4, 0xA4, 0x9B, 0x2B, 0x56, 0xBF, 0xE1, 0x07, 0xE9, 0xEF, 0x0F, 0x7A, 0xA0
.byte 0x0F, 0x49, 0x9D, 0xC9, 0x14, 0x90, 0x63, 0x4D, 0xCD, 0x84, 0x9D, 0xB3, 0x48, 0xB5, 0x92, 0x08
.byte 0x27, 0x5C, 0x2C, 0xC1, 0xD3, 0x49, 0x09, 0x0C, 0xD6, 0xBA, 0xFE, 0xC4, 0xAA, 0xA1, 0x36, 0x88
.byte 0x3E, 0x64, 0x23, 0x34, 0xA5, 0x58, 0xFF, 0x60, 0x27, 0x72, 0x09, 0xDF, 0x08, 0x1C, 0x70, 0x47
.byte 0x63, 0xC7, 0xA0, 0x60, 0x53, 0xFC, 0x9A, 0x98, 0x48, 0x47, 0x42, 0x83, 0xC1, 0xE8, 0x4D, 0xBC
.byte 0xE6, 0xF4, 0x2F, 0xD7, 0x6D, 0x6C, 0xCF, 0x44, 0x0A, 0x68, 0xDC, 0xAC, 0xB8, 0x27, 0x24, 0x44
.byte 0x59, 0x7F, 0x2D, 0xE3, 0x79, 0x0C, 0x6B, 0x9F, 0x4A, 0xF9, 0x5B, 0x1D, 0x57, 0x2A, 0xD5, 0xC2
.byte 0x76, 0x15, 0xF8, 0x04, 0x7B, 0xF1, 0xD3, 0x2B, 0x15, 0xA1, 0x26, 0x29, 0xA2, 0x81, 0xE8, 0x63
.byte 0xC9, 0xBF, 0x1C, 0x88, 0x2A, 0x1A, 0x61, 0x97, 0x12, 0x08, 0xE0, 0x4A, 0x2B, 0x25, 0x72, 0x8C
.byte 0xB8, 0x57, 0xAF, 0xE7, 0x48, 0x62, 0x30, 0x9A, 0x8B, 0x13, 0x4A, 0x79, 0xED, 0x95, 0xED, 0xED
.byte 0x65, 0x56, 0x02, 0x2B, 0xCA, 0x6A, 0x0F, 0x26, 0xC8, 0xC4, 0x94, 0xEB, 0x5A, 0xF2, 0xD2, 0xBE
.byte 0x49, 0x0A, 0x77, 0xAE, 0x17, 0x08, 0x02, 0xD0, 0x35, 0x26, 0x12, 0xDF, 0x70, 0x47, 0xE7, 0xAA
.byte 0x20, 0x31, 0x36, 0x88, 0x88, 0x14, 0xA3, 0x8F, 0x38, 0x7F, 0xA7, 0x30, 0x3F, 0x62, 0xB1, 0xD9
.byte 0x76, 0x59, 0x7B, 0x55, 0xFB, 0x73, 0x2D, 0x64, 0xB0, 0xD1, 0x01, 0x96, 0xDA, 0x04, 0x35, 0x81
.byte 0xF9, 0x35, 0x9D, 0xAE, 0x24, 0x60, 0xFF, 0x5D, 0xE4, 0xD2, 0xC5, 0x8B, 0x2B, 0xD0, 0xC2, 0x24
.byte 0x78, 0x3D, 0xF5, 0x38, 0x2A, 0x78, 0x44, 0xA2, 0x7C, 0xF0, 0x5F, 0x49, 0x9D, 0x40, 0x18, 0xD9
.byte 0xF2, 0x82, 0xB5, 0xC0, 0xC5, 0x59, 0x8A, 0x5E, 0xB5, 0xCF, 0xDC, 0x03, 0xAA, 0xC3, 0x4A, 0x96
.byte 0x12, 0x75, 0xD5, 0xC2, 0xE9, 0x3E, 0xA9, 0x6E, 0xFB, 0x38, 0xAC, 0xB8, 0x5B, 0x94, 0x81, 0xD5
.byte 0x2F, 0x37, 0xC2, 0xD7, 0xC4, 0xEF, 0x6E, 0x8C, 0x1F, 0xFB, 0x36, 0x1D
non_word_aligned_thumb_func_start SVC_CpuSet
SVC_CpuSet: ; 0x020002FE
swi 11
bx lr
.incbin "baserom.nds", 0x4302, 0x2F0
.byte 0x9A, 0xCF, 0x03, 0x50, 0xA1, 0xE4, 0x98, 0xEA, 0x2E, 0x86, 0xBC, 0xBE, 0x31, 0x3D, 0xE8, 0xA4
.byte 0x52, 0x6D, 0x18, 0x28, 0x8F, 0x2C, 0xED, 0x3F, 0xA2, 0xD5, 0x2A, 0xEC, 0x62, 0x15, 0x54, 0xDA
.byte 0x09, 0x05, 0x4D, 0x31, 0x97, 0x87, 0xC8, 0xA9, 0x5D, 0x16, 0x72, 0xAB, 0x72, 0xD1, 0x40, 0xFF
.byte 0x68, 0x58, 0x6C, 0xB0, 0x2F, 0xED, 0x61, 0xA5, 0xF6, 0x2E, 0x9A, 0xE2, 0x68, 0x53, 0xEB, 0xAA
.byte 0x22, 0x7F, 0x5C, 0xA1, 0xFA, 0x16, 0x49, 0x80, 0x6E, 0xDA, 0xFA, 0xAC, 0x1C, 0xE3, 0xC1, 0xC4
.byte 0x5A, 0xCC, 0x0C, 0xDF, 0x70, 0x47, 0xF2, 0x98, 0x8D, 0xBF, 0xE0, 0x13, 0xFA, 0x9B, 0x06, 0x02
.byte 0x9C, 0x8D, 0x25, 0xB2, 0xE3, 0xFD, 0xAE, 0xCF, 0x4E, 0x37, 0x89, 0x20, 0x26, 0xEB, 0xBA, 0xE3
.byte 0x3D, 0xF3, 0x15, 0x0E, 0x6D, 0x4F, 0xE9, 0xB8, 0x97, 0xB8, 0xD8, 0x88, 0xF8, 0xA8, 0xCA, 0x33
.byte 0x4D, 0x95, 0x06, 0x0F, 0xCB, 0xEE, 0x66, 0xFB, 0xA5, 0xF4, 0x74, 0xB4, 0xC0, 0x02, 0xC9, 0xAE
.byte 0x6B, 0x9D, 0x42, 0xF5, 0xD4, 0xF5, 0xBB, 0x4F, 0x36, 0x45, 0xCA, 0x61, 0x8E, 0x81, 0x70, 0x08
.byte 0x8F, 0x53, 0xF6, 0x42, 0x5C, 0x19, 0xB1, 0x88, 0xB6, 0x3C, 0x7F, 0x46, 0xC4, 0x35, 0x85, 0xFC
.byte 0x6F, 0xED, 0xA4, 0xDE, 0x8D, 0x22, 0x9F, 0x0D, 0xE5, 0xFE, 0x0C, 0x64, 0xC3, 0xD4, 0x7D, 0x6A
.byte 0xC8, 0xD9, 0xD9, 0x87, 0xB4, 0x76, 0xAB, 0x7B, 0x00, 0x22, 0x05, 0xDF, 0x70, 0x47, 0x01, 0x76
.byte 0xA5, 0x8A, 0x83, 0xAB, 0x61, 0xBE, 0x95, 0x9E, 0x89, 0xA4, 0xE8, 0xED, 0x31, 0x3C, 0x3E, 0xBF
.byte 0x13, 0x1F, 0x51, 0xDE, 0x0D, 0x0F, 0x91, 0xA0, 0xB8, 0xE3, 0xAA, 0x0E, 0xC6, 0x59, 0xC1, 0x0B
.byte 0x86, 0xDC, 0xE9, 0xCB, 0xFB, 0x42, 0x8A, 0xC8, 0x98, 0x33, 0x4E, 0xAE, 0xB9, 0x3D, 0xCF, 0x31
.byte 0x92, 0x69, 0xA4, 0x74, 0x46, 0x13, 0xCE, 0x6B, 0x6F, 0xE2, 0xDD, 0xE2, 0x4C, 0x3A, 0xF9, 0xCF
.byte 0xA9, 0x28, 0xE8, 0xFE, 0x66, 0xE0, 0x34, 0x8E, 0xE7, 0xEE, 0x1D, 0x01, 0xB0, 0xA6, 0x8D, 0x56
.byte 0xCE, 0xAD, 0x44, 0x4E, 0x56, 0x5F, 0x41, 0x0D, 0x7B, 0xD7, 0x87, 0xA2, 0xF5, 0xF9, 0x86, 0xE7
.byte 0x7F, 0x14, 0xCB, 0x01, 0x51, 0xDB, 0xB0, 0x35, 0x13, 0xDF, 0x70, 0x47, 0xE8, 0xD5, 0x44, 0x23
.byte 0x77, 0x99, 0x4C, 0xF1, 0x0F, 0x18, 0xBF, 0x84, 0x9F, 0xC3, 0xA0, 0x08, 0x8B, 0x9D, 0xD3, 0x34
.byte 0x8B, 0xF8, 0xC6, 0xF3, 0x6E, 0x1E, 0x9A, 0xA3, 0x2E, 0x43, 0xBF, 0x27, 0xE4, 0xED, 0xEF, 0x0D
.byte 0x2E, 0x71, 0xE4, 0x49, 0x74, 0x11, 0xBF, 0x47, 0x7E, 0x65, 0xE1, 0x17, 0x4C, 0x1B, 0x8B, 0xA3
.byte 0x8E, 0x7A, 0x7A, 0xB4, 0x35, 0x6C, 0x9E, 0x51, 0x68, 0x6A, 0x63, 0x2C, 0xF3, 0xCA, 0x58, 0xF3
.byte 0x06, 0x99, 0xF2, 0x47, 0x91, 0x78, 0xCD, 0xFE, 0x4E, 0xE4, 0x99, 0x65, 0x32, 0x52, 0x28, 0xFA
.byte 0xF3, 0xE4, 0xBF, 0xFA, 0x3F, 0x37, 0x36, 0x98, 0x3A, 0x18, 0xA9, 0x42, 0x92, 0x7F, 0xDC, 0x17
.byte 0x59, 0x2F, 0x3A, 0x06, 0x38, 0xDA, 0xE5, 0x27, 0x13, 0x41, 0xD1, 0xEC, 0x95, 0xC6, 0xEC, 0xD6
.byte 0x10, 0xDF, 0x70, 0x47, 0x7E, 0x9D, 0x05, 0xD3, 0xF5, 0x36, 0x3B, 0xE7, 0x7C, 0xAE, 0x81, 0xEF
.byte 0xC8, 0x4B, 0x92, 0xB5, 0x6C, 0x12, 0x4F, 0x3B, 0x26, 0x6A, 0x7E, 0x22, 0xBF, 0x08, 0xAB, 0x6D
.byte 0x5F, 0xFE, 0xB2, 0x12, 0xD8, 0xFA, 0x8E, 0x17, 0x2A, 0x7B, 0xB1, 0xA2, 0x98, 0x69, 0x19, 0xAC
.byte 0xEE, 0x7E, 0x86, 0xA5, 0xD2, 0x7A, 0x4C, 0x7C, 0x17, 0x4A, 0x52, 0x80, 0x45, 0xD3, 0x3A, 0xD5
.byte 0x3D, 0x6C, 0xD7, 0xE5, 0xBD, 0x9A, 0x4A, 0x58, 0x9B, 0x2A, 0xD9, 0xF9, 0x23, 0x02, 0x5E, 0x92
.byte 0x0A, 0x31, 0x23, 0x2B, 0x5C, 0x0F, 0xB4, 0x16, 0x5E, 0x34, 0xED, 0xF2, 0x4A, 0xB6, 0x3C, 0xB6
.byte 0xE5, 0x41, 0xD5, 0x24, 0x3A, 0xBA, 0xFB, 0xF1, 0x6D, 0x2B, 0x6E, 0x6A, 0x6A, 0x88, 0xD5, 0x3E
.byte 0x4F, 0x05, 0x0F, 0xDF, 0x70, 0x47, 0xEC, 0xB5, 0x44, 0xF9, 0x2C, 0xAF, 0x08, 0xE7, 0x9F, 0x4D
.byte 0xA9, 0x31, 0x6A, 0x8C, 0x11, 0xEE, 0x40, 0x23, 0xE5, 0x56, 0xB0, 0x11, 0xDA, 0x7B, 0x25, 0xB6
.byte 0x8D, 0x8B, 0x53, 0xD6, 0xFD, 0xD4, 0x27, 0xDB, 0xDD, 0xBD, 0x83, 0x38, 0xB4, 0x56, 0x60, 0xC5
.byte 0x9F, 0x11, 0xFC, 0xB3, 0xED, 0xE4, 0x32, 0x98, 0x61, 0x6E, 0x1B, 0x0E, 0x14, 0xEB, 0xC5, 0xA3
.byte 0x11, 0x17, 0x21, 0xBA, 0xDC, 0x0A, 0x3D, 0x4D, 0xED, 0x8D, 0xA6, 0x4C, 0x1B, 0xC2, 0xFB, 0xD0
.byte 0xCA, 0xA0, 0x0D, 0xDA, 0x68, 0x2D, 0x5A, 0x77, 0x20, 0xD9, 0xD0, 0x55, 0x5D, 0x3B, 0xC2, 0x1D
.byte 0x4C, 0x93, 0x56, 0x16, 0xCA, 0x36, 0x7E, 0xB0, 0x14, 0xDF, 0x70, 0x47, 0x78, 0x49, 0xE1, 0x21
.byte 0x68, 0x63, 0x9E, 0x8B, 0xE1, 0x36, 0x90, 0x4D, 0xB6, 0x5F, 0x50, 0x3D, 0xBD, 0x26, 0x97, 0xA3
.byte 0x2E, 0x17, 0xA4, 0x89, 0x04, 0xAF, 0x83, 0x71, 0x41, 0x4C, 0x5A, 0x36, 0x75, 0x26, 0x57, 0x13
.byte 0xA7, 0xBC, 0x4C, 0x17, 0xAD, 0x27, 0xBF, 0xF0, 0xFE, 0xB2, 0xFB, 0x7D, 0x7C, 0x2B, 0x6E, 0x9E
.byte 0xAB, 0x44, 0xC4, 0x96, 0xC4, 0x7F, 0xA8, 0xA9, 0x36, 0xCF, 0x5E, 0x26, 0x86, 0x9D, 0x3B, 0x9C
.byte 0xB1, 0x6D, 0xE0, 0xC6, 0x6B, 0x27, 0xBD, 0x38, 0xC8, 0x69, 0xA3, 0xFE, 0x50, 0x6D, 0xE1, 0x54
.byte 0x6E, 0xB2, 0x1C, 0x5D, 0x04, 0x50, 0x0B, 0x71, 0x97, 0x53, 0x7F, 0x6D, 0x1C, 0x80, 0xA9, 0xE2
non_word_aligned_thumb_func_start SVC_WaitByLoop
SVC_WaitByLoop:
swi 3
bx lr
.incbin "baserom.nds", 0x45F6, 0x20A
.byte 0x6E, 0x47, 0x18, 0xE1, 0x7B, 0xB7, 0xC4, 0xAA, 0xEC, 0xC4, 0x6C, 0xFF, 0xED, 0x0B, 0x2B, 0x24
.byte 0xE1, 0xF7, 0xCD, 0xE0, 0x48, 0x7F, 0xE4, 0x61, 0x33, 0x72, 0x52, 0x72, 0x76, 0x05, 0x51, 0x72
.byte 0xF7, 0xCA, 0xFA, 0x86, 0x4A, 0x13, 0xA5, 0x9B, 0xC5, 0x13, 0xF2, 0xFE, 0xA7, 0x3F, 0x2A, 0x69
.byte 0x85, 0xFA, 0xE9, 0x15, 0x66, 0xEC, 0x67, 0xCE, 0x72, 0x11, 0xF5, 0xB2, 0xA4, 0xCF, 0x75, 0x15
.byte 0x42, 0x92, 0x1E, 0x58, 0x98, 0x55, 0xFE, 0xF9, 0xDA, 0x13, 0xE1, 0x6D, 0xCA, 0xAB, 0xD4, 0x00
.byte 0x1B, 0x2A, 0x04, 0x86, 0x5D, 0x9D, 0xEB, 0xF8, 0x58, 0xDC, 0x26, 0x1A, 0xD8, 0xA1, 0x20, 0x65
.byte 0x3F, 0x1D, 0xD8, 0x32, 0x1B, 0x3E, 0xE9, 0x12, 0xE8, 0x25, 0x74, 0x1F, 0xE6, 0xDB, 0xEF, 0x23
.byte 0xF9, 0xE0, 0x99, 0x3C, 0x7E, 0xBF, 0x42, 0x5B, 0x09, 0xDF, 0x70, 0x47, 0xD5, 0x1D, 0xDE, 0x36
.byte 0x47, 0x99, 0xEA, 0x96, 0xE7, 0xB5, 0x3D, 0x2A, 0xAA, 0x23, 0x48, 0x11, 0x04, 0xA5, 0x1A, 0xBC
.byte 0xA9, 0x22, 0x3F, 0x9F, 0x61, 0x10, 0xED, 0x1E, 0x57, 0x72, 0x0E, 0x8F, 0xFA, 0x08, 0x56, 0xEA
.byte 0xA4, 0x16, 0x02, 0xDE, 0x39, 0x73, 0xE2, 0x5A, 0xC0, 0x61, 0x83, 0x79, 0xAD, 0x6F, 0xB4, 0x6D
.byte 0xF8, 0xF7, 0xAC, 0xBB, 0x76, 0xAA, 0xE6, 0x49, 0x79, 0x9E, 0x99, 0x07, 0x3C, 0x23, 0x2E, 0x63
.byte 0xA4, 0x77, 0xBC, 0xCB, 0x3C, 0x64, 0x3C, 0x91, 0x5E, 0x7C, 0xE3, 0xAB, 0xFF, 0xC9, 0xCE, 0x95
.byte 0x7D, 0x97, 0x21, 0x83, 0x13, 0x41, 0x7D, 0x6D, 0x99, 0xCE, 0x7A, 0xBB, 0x7F, 0x7C, 0x98, 0x5C
.byte 0x96, 0x5F, 0x35, 0x78, 0x95, 0x3C, 0xAC, 0x1A, 0x43, 0x07, 0x8B, 0x60, 0xBB, 0x61, 0x7B, 0x3B
.byte 0x59, 0xCF, 0x5D, 0xF4, 0xCA, 0x19, 0x11, 0x2E, 0x06, 0xDF, 0x70, 0x47, 0x7D, 0x64, 0xA1, 0x4D
.byte 0x22, 0xE9, 0x4E, 0xFC, 0x2E, 0xAA, 0x6F, 0x29, 0xBA, 0x38, 0x77, 0xED, 0x0A, 0x33, 0x37, 0xDF
.byte 0x9F, 0xC7, 0x38, 0xC5, 0x80, 0x88, 0x63, 0xBD, 0x75, 0x6E, 0x71, 0x9C, 0x7F, 0xEC, 0x1E, 0x0C
.byte 0x95, 0xF9, 0xCA, 0xA5, 0x1B, 0x89, 0x72, 0xE2, 0x92, 0x88, 0x9B, 0x0D, 0xB7, 0x5C, 0xC0, 0xA8
.byte 0x30, 0x0D, 0xA8, 0x69, 0x74, 0xA0, 0xE1, 0xEE, 0x07, 0x1D, 0x2C, 0x4A, 0xC8, 0x72, 0x9D, 0x14
.byte 0x81, 0xF9, 0x00, 0xDF, 0x70, 0x47, 0xA9, 0xC6, 0x77, 0x11, 0x80, 0x51, 0x50, 0xAC, 0x5B, 0x70
.byte 0x4F, 0x48, 0x21, 0x7E, 0xC4, 0x84, 0x46, 0xDF, 0x05, 0x93, 0x11, 0x89, 0x79, 0x24, 0x15, 0x86
.byte 0x97, 0xC9, 0x86, 0x10, 0x86, 0x5D, 0xC4, 0x34, 0x25, 0x7E, 0x15, 0xDC, 0x45, 0x04, 0x55, 0x74
.byte 0x15, 0x80, 0xEC, 0x90, 0x3C, 0x00, 0x1B, 0xB0, 0xCB, 0xBD, 0x8F, 0x30, 0x02, 0x7F, 0xFD, 0x23
.byte 0x66, 0x78, 0xCC, 0x51, 0x4C, 0x17, 0x4A, 0xD2, 0xD1, 0x81, 0xEC, 0xE2, 0xF2, 0x49, 0xAF, 0x24
.byte 0x49, 0x37, 0x7D, 0x66, 0xE4, 0x50, 0x27, 0x8C, 0xE5, 0x01, 0x1D, 0x72, 0x89, 0xCD, 0x05, 0xD8
.byte 0x72, 0x53, 0x98, 0x7D, 0x2F, 0x51, 0x0B, 0x2B, 0x00, 0x22, 0x04, 0xDF, 0x70, 0x47, 0x5E, 0x7D
.byte 0xDC, 0x69, 0x73, 0xF1, 0x9F, 0xD4, 0xC0, 0xA5, 0x9F, 0x3C, 0xD6, 0xF5, 0x01, 0xF7, 0x6A, 0xF1
.byte 0xE5, 0xCA, 0xAA, 0x6A, 0x3C, 0xA5, 0x81, 0xB6, 0x3C, 0x0A, 0xAC, 0x77, 0x32, 0x54, 0x85, 0x77
.byte 0x7C, 0x56, 0xF9, 0xC9, 0x43, 0x93, 0xA0, 0x61, 0x8D, 0x92, 0x17, 0xBD, 0xDE, 0xAC, 0x1E, 0x35
.byte 0x33, 0xCD, 0xDD, 0xD0, 0x49, 0x49, 0x2A, 0x45, 0xDD, 0x0E, 0x6F, 0xF7, 0x76, 0x20, 0xBF, 0xD8
.byte 0xCE, 0x6A, 0x21, 0x6F, 0x09, 0xA6, 0x03, 0xC2, 0x6B, 0x91, 0x46, 0x86, 0x86, 0x30, 0x16, 0x20
.byte 0x32, 0xBE, 0x4F, 0x6F, 0x6A, 0x34, 0xA8, 0xEB, 0x00, 0x00

View File

@@ -341,7 +341,7 @@ FUN_02002E14: ; 0x02002E14
bl ErrorHandling
_02002E2E:
add r0, r5, #0x0
bl FUN_02021F2C
bl String_c_str
add r1, r0, #0x0
ldr r0, _02002E48 ; =UNK_02106FC8
add r2, r6, #0x0

View File

@@ -21,7 +21,7 @@ FUN_02002F08: ; 0x02002F08
bl ErrorHandling
_02002F22:
add r0, r5, #0x0
bl FUN_02021F2C
bl String_c_str
add r1, r0, #0x0
ldr r0, _02002F3C ; =UNK_02106FC8
add r2, r6, #0x0
@@ -87,7 +87,7 @@ _02002F8C: .word 0x0000FFFF
thumb_func_start FUN_02002F90
FUN_02002F90: ; 0x02002F90
push {r3, lr}
bl FUN_02021F2C
bl String_c_str
bl FUN_02002F58
pop {r3, pc}
@@ -106,7 +106,7 @@ FUN_02002F9C: ; 0x02002F9C
bl ErrorHandling
_02002FB4:
add r0, r5, #0x0
bl FUN_02021F2C
bl String_c_str
add r1, r0, #0x0
ldr r0, _02002FCC ; =UNK_02106FC8
ldr r0, [r0, #0x0]

View File

@@ -70,7 +70,7 @@ _02005D70:
bl FUN_02005DFC
mov r0, #0xe
bl FUN_02004984
bl rand_LC
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2

View File

@@ -1,946 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start LoadSingleElementFromNarc
LoadSingleElementFromNarc: ; 0x0200A384
ldr r3, _0200A388 ; =AllocAndReadWholeNarcMemberByIdPair
bx r3
.balign 4
_0200A388: .word AllocAndReadWholeNarcMemberByIdPair
thumb_func_start FreeMsgDataRawData
FreeMsgDataRawData: ; 0x0200A38C
ldr r3, _0200A390 ; =FreeToHeap
bx r3
.balign 4
_0200A390: .word FreeToHeap
thumb_func_start DecryptMessageDirect
DecryptMessageDirect: ; 0x0200A394
push {r3-r7, lr}
sub sp, #0x8
add r3, r0, #0x0
ldrh r0, [r3, #0x0]
add r5, r1, #0x0
add r4, r2, #0x0
cmp r5, r0
bhs _0200A404
lsl r0, r5, #0x3
add r0, r3, r0
ldr r2, [r0, #0x4]
ldr r1, [r0, #0x8]
ldr r6, _0200A40C ; =0x000002FD
str r2, [sp, #0x0]
str r1, [sp, #0x4]
ldrh r0, [r3, #0x2]
add r7, r5, #0x1
mul r6, r0
add r0, r7, #0x0
mul r0, r6
lsl r0, r0, #0x10
lsr r6, r0, #0x10
lsl r0, r6, #0x10
orr r0, r6
eor r2, r0
eor r0, r1
str r0, [sp, #0x4]
str r2, [sp, #0x0]
add r1, r3, r2
add r0, r4, #0x0
add r2, sp, #0x0
bl CopyEncryptedMessage16
ldr r2, [sp, #0x4]
ldr r0, _0200A410 ; =0x00091BD3
add r1, r7, #0x0
mul r0, r1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
sub r3, r2, #0x1
cmp r2, #0x0
beq _0200A408
ldr r0, _0200A414 ; =0x0000493D
_0200A3EA:
ldrh r1, [r4, #0x0]
eor r1, r5
strh r1, [r4, #0x0]
add r1, r5, r0
lsl r1, r1, #0x10
lsr r5, r1, #0x10
add r1, r3, #0x0
add r4, r4, #0x2
sub r3, r3, #0x1
cmp r1, #0x0
bne _0200A3EA
add sp, #0x8
pop {r3-r7, pc}
_0200A404:
bl ErrorHandling
_0200A408:
add sp, #0x8
pop {r3-r7, pc}
.balign 4
_0200A40C: .word 0x000002FD
_0200A410: .word 0x00091BD3
_0200A414: .word 0x0000493D
thumb_func_start DecryptMessageViaNewNarcHandle
DecryptMessageViaNewNarcHandle: ; 0x0200A418
; r0: narc_id
; r1: ???
; r2: ???
; r3: heap_id
push {r4-r6, lr}
sub sp, #0x10
add r5, r1, #0x0
add r1, r3, #0x0
add r4, r2, #0x0
bl NARC_ctor
add r6, r0, #0x0
beq _0200A4AE
add r1, sp, #0xc
str r1, [sp, #0x0]
add r1, r5, #0x0
mov r2, #0x0
mov r3, #0x4
bl NARC_ReadFromMember
add r0, sp, #0x4
lsl r2, r4, #0x3
str r0, [sp, #0x0]
add r0, r6, #0x0
add r1, r5, #0x0
add r2, r2, #0x4
mov r3, #0x8
bl NARC_ReadFromMember
add r0, sp, #0x4
ldrh r2, [r0, #0xa]
ldr r0, _0200A4B4 ; =0x000002FD
add r1, r4, #0x1
mul r0, r2
mul r0, r1
lsl r0, r0, #0x10
lsr r1, r0, #0x10
lsl r0, r1, #0x10
orr r1, r0
ldr r0, [sp, #0x4]
eor r0, r1
str r0, [sp, #0x4]
ldr r0, [sp, #0x8]
eor r0, r1
str r0, [sp, #0x8]
ldr r0, [sp, #0x20]
add r1, r5, #0x0
str r0, [sp, #0x0]
ldr r3, [sp, #0x8]
ldr r2, [sp, #0x4]
add r0, r6, #0x0
lsl r3, r3, #0x1
bl NARC_ReadFromMember
ldr r2, _0200A4B8 ; =0x00091BD3
add r3, r4, #0x1
mul r2, r3
lsl r2, r2, #0x10
ldr r0, [sp, #0x8]
lsr r3, r2, #0x10
sub r2, r0, #0x1
ldr r1, [sp, #0x20]
cmp r0, #0x0
beq _0200A4A8
ldr r0, _0200A4BC ; =0x0000493D
_0200A492:
ldrh r4, [r1, #0x0]
eor r4, r3
strh r4, [r1, #0x0]
add r3, r3, r0
lsl r3, r3, #0x10
add r4, r2, #0x0
add r1, r1, #0x2
lsr r3, r3, #0x10
sub r2, r2, #0x1
cmp r4, #0x0
bne _0200A492
_0200A4A8:
add r0, r6, #0x0
bl NARC_dtor
_0200A4AE:
add sp, #0x10
pop {r4-r6, pc}
nop
_0200A4B4: .word 0x000002FD
_0200A4B8: .word 0x00091BD3
_0200A4BC: .word 0x0000493D
thumb_func_start CopyEncryptedMessage16
CopyEncryptedMessage16: ; 0x0200A4C0
add r3, r0, #0x0
add r0, r1, #0x0
add r1, r3, #0x0
ldr r2, [r2, #0x4]
ldr r3, _0200A4D0 ; =MIi_CpuCopy16
lsl r2, r2, #0x1
bx r3
nop
_0200A4D0: .word MIi_CpuCopy16
thumb_func_start FUN_0200A4D4
FUN_0200A4D4: ; 0x0200A4D4
push {r3-r7, lr}
sub sp, #0x10
add r5, r0, #0x0
ldrh r0, [r5, #0x0]
add r4, r1, #0x0
str r2, [sp, #0x0]
cmp r4, r0
bhs _0200A56A
lsl r0, r4, #0x3
add r0, r5, r0
ldr r3, [r0, #0x4]
ldr r2, [r0, #0x8]
ldrh r1, [r5, #0x2]
ldr r6, _0200A578 ; =0x000002FD
add r0, r4, #0x1
mul r6, r1
add r1, r0, #0x0
mul r1, r6
lsl r0, r1, #0x10
lsr r1, r0, #0x10
lsl r0, r1, #0x10
orr r1, r0
add r0, r3, #0x0
add r6, r2, #0x0
str r3, [sp, #0x8]
eor r0, r1
eor r6, r1
str r0, [sp, #0x8]
lsl r0, r6, #0x1
str r0, [sp, #0x4]
str r2, [sp, #0xc]
ldr r1, [sp, #0x4]
mov r0, #0x0
str r6, [sp, #0xc]
bl AllocFromHeapAtEnd
add r7, r0, #0x0
beq _0200A574
ldr r0, [sp, #0x8]
ldr r2, [sp, #0x4]
add r0, r5, r0
add r1, r7, #0x0
bl MIi_CpuCopy16
ldr r1, _0200A57C ; =0x00091BD3
add r2, r4, #0x1
mul r1, r2
lsl r1, r1, #0x10
lsr r2, r1, #0x10
add r0, r7, #0x0
sub r1, r6, #0x1
cmp r6, #0x0
beq _0200A556
ldr r3, _0200A580 ; =0x0000493D
_0200A540:
ldrh r4, [r0, #0x0]
eor r4, r2
strh r4, [r0, #0x0]
add r2, r2, r3
lsl r2, r2, #0x10
add r4, r1, #0x0
add r0, r0, #0x2
lsr r2, r2, #0x10
sub r1, r1, #0x1
cmp r4, #0x0
bne _0200A540
_0200A556:
ldr r0, [sp, #0x0]
add r1, r7, #0x0
add r2, r6, #0x0
bl FUN_02021E8C
add r0, r7, #0x0
bl FreeToHeap
add sp, #0x10
pop {r3-r7, pc}
_0200A56A:
bl ErrorHandling
ldr r0, [sp, #0x0]
bl FUN_02021A4C
_0200A574:
add sp, #0x10
pop {r3-r7, pc}
.balign 4
_0200A578: .word 0x000002FD
_0200A57C: .word 0x00091BD3
_0200A580: .word 0x0000493D
thumb_func_start FUN_0200A584
FUN_0200A584: ; 0x0200A584
push {r3-r7, lr}
sub sp, #0x10
add r5, r0, #0x0
ldrh r0, [r5, #0x0]
add r4, r1, #0x0
str r2, [sp, #0x0]
cmp r4, r0
bhs _0200A62C
lsl r0, r4, #0x3
add r0, r5, r0
ldr r3, [r0, #0x4]
ldr r2, [r0, #0x8]
ldrh r1, [r5, #0x2]
ldr r6, _0200A63C ; =0x000002FD
add r0, r4, #0x1
mul r6, r1
add r1, r0, #0x0
mul r1, r6
lsl r0, r1, #0x10
lsr r1, r0, #0x10
lsl r0, r1, #0x10
orr r1, r0
add r0, r3, #0x0
add r6, r2, #0x0
str r3, [sp, #0x8]
eor r0, r1
eor r6, r1
str r0, [sp, #0x8]
lsl r0, r6, #0x1
str r0, [sp, #0x4]
str r2, [sp, #0xc]
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x4]
str r6, [sp, #0xc]
bl AllocFromHeapAtEnd
add r7, r0, #0x0
beq _0200A626
ldr r0, [sp, #0x8]
ldr r2, [sp, #0x4]
add r0, r5, r0
add r1, r7, #0x0
bl MIi_CpuCopy16
ldr r1, _0200A640 ; =0x00091BD3
add r2, r4, #0x1
mul r1, r2
lsl r1, r1, #0x10
lsr r2, r1, #0x10
add r0, r7, #0x0
sub r1, r6, #0x1
cmp r6, #0x0
beq _0200A606
ldr r3, _0200A644 ; =0x0000493D
_0200A5F0:
ldrh r4, [r0, #0x0]
eor r4, r2
strh r4, [r0, #0x0]
add r2, r2, r3
lsl r2, r2, #0x10
add r4, r1, #0x0
add r0, r0, #0x2
lsr r2, r2, #0x10
sub r1, r1, #0x1
cmp r4, #0x0
bne _0200A5F0
_0200A606:
ldr r1, [sp, #0x0]
add r0, r6, #0x0
bl FUN_020219F4
add r4, r0, #0x0
beq _0200A61A
add r1, r7, #0x0
add r2, r6, #0x0
bl FUN_02021E8C
_0200A61A:
add r0, r7, #0x0
bl FreeToHeap
add sp, #0x10
add r0, r4, #0x0
pop {r3-r7, pc}
_0200A626:
add sp, #0x10
mov r0, #0x0
pop {r3-r7, pc}
_0200A62C:
bl ErrorHandling
ldr r1, [sp, #0x0]
mov r0, #0x4
bl FUN_020219F4
add sp, #0x10
pop {r3-r7, pc}
.balign 4
_0200A63C: .word 0x000002FD
_0200A640: .word 0x00091BD3
_0200A644: .word 0x0000493D
thumb_func_start FUN_0200A648
FUN_0200A648: ; 0x0200A648
push {r3-r7, lr}
add r7, r3, #0x0
add r5, r1, #0x0
add r1, r7, #0x0
add r4, r2, #0x0
bl NARC_ctor
add r6, r0, #0x0
beq _0200A66E
ldr r1, [sp, #0x18]
add r2, r4, #0x0
str r1, [sp, #0x0]
add r1, r5, #0x0
add r3, r7, #0x0
bl FUN_0200A670
add r0, r6, #0x0
bl NARC_dtor
_0200A66E:
pop {r3-r7, pc}
thumb_func_start FUN_0200A670
FUN_0200A670: ; 0x0200A670
push {r4-r7, lr}
sub sp, #0x14
add r5, r2, #0x0
add r2, sp, #0x10
add r4, r3, #0x0
str r2, [sp, #0x0]
mov r2, #0x0
mov r3, #0x4
add r7, r0, #0x0
str r1, [sp, #0x4]
bl NARC_ReadFromMember
add r0, sp, #0x8
ldrh r0, [r0, #0x8]
cmp r5, r0
bhs _0200A71E
add r0, sp, #0x8
lsl r2, r5, #0x3
str r0, [sp, #0x0]
ldr r1, [sp, #0x4]
add r0, r7, #0x0
add r2, r2, #0x4
mov r3, #0x8
bl NARC_ReadFromMember
add r0, sp, #0x8
ldrh r2, [r0, #0xa]
ldr r0, _0200A72C ; =0x000002FD
add r1, r5, #0x1
mul r0, r2
mul r0, r1
lsl r0, r0, #0x10
lsr r1, r0, #0x10
lsl r0, r1, #0x10
orr r1, r0
ldr r0, [sp, #0x8]
eor r0, r1
str r0, [sp, #0x8]
ldr r0, [sp, #0xc]
eor r0, r1
lsl r6, r0, #0x1
str r0, [sp, #0xc]
add r0, r4, #0x0
add r1, r6, #0x0
bl AllocFromHeapAtEnd
add r4, r0, #0x0
beq _0200A728
str r4, [sp, #0x0]
ldr r1, [sp, #0x4]
ldr r2, [sp, #0x8]
add r0, r7, #0x0
add r3, r6, #0x0
bl NARC_ReadFromMember
ldr r2, _0200A730 ; =0x00091BD3
add r3, r5, #0x1
mul r2, r3
lsl r2, r2, #0x10
ldr r0, [sp, #0xc]
lsr r3, r2, #0x10
add r1, r4, #0x0
sub r2, r0, #0x1
cmp r0, #0x0
beq _0200A70A
ldr r0, _0200A734 ; =0x0000493D
_0200A6F4:
ldrh r5, [r1, #0x0]
eor r5, r3
strh r5, [r1, #0x0]
add r3, r3, r0
lsl r3, r3, #0x10
add r5, r2, #0x0
add r1, r1, #0x2
lsr r3, r3, #0x10
sub r2, r2, #0x1
cmp r5, #0x0
bne _0200A6F4
_0200A70A:
ldr r0, [sp, #0x28]
ldr r2, [sp, #0xc]
add r1, r4, #0x0
bl FUN_02021E8C
add r0, r4, #0x0
bl FreeToHeap
add sp, #0x14
pop {r4-r7, pc}
_0200A71E:
bl ErrorHandling
ldr r0, [sp, #0x28]
bl FUN_02021A4C
_0200A728:
add sp, #0x14
pop {r4-r7, pc}
.balign 4
_0200A72C: .word 0x000002FD
_0200A730: .word 0x00091BD3
_0200A734: .word 0x0000493D
thumb_func_start FUN_0200A738
FUN_0200A738: ; 0x0200A738
push {r3-r7, lr}
add r6, r3, #0x0
add r5, r1, #0x0
add r1, r6, #0x0
add r4, r2, #0x0
bl NARC_ctor
add r7, r0, #0x0
beq _0200A75E
add r1, r5, #0x0
add r2, r4, #0x0
add r3, r6, #0x0
bl FUN_0200A76C
add r4, r0, #0x0
add r0, r7, #0x0
bl NARC_dtor
b _0200A768
_0200A75E:
mov r0, #0x4
add r1, r6, #0x0
bl FUN_020219F4
add r4, r0, #0x0
_0200A768:
add r0, r4, #0x0
pop {r3-r7, pc}
thumb_func_start FUN_0200A76C
FUN_0200A76C: ; 0x0200A76C
push {r3-r7, lr}
sub sp, #0x18
add r4, r2, #0x0
add r2, sp, #0x14
add r5, r3, #0x0
str r2, [sp, #0x0]
mov r2, #0x0
mov r3, #0x4
add r7, r0, #0x0
str r1, [sp, #0x4]
bl NARC_ReadFromMember
add r0, sp, #0xc
ldrh r0, [r0, #0x8]
cmp r4, r0
bhs _0200A82A
add r0, sp, #0xc
lsl r2, r4, #0x3
str r0, [sp, #0x0]
ldr r1, [sp, #0x4]
add r0, r7, #0x0
add r2, r2, #0x4
mov r3, #0x8
bl NARC_ReadFromMember
add r0, sp, #0xc
ldrh r2, [r0, #0xa]
ldr r0, _0200A83C ; =0x000002FD
add r1, r4, #0x1
mul r0, r2
mul r0, r1
lsl r0, r0, #0x10
lsr r1, r0, #0x10
lsl r0, r1, #0x10
orr r1, r0
ldr r0, [sp, #0xc]
eor r0, r1
str r0, [sp, #0xc]
ldr r0, [sp, #0x10]
eor r0, r1
add r1, r5, #0x0
str r0, [sp, #0x10]
bl FUN_020219F4
str r0, [sp, #0x8]
cmp r0, #0x0
beq _0200A824
ldr r0, [sp, #0x10]
lsl r6, r0, #0x1
add r0, r5, #0x0
add r1, r6, #0x0
bl AllocFromHeapAtEnd
add r5, r0, #0x0
beq _0200A824
str r5, [sp, #0x0]
ldr r1, [sp, #0x4]
ldr r2, [sp, #0xc]
add r0, r7, #0x0
add r3, r6, #0x0
bl NARC_ReadFromMember
ldr r2, _0200A840 ; =0x00091BD3
add r3, r4, #0x1
mul r2, r3
lsl r2, r2, #0x10
ldr r0, [sp, #0x10]
lsr r3, r2, #0x10
add r1, r5, #0x0
sub r2, r0, #0x1
cmp r0, #0x0
beq _0200A814
ldr r0, _0200A844 ; =0x0000493D
_0200A7FE:
ldrh r4, [r1, #0x0]
eor r4, r3
strh r4, [r1, #0x0]
add r3, r3, r0
lsl r3, r3, #0x10
add r4, r2, #0x0
add r1, r1, #0x2
lsr r3, r3, #0x10
sub r2, r2, #0x1
cmp r4, #0x0
bne _0200A7FE
_0200A814:
ldr r0, [sp, #0x8]
ldr r2, [sp, #0x10]
add r1, r5, #0x0
bl FUN_02021E8C
add r0, r5, #0x0
bl FreeToHeap
_0200A824:
ldr r0, [sp, #0x8]
add sp, #0x18
pop {r3-r7, pc}
_0200A82A:
bl ErrorHandling
mov r0, #0x4
add r1, r5, #0x0
bl FUN_020219F4
add sp, #0x18
pop {r3-r7, pc}
nop
_0200A83C: .word 0x000002FD
_0200A840: .word 0x00091BD3
_0200A844: .word 0x0000493D
thumb_func_start FUN_0200A848
FUN_0200A848: ; 0x0200A848
ldrh r0, [r0, #0x0]
bx lr
thumb_func_start FUN_0200A84C
FUN_0200A84C: ; 0x0200A84C
push {r3, lr}
sub sp, #0x8
add r3, r0, #0x0
mov r0, #0x4
add r2, r1, #0x0
str r0, [sp, #0x0]
add r1, r3, #0x0
add r0, sp, #0x4
mov r3, #0x0
bl ReadFromNarcMemberByIdPair
add r0, sp, #0x4
ldrh r0, [r0, #0x0]
add sp, #0x8
pop {r3, pc}
.balign 4
; struct MsgData
; {
; u16 unk0;
; u16 unk2;
; u16 unk4;
; u16 unk6;
; union {
; u16 * raw;
; NARC * narc;
; } data;
; };
thumb_func_start NewMsgDataFromNarc
NewMsgDataFromNarc: ; 0x0200A86C
; r0: msg data type
; r1: NARC ID
; r2: File ID
; r3: heap_id
push {r3-r7, lr}
add r5, r0, #0x0
add r6, r1, #0x0
add r0, r3, #0x0
mov r1, #0xc
add r7, r2, #0x0
str r3, [sp, #0x0]
bl AllocFromHeapAtEnd
add r4, r0, #0x0
beq _0200A8B4
cmp r5, #0x0
bne _0200A8A0
ldr r2, [sp, #0x0]
add r0, r6, #0x0
add r1, r7, #0x0
bl LoadSingleElementFromNarc
str r0, [r4, #0x8]
cmp r0, #0x0
bne _0200A8AA
add r0, r4, #0x0
bl FreeToHeap
mov r0, #0x0
pop {r3-r7, pc}
_0200A8A0:
ldr r1, [sp, #0x0]
add r0, r6, #0x0
bl NARC_ctor
str r0, [r4, #0x8]
_0200A8AA:
strh r5, [r4, #0x0]
strh r6, [r4, #0x4]
ldr r0, [sp, #0x0]
strh r7, [r4, #0x6]
strh r0, [r4, #0x2]
_0200A8B4:
add r0, r4, #0x0
pop {r3-r7, pc}
thumb_func_start DestroyMsgData
DestroyMsgData: ; 0x0200A8B8
push {r4, lr}
add r4, r0, #0x0
beq _0200A8DE
ldrh r0, [r4, #0x0]
cmp r0, #0x0
beq _0200A8CA
cmp r0, #0x1
beq _0200A8D2
b _0200A8D8
_0200A8CA:
ldr r0, [r4, #0x8]
bl FreeMsgDataRawData
b _0200A8D8
_0200A8D2:
ldr r0, [r4, #0x8]
bl NARC_dtor
_0200A8D8:
add r0, r4, #0x0
bl FreeToHeap
_0200A8DE:
pop {r4, pc}
thumb_func_start FUN_0200A8E0
FUN_0200A8E0: ; 0x0200A8E0
push {r3-r4, lr}
sub sp, #0x4
add r4, r0, #0x0
ldrh r0, [r4, #0x0]
add r3, r1, #0x0
cmp r0, #0x0
beq _0200A8F6
cmp r0, #0x1
beq _0200A900
add sp, #0x4
pop {r3-r4, pc}
_0200A8F6:
ldr r0, [r4, #0x8]
bl FUN_0200A4D4
add sp, #0x4
pop {r3-r4, pc}
_0200A900:
str r2, [sp, #0x0]
add r2, r3, #0x0
ldrh r1, [r4, #0x6]
ldrh r3, [r4, #0x2]
ldr r0, [r4, #0x8]
bl FUN_0200A670
add sp, #0x4
pop {r3-r4, pc}
.balign 4
thumb_func_start FUN_0200A914
FUN_0200A914: ; 0x0200A914
push {r3, lr}
add r3, r0, #0x0
ldrh r0, [r3, #0x0]
add r2, r1, #0x0
cmp r0, #0x0
beq _0200A926
cmp r0, #0x1
beq _0200A930
b _0200A93C
_0200A926:
ldrh r2, [r3, #0x2]
ldr r0, [r3, #0x8]
bl FUN_0200A584
pop {r3, pc}
_0200A930:
ldr r0, [r3, #0x8]
ldrh r1, [r3, #0x6]
ldrh r3, [r3, #0x2]
bl FUN_0200A76C
pop {r3, pc}
_0200A93C:
mov r0, #0x0
pop {r3, pc}
thumb_func_start FUN_0200A940
FUN_0200A940: ; 0x0200A940
push {r3, lr}
add r1, r0, #0x0
ldrh r0, [r1, #0x0]
cmp r0, #0x0
beq _0200A950
cmp r0, #0x1
beq _0200A958
b _0200A962
_0200A950:
ldr r0, [r1, #0x8]
bl FUN_0200A848
pop {r3, pc}
_0200A958:
ldrh r0, [r1, #0x4]
ldrh r1, [r1, #0x6]
bl FUN_0200A84C
pop {r3, pc}
_0200A962:
mov r0, #0x0
pop {r3, pc}
.balign 4
thumb_func_start DecryptCopyString
DecryptCopyString: ; 0x0200A968
push {r3-r4, lr}
sub sp, #0x4
add r4, r0, #0x0
ldrh r0, [r4, #0x0]
add r3, r1, #0x0
cmp r0, #0x0
beq _0200A97E
cmp r0, #0x1
beq _0200A988
add sp, #0x4
pop {r3-r4, pc}
_0200A97E:
ldr r0, [r4, #0x8]
bl DecryptMessageDirect
add sp, #0x4
pop {r3-r4, pc}
_0200A988:
str r2, [sp, #0x0]
add r2, r3, #0x0
ldrh r0, [r4, #0x4]
ldrh r1, [r4, #0x6]
ldrh r3, [r4, #0x2]
bl DecryptMessageViaNewNarcHandle
add sp, #0x4
pop {r3-r4, pc}
.balign 4
thumb_func_start GetSpeciesName
GetSpeciesName: ; 0x0200A99C
; r0: species
; r1: heap_id
; r2: dest
push {r4-r6, lr}
add r4, r2, #0x0
add r5, r0, #0x0
add r3, r1, #0x0
ldr r2, _0200A9C0 ; =0x0000016A
mov r0, #0x1
mov r1, #0x1a ; NARC_MSGDATA_MSG
bl NewMsgDataFromNarc
add r6, r0, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
bl DecryptCopyString
add r0, r6, #0x0
bl DestroyMsgData
pop {r4-r6, pc}
.balign 4
_0200A9C0: .word 0x0000016A
thumb_func_start FUN_0200A9C4
FUN_0200A9C4: ; 0x0200A9C4
push {r3-r7, lr}
sub sp, #0x8
add r7, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x4]
add r5, r1, #0x0
mov r0, #0x1
ldr r1, [sp, #0x4]
lsl r0, r0, #0xa
add r6, r2, #0x0
str r3, [sp, #0x0]
bl FUN_020219F4
add r4, r0, #0x0
beq _0200AA0E
add r0, r5, #0x0
add r1, r6, #0x0
bl FUN_0200A914
add r5, r0, #0x0
beq _0200AA08
add r0, r7, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
bl FUN_0200B7B8
ldr r1, [sp, #0x0]
add r0, r4, #0x0
bl FUN_02021ACC
str r0, [sp, #0x4]
add r0, r5, #0x0
bl FUN_02021A20
_0200AA08:
add r0, r4, #0x0
bl FUN_02021A20
_0200AA0E:
ldr r0, [sp, #0x4]
add sp, #0x8
pop {r3-r7, pc}
thumb_func_start FUN_0200AA14
FUN_0200AA14: ; 0x0200AA14
push {r4-r6, lr}
add r5, r1, #0x0
mov r2, #0x93
add r6, r0, #0x0
mov r0, #0x1
mov r1, #0x1a
lsl r2, r2, #0x2
add r3, r5, #0x0
bl NewMsgDataFromNarc
add r4, r0, #0x0
beq _0200AA4C
mov r0, #0x10
add r1, r5, #0x0
bl FUN_020219F4
add r5, r0, #0x0
beq _0200AA42
add r0, r4, #0x0
add r1, r6, #0x0
add r2, r5, #0x0
bl FUN_0200A8E0
_0200AA42:
add r0, r4, #0x0
bl DestroyMsgData
add r0, r5, #0x0
pop {r4-r6, pc}
_0200AA4C:
mov r0, #0x0
pop {r4-r6, pc}
thumb_func_start FUN_0200AA50
FUN_0200AA50: ; 0x0200AA50
push {r3-r5, lr}
ldr r2, _0200AA7C ; =0x0000016A
add r4, r0, #0x0
add r3, r1, #0x0
mov r0, #0x1
mov r1, #0x1a
bl NewMsgDataFromNarc
add r5, r0, #0x0
beq _0200AA76
add r1, r4, #0x0
bl FUN_0200A914
add r4, r0, #0x0
add r0, r5, #0x0
bl DestroyMsgData
add r0, r4, #0x0
pop {r3-r5, pc}
_0200AA76:
mov r0, #0x0
pop {r3-r5, pc}
nop
_0200AA7C: .word 0x0000016A

View File

@@ -53,7 +53,7 @@ _0200AAAA:
str r0, [r4, #0x4]
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x4]
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0xc]
cmp r0, #0x0
beq _0200AB10
@@ -72,7 +72,7 @@ _0200AAE0:
bl FUN_0200AB6C
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x4]
bl FUN_020219F4
bl String_ctor
ldr r1, [r4, #0x8]
add r1, r1, r5
str r0, [r1, #0x4]
@@ -120,7 +120,7 @@ _0200AB36:
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0200AB4E
bl FUN_02021A20
bl String_dtor
ldr r0, [r5, #0x0]
add r6, r6, #0x1
add r4, #0x8
@@ -133,7 +133,7 @@ _0200AB54:
ldr r0, [r5, #0xc]
cmp r0, #0x0
beq _0200AB5E
bl FUN_02021A20
bl String_dtor
_0200AB5E:
mov r0, #0x0
str r0, [r5, #0x0]
@@ -181,7 +181,7 @@ _0200ABA4:
add r0, r1, r0
ldr r0, [r0, #0x4]
add r1, r7, #0x0
bl FUN_02021A74
bl StringCopy
_0200ABB2:
pop {r3-r7, pc}
@@ -251,13 +251,13 @@ FUN_0200AC0C: ; 0x0200AC0C
ldr r2, [r5, #0xc]
add r0, r4, #0x0
mov r1, #0x1
bl FUN_0200A8E0
bl ReadMsgDataIntoString
b _0200AC48
_0200AC3E:
ldr r2, [r5, #0xc]
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
_0200AC48:
ldr r2, [r5, #0xc]
add r0, r5, #0x0
@@ -289,7 +289,7 @@ FUN_0200AC60: ; 0x0200AC60
add r1, r0, #0x0
ldr r2, [r5, #0xc]
add r0, r4, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r6, #0x0
@@ -330,7 +330,7 @@ FUN_0200ACC0: ; 0x0200ACC0
ldr r2, [r5, #0xc]
add r1, r6, #0x0
add r7, r0, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -411,7 +411,7 @@ FUN_0200AD5C: ; 0x0200AD5C
beq _0200AD90
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -439,7 +439,7 @@ FUN_0200AD94: ; 0x0200AD94
beq _0200ADC8
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -467,7 +467,7 @@ FUN_0200ADCC: ; 0x0200ADCC
beq _0200AE00
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -493,7 +493,7 @@ FUN_0200AE04: ; 0x0200AE04
ldr r2, [r5, #0xc]
add r1, r6, #0x0
add r7, r0, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -520,7 +520,7 @@ FUN_0200AE38: ; 0x0200AE38
beq _0200AE6C
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -547,7 +547,7 @@ FUN_0200AE70: ; 0x0200AE70
beq _0200AEA2
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -575,7 +575,7 @@ FUN_0200AEA8: ; 0x0200AEA8
beq _0200AEDA
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -603,7 +603,7 @@ FUN_0200AEE0: ; 0x0200AEE0
beq _0200AF12
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -631,7 +631,7 @@ FUN_0200AF18: ; 0x0200AF18
beq _0200AF4A
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -659,7 +659,7 @@ FUN_0200AF50: ; 0x0200AF50
beq _0200AF82
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -687,7 +687,7 @@ FUN_0200AF88: ; 0x0200AF88
beq _0200AFBA
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -714,7 +714,7 @@ FUN_0200AFBC: ; 0x0200AFBC
beq _0200AFF0
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -741,7 +741,7 @@ FUN_0200AFF4: ; 0x0200AFF4
beq _0200B026
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -769,7 +769,7 @@ FUN_0200B02C: ; 0x0200B02C
beq _0200B05E
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -798,7 +798,7 @@ FUN_0200B064: ; 0x0200B064
beq _0200B098
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -825,7 +825,7 @@ FUN_0200B09C: ; 0x0200B09C
beq _0200B0CE
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -854,7 +854,7 @@ FUN_0200B0D4: ; 0x0200B0D4
beq _0200B108
ldrb r1, [r4, #0x1]
ldr r2, [r5, #0xc]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r6, #0x0
@@ -881,7 +881,7 @@ FUN_0200B10C: ; 0x0200B10C
beq _0200B13E
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -926,7 +926,7 @@ FUN_0200B164: ; 0x0200B164
beq _0200B196
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -954,7 +954,7 @@ FUN_0200B19C: ; 0x0200B19C
beq _0200B1CE
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -982,7 +982,7 @@ FUN_0200B1D4: ; 0x0200B1D4
beq _0200B206
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1011,7 +1011,7 @@ FUN_0200B20C: ; 0x0200B20C
beq _0200B240
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1038,7 +1038,7 @@ FUN_0200B244: ; 0x0200B244
beq _0200B276
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1064,7 +1064,7 @@ FUN_0200B278: ; 0x0200B278
beq _0200B2AA
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1090,7 +1090,7 @@ FUN_0200B2AC: ; 0x0200B2AC
beq _0200B2DE
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1116,7 +1116,7 @@ FUN_0200B2E0: ; 0x0200B2E0
beq _0200B312
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1144,7 +1144,7 @@ FUN_0200B318: ; 0x0200B318
beq _0200B34A
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1172,7 +1172,7 @@ FUN_0200B350: ; 0x0200B350
beq _0200B382
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1201,7 +1201,7 @@ FUN_0200B388: ; 0x0200B388
beq _0200B3BC
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1233,16 +1233,16 @@ FUN_0200B3C0: ; 0x0200B3C0
_0200B3E0:
ldr r2, [r5, #0xc]
mov r1, #0x44
bl FUN_0200A8E0
bl ReadMsgDataIntoString
b _0200B3FA
_0200B3EA:
ldr r2, [r5, #0xc]
mov r1, #0x45
bl FUN_0200A8E0
bl ReadMsgDataIntoString
b _0200B3FA
_0200B3F4:
ldr r0, [r5, #0xc]
bl FUN_02021A4C
bl StringSetEmpty
_0200B3FA:
ldr r2, [r5, #0xc]
add r0, r5, #0x0
@@ -1286,7 +1286,7 @@ FUN_0200B430: ; 0x0200B430
beq _0200B462
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1314,7 +1314,7 @@ FUN_0200B468: ; 0x0200B468
beq _0200B49A
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1343,7 +1343,7 @@ FUN_0200B4A0: ; 0x0200B4A0
beq _0200B4D4
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1375,7 +1375,7 @@ FUN_0200B4D8: ; 0x0200B4D8
beq _0200B516
ldr r2, [r5, #0xc]
add r1, r4, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r6, #0x0
@@ -1416,7 +1416,7 @@ FUN_0200B534: ; 0x0200B534
beq _0200B566
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1442,7 +1442,7 @@ FUN_0200B568: ; 0x0200B568
beq _0200B59A
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1474,13 +1474,13 @@ FUN_0200B59C: ; 0x0200B59C
bl NewMsgDataFromNarc
add r6, r0, #0x0
beq _0200B61E
bl FUN_0200A940
bl MsgDataGetCount
cmp r4, r0
bhs _0200B5EE
ldr r2, [r5, #0xc]
add r0, r6, #0x0
add r1, r4, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r7, #0x0
@@ -1501,7 +1501,7 @@ _0200B5EE:
beq _0200B61E
ldr r2, [r5, #0xc]
mov r1, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r7, #0x0
@@ -1530,7 +1530,7 @@ FUN_0200B628: ; 0x0200B628
beq _0200B65A
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1558,7 +1558,7 @@ FUN_0200B660: ; 0x0200B660
beq _0200B692
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1586,7 +1586,7 @@ FUN_0200B698: ; 0x0200B698
beq _0200B6CA
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1615,7 +1615,7 @@ FUN_0200B6D0: ; 0x0200B6D0
beq _0200B704
ldr r2, [r5, #0xc]
add r1, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1646,7 +1646,7 @@ FUN_0200B708: ; 0x0200B708
add r7, r0, #0x0
mov r0, #0x40
mov r1, #0x4
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
ldr r2, [sp, #0x28]
add r0, r6, #0x0
@@ -1664,7 +1664,7 @@ FUN_0200B708: ; 0x0200B708
str r7, [sp, #0x4]
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
add sp, #0x14
pop {r4-r7, pc}
@@ -1692,7 +1692,7 @@ _0200B788:
ldr r2, [r5, #0xc]
add r0, r6, #0x0
sub r1, r4, #0x1
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r7, #0x0
@@ -1715,16 +1715,16 @@ FUN_0200B7A8: ; 0x0200B7A8
.balign 4
_0200B7B4: .word FUN_02021FF8
thumb_func_start FUN_0200B7B8
FUN_0200B7B8: ; 0x0200B7B8
thumb_func_start StringExpandPlaceholders
StringExpandPlaceholders: ; 0x0200B7B8
push {r3-r7, lr}
add r7, r0, #0x0
add r6, r1, #0x0
add r0, r2, #0x0
bl FUN_02021F2C
bl String_c_str
add r5, r0, #0x0
add r0, r6, #0x0
bl FUN_02021A4C
bl StringSetEmpty
ldrh r1, [r5, #0x0]
ldr r0, _0200B844 ; =0x0000FFFF
cmp r1, r0
@@ -1800,7 +1800,7 @@ _0200B85A:
ldr r0, [r5, #0x8]
add r0, r0, r4
ldr r0, [r0, #0x4]
bl FUN_02021A4C
bl StringSetEmpty
ldr r0, [r5, #0x0]
add r6, r6, #0x1
add r4, #0x8

View File

@@ -2442,7 +2442,7 @@ FUN_02012880: ; 0x02012880
beq _0201289E
add r0, r6, #0x0
add r1, r7, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r4, #0x0]
str r5, [r4, #0x4]
_0201289E:
@@ -2460,7 +2460,7 @@ FUN_020128A0: ; 0x020128A0
beq _020128BE
ldr r1, [sp, #0x0]
add r0, r6, #0x0
bl FUN_02021ACC
bl StringDup
str r0, [r4, #0x0]
str r5, [r4, #0x4]
_020128BE:
@@ -2537,7 +2537,7 @@ _0201292E:
ldr r0, [r5, #0x0]
cmp r0, #0x0
beq _02012942
bl FUN_02021A20
bl String_dtor
str r4, [r5, #0x0]
add r5, #0x8
ldr r0, [r5, #0x0]

View File

@@ -1500,7 +1500,7 @@ FUN_02013690: ; 0x02013690
add r1, r5, #0x0
str r0, [r4, #0x0]
mov r0, #0x4
bl FUN_020219F4
bl String_ctor
ldr r1, _020136BC ; =UNK_020ED548
str r0, [r4, #0x4]
bl FUN_02021E28
@@ -1523,7 +1523,7 @@ _020136CA:
ldr r0, [r4, #0x4]
cmp r0, #0x0
beq _020136D8
bl FUN_02021A20
bl String_dtor
_020136D8:
add r0, r4, #0x0
bl FreeToHeap

View File

@@ -167,7 +167,7 @@ _02013800:
ldrh r2, [r2, #0x2]
add r0, r6, #0x0
add r1, r5, #0x0
bl FUN_0200A9C4
bl ReadMsgData_ExpandPlaceholders
add r4, r0, #0x0
add r0, r5, #0x0
bl DestroyMsgData
@@ -191,7 +191,7 @@ FUN_02013840: ; 0x02013840
ldr r1, _02013858 ; =UNK_020ED54C
ldrh r1, [r1, r2]
ldrh r2, [r4, #0x2]
bl FUN_0200A738
bl ReadMsgData_NewNarc_NewString
pop {r4, pc}
.balign 4
_02013858: .word UNK_020ED54C
@@ -259,9 +259,9 @@ _020138BC:
mov r0, #0x1a
add r2, r4, #0x0
mov r3, #0x0
bl FUN_0200A738
bl ReadMsgData_NewNarc_NewString
str r0, [sp, #0x0]
bl FUN_02021F2C
bl String_c_str
add r4, r0, #0x0
ldrh r1, [r4, #0x0]
ldr r0, _02013914 ; =0x0000FFFF
@@ -291,7 +291,7 @@ _020138FE:
bne _020138E2
_02013904:
ldr r0, [sp, #0x0]
bl FUN_02021A20
bl String_dtor
add r0, r5, #0x0
pop {r3-r7, pc}
nop

View File

@@ -161,7 +161,7 @@ FUN_02013A30: ; 0x02013A30
add r0, r5, r0
ldr r0, [r0, #0x4]
add r2, r4, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add sp, #0x8
pop {r3-r5, pc}
.balign 4
@@ -187,12 +187,12 @@ FUN_02013A58: ; 0x02013A58
ldr r1, [sp, #0x8]
ldr r2, [sp, #0x4]
mov r0, #0x1a
bl FUN_0200A648
bl ReadMsgData_NewNarc_ExistingString
add sp, #0xc
pop {r3-r4, pc}
_02013A88:
add r0, r4, #0x0
bl FUN_02021A4C
bl StringSetEmpty
add sp, #0xc
pop {r3-r4, pc}
nop
@@ -344,7 +344,7 @@ _02013B8A:
blo _02013B80
cmp r4, #0x0
beq _02013BC4
bl rand_LC
bl LCRandom
add r1, r4, #0x0
bl _u32_div_f
ldr r4, [r5, #0x4]

View File

@@ -40,12 +40,12 @@ FUN_02014518: ; 0x02014518
_0201453E:
mov r0, #0x16
add r1, r7, #0x0
bl FUN_020219F4
bl String_ctor
str r0, [r5, #0x4]
ldr r0, [r6, #0x0]
ldr r2, [r5, #0x4]
add r1, r4, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x1d
@@ -64,7 +64,7 @@ FUN_02014564: ; 0x02014564
add r5, #0x70
_0201456E:
ldr r0, [r5, #0x4]
bl FUN_02021A20
bl String_dtor
sub r5, r5, #0x4
sub r4, r4, #0x1
bpl _0201456E

View File

@@ -2352,7 +2352,7 @@ FUN_02017C6C: ; 0x02017C6C
add r0, sp, #0x4
add r3, r2, #0x0
str r1, [sp, #0x0]
bl FUN_0201BB74
bl MTX22_2DAffine
mov r3, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -9036,7 +9036,7 @@ _0201ACEA:
ldr r2, [r4, #0x7c]
ldr r3, [r3, #0x0]
add r0, sp, #0x38
bl FUN_0201BB74
bl MTX22_2DAffine
ldr r0, [r4, #0x6c]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -9088,7 +9088,7 @@ _0201AD4E:
ldr r2, [r2, #0x0]
ldr r3, [r3, #0x0]
add r0, sp, #0x28
bl FUN_0201BB74
bl MTX22_2DAffine
add r0, r4, #0x0
add r0, #0x98
ldr r0, [r0, #0x0]
@@ -9180,7 +9180,7 @@ _0201AE04:
ldr r2, [r4, r2]
ldr r3, [r4, r3]
add r0, sp, #0x18
bl FUN_0201BB74
bl MTX22_2DAffine
mov r3, #0x47
lsl r3, r3, #0x2
ldr r0, [r4, r3]
@@ -9235,7 +9235,7 @@ _0201AE72:
ldr r2, [r4, r2]
ldr r3, [r4, r3]
add r0, sp, #0x8
bl FUN_0201BB74
bl MTX22_2DAffine
mov r3, #0x52
lsl r3, r3, #0x2
ldr r0, [r4, r3]

View File

@@ -1,83 +0,0 @@
.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start FUN_0201B8B8
FUN_0201B8B8: ; 0x0201B8B8
push {r4, lr}
add r4, r0, #0x0
ldrh r1, [r4, #0x0]
ldr r0, _0201B8DC ; =0x0000FFFE
cmp r1, r0
beq _0201B8C8
bl ErrorHandling
_0201B8C8:
ldrh r1, [r4, #0x0]
ldr r0, _0201B8DC ; =0x0000FFFE
cmp r1, r0
bne _0201B8D8
ldrh r0, [r4, #0x4]
add r1, r4, #0x6
lsl r0, r0, #0x1
add r4, r1, r0
_0201B8D8:
add r0, r4, #0x0
pop {r4, pc}
.balign 4
_0201B8DC: .word 0x0000FFFE
thumb_func_start FUN_0201B8E0
FUN_0201B8E0: ; 0x0201B8E0
push {r4, lr}
add r4, r0, #0x0
ldrh r1, [r4, #0x0]
ldr r0, _0201B8F4 ; =0x0000FFFE
cmp r1, r0
beq _0201B8F0
bl ErrorHandling
_0201B8F0:
ldrh r0, [r4, #0x2]
pop {r4, pc}
.balign 4
_0201B8F4: .word 0x0000FFFE
thumb_func_start FUN_0201B8F8
FUN_0201B8F8: ; 0x0201B8F8
push {r3, lr}
bl FUN_0201B8E0
mov r1, #0xff
lsl r1, r1, #0x8
and r1, r0
mov r0, #0x1
lsl r0, r0, #0x8
cmp r1, r0
bne _0201B910
mov r0, #0x1
pop {r3, pc}
_0201B910:
mov r0, #0x0
pop {r3, pc}
thumb_func_start FUN_0201B914
FUN_0201B914: ; 0x0201B914
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
ldrh r1, [r5, #0x0]
ldr r0, _0201B938 ; =0x0000FFFE
cmp r1, r0
beq _0201B926
bl ErrorHandling
_0201B926:
ldrh r0, [r5, #0x4]
cmp r4, r0
blo _0201B930
bl ErrorHandling
_0201B930:
lsl r0, r4, #0x1
add r0, r5, r0
ldrh r0, [r0, #0x6]
pop {r3-r5, pc}
.balign 4
_0201B938: .word 0x0000FFFE

View File

@@ -345,7 +345,7 @@ _0201BEF4:
ldmia r3!, {r0-r1}
stmia r2!, {r0-r1}
ldr r0, [r4, #0x0]
bl FUN_02021F2C
bl String_c_str
str r0, [r4, #0x0]
ldr r0, _0201BFD4 ; =UNK_021C570C
str r5, [r4, #0x18]

View File

@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
.extern UNK_020EDF50
.extern gSineTable
.extern UNK_020FFA38
.text
@@ -459,7 +459,7 @@ FUN_0201CB20: ; 0x0201CB20
add r6, r1, #0x0
add r5, r2, #0x0
lsl r1, r6, #0x2
ldr r2, _0201CB78 ; =UNK_020EDF50
ldr r2, _0201CB78 ; =gSineTable
add r6, #0x5a
add r4, r3, #0x0
lsl r3, r6, #0x2
@@ -468,7 +468,7 @@ FUN_0201CB20: ; 0x0201CB20
add r7, r0, #0x0
bl MTX_RotX33_
lsl r1, r5, #0x2
ldr r3, _0201CB78 ; =UNK_020EDF50
ldr r3, _0201CB78 ; =gSineTable
add r5, #0x5a
lsl r2, r5, #0x2
ldr r1, [r3, r1]
@@ -480,7 +480,7 @@ FUN_0201CB20: ; 0x0201CB20
add r2, r7, #0x0
bl MTX_Concat33
lsl r1, r4, #0x2
ldr r3, _0201CB78 ; =UNK_020EDF50
ldr r3, _0201CB78 ; =gSineTable
add r4, #0x5a
lsl r2, r4, #0x2
ldr r1, [r3, r1]
@@ -494,7 +494,7 @@ FUN_0201CB20: ; 0x0201CB20
add sp, #0x24
pop {r4-r7, pc}
.balign 4
_0201CB78: .word UNK_020EDF50
_0201CB78: .word gSineTable
thumb_func_start FUN_0201CB7C
FUN_0201CB7C: ; 0x0201CB7C

View File

@@ -128,8 +128,8 @@ _020219E8:
_020219EC: .word 0x0000FFFF
_020219F0: .word 0x00000203
thumb_func_start FUN_020219F4
FUN_020219F4: ; 0x020219F4
thumb_func_start String_ctor
String_ctor: ; 0x020219F4
push {r4, lr}
add r4, r0, #0x0
add r0, r1, #0x0
@@ -151,8 +151,8 @@ _02021A14:
_02021A18: .word 0xB6F8D2EC
_02021A1C: .word 0x0000FFFF
thumb_func_start FUN_02021A20
FUN_02021A20: ; 0x02021A20
thumb_func_start String_dtor
String_dtor: ; 0x02021A20
push {r4, lr}
add r4, r0, #0x0
bne _02021A2A
@@ -173,8 +173,8 @@ _02021A36:
_02021A44: .word 0xB6F8D2EC
_02021A48: .word 0xB6F8D2ED
thumb_func_start FUN_02021A4C
FUN_02021A4C: ; 0x02021A4C
thumb_func_start StringSetEmpty
StringSetEmpty: ; 0x02021A4C
push {r4, lr}
add r4, r0, #0x0
bne _02021A56
@@ -195,8 +195,8 @@ _02021A62:
_02021A6C: .word 0xB6F8D2EC
_02021A70: .word 0x0000FFFF
thumb_func_start FUN_02021A74
FUN_02021A74: ; 0x02021A74
thumb_func_start StringCopy
StringCopy: ; 0x02021A74
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
@@ -240,8 +240,8 @@ _02021AC0:
nop
_02021AC8: .word 0xB6F8D2EC
thumb_func_start FUN_02021ACC
FUN_02021ACC: ; 0x02021ACC
thumb_func_start StringDup
StringDup: ; 0x02021ACC
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
@@ -258,11 +258,11 @@ _02021AE6:
ldrh r0, [r5, #0x2]
add r1, r4, #0x0
add r0, r0, #0x1
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
beq _02021AFA
add r1, r5, #0x0
bl FUN_02021A74
bl StringCopy
_02021AFA:
add r0, r4, #0x0
pop {r3-r5, pc}
@@ -312,7 +312,7 @@ _02021B48:
str r0, [sp, #0x4]
_02021B4C:
add r0, r5, #0x0
bl FUN_02021A4C
bl StringSetEmpty
cmp r4, #0x0
beq _02021B74
mov r0, #0x0
@@ -680,7 +680,7 @@ _02021DEC:
blt _02021DDE
_02021DF6:
add r0, r7, #0x0
bl FUN_02021A4C
bl StringSetEmpty
ldrh r0, [r5, #0x2]
cmp r4, r0
bge _02021E20
@@ -843,8 +843,8 @@ _02021F22:
.balign 4
_02021F28: .word 0xB6F8D2EC
thumb_func_start FUN_02021F2C
FUN_02021F2C: ; 0x02021F2C
thumb_func_start String_c_str
String_c_str: ; 0x02021F2C
push {r4, lr}
add r4, r0, #0x0
bne _02021F36

View File

@@ -109,7 +109,7 @@ FUN_0202395C: ; 0x0202395C
_02023970:
add r0, r5, #0x0
add r1, r4, #0x0
bl StringCopy
bl CopyU16StringArray
pop {r3-r5, pc}
.balign 4
@@ -144,7 +144,7 @@ FUN_020239A0: ; 0x020239A0
push {r3-r5, lr}
add r5, r0, #0x0
mov r0, #0x8
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0

View File

@@ -61,7 +61,7 @@ FUN_02023AF4: ; 0x02023AF4
push {r3-r5, lr}
add r5, r0, #0x0
mov r0, #0x18
bl FUN_020219F4
bl String_ctor
add r1, r5, #0x0
add r4, r0, #0x0
bl FUN_02021E28
@@ -232,7 +232,7 @@ FUN_02023C04: ; 0x02023C04
add r6, r0, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r6, #0x0
bl DestroyMsgData
pop {r4-r6, pc}

View File

@@ -78,7 +78,7 @@ FUN_02025128: ; 0x02025128
push {r3-r7, lr}
sub sp, #0x8
add r7, r0, #0x0
bl FUN_02085258
bl OpenNutsDataNarc
str r0, [sp, #0x0]
add r0, r7, #0x0
mov r1, #0xc0
@@ -90,18 +90,18 @@ _02025142:
ldr r0, [sp, #0x0]
add r1, r6, #0x0
add r2, r7, #0x0
bl FUN_02085264
bl ReadNutDataFromNarc
add r4, r0, #0x0
mov r1, #0x3
bl FUN_02085290
bl GetNutAttr
strb r0, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x4
bl FUN_02085290
bl GetNutAttr
strb r0, [r5, #0x1]
add r0, r4, #0x0
mov r1, #0x2
bl FUN_02085290
bl GetNutAttr
strb r0, [r5, #0x2]
add r0, r4, #0x0
bl FreeToHeap
@@ -110,7 +110,7 @@ _02025142:
cmp r6, #0x40
blt _02025142
ldr r0, [sp, #0x0]
bl FUN_0208526C
bl CloseNutsDataNarc
ldr r0, [sp, #0x4]
add sp, #0x8
pop {r3-r7, pc}

View File

@@ -100,7 +100,7 @@ FUN_020256DC: ; 0x020256DC
add r1, r0, #0x0
add r0, r5, #0x0
add r0, #0x8
bl StringCopy
bl CopyU16StringArray
add r0, r6, #0x0
bl FUN_020239CC
strb r0, [r5, #0x4]

View File

@@ -300,7 +300,7 @@ _02025B28:
ldr r1, [r0, #0x0]
ldr r0, [sp, #0x0]
add r0, r1, r0
bl rand_ALT
bl PRandom
add r1, r6, #0x0
add r1, #0x94
str r0, [r1, #0x0]

View File

@@ -117,7 +117,7 @@ FUN_02027ED0: ; 0x02027ED0
mov r6, #0x2
mov r7, #0x5
_02027EDC:
bl rand_LC
bl LCRandom
add r1, r7, #0x0
bl _s32_div_f
lsl r0, r1, #0x18

View File

@@ -76,7 +76,7 @@ _0202875C:
bls _02028770
_02028762:
ldr r0, [r5, #0x28]
bl rand_ALT
bl PRandom
add r4, r4, #0x1
str r0, [r5, #0x28]
cmp r4, r6
@@ -108,7 +108,7 @@ FUN_02028788: ; 0x02028788
add r0, r5, r4
str r2, [r0, #0x24]
add r0, r2, #0x0
bl rand_ALT
bl PRandom
add r1, r5, r4
str r0, [r1, #0x28]
pop {r3-r5, pc}

View File

@@ -907,7 +907,7 @@ FUN_0202A798: ; 0x0202A798
lsr r1, r1, #0x1f
add r1, #0x16
add r2, #0x8
bl DecryptCopyString
bl ReadMsgDataIntoU16Array
ldr r0, [sp, #0x0]
bl DestroyMsgData
b _0202A7FC

View File

@@ -18,9 +18,9 @@ FUN_0202A92C: ; 0x0202A92C
mov r1, #0x0
lsl r2, r2, #0x2
bl memset
bl rand_MT
bl MTRandom
str r0, [r4, #0x0]
bl rand_MT
bl MTRandom
str r0, [r4, #0x4]
mov r1, #0x0
add r3, r4, #0x0

View File

@@ -62,7 +62,7 @@ _0202B07E:
str r0, [sp, #0x10]
mov r0, #0xb
mov r1, #0x0
bl FUN_020219F4
bl String_ctor
mov r2, #0x5a
add r6, r0, #0x0
ldr r1, [sp, #0x14]
@@ -206,7 +206,7 @@ _0202B1C6:
str r2, [r0, r1]
beq _0202B1DC
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
_0202B1DC:
add sp, #0x18
pop {r3-r7, pc}

View File

@@ -288,7 +288,7 @@ _0202BA38:
ldr r0, [sp, #0x0]
bl FreeToHeap
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
ldr r0, [sp, #0x4]
add sp, #0xc
pop {r4-r7, pc}
@@ -809,7 +809,7 @@ _0202BE14:
str r0, [r1, #0x8]
mov r0, #0x8
add r1, r7, #0x0
bl FUN_020219F4
bl String_ctor
ldr r2, [r4, #0x0]
mov r1, #0xc
mul r1, r2
@@ -844,7 +844,7 @@ _0202BE74:
ldr r0, [r5, #0xc]
cmp r0, #0x0
beq _0202BE7E
bl FUN_02021A20
bl String_dtor
_0202BE7E:
add r4, r4, #0x1
add r5, #0xc

View File

@@ -285,7 +285,7 @@ _02033AA6:
add r1, r5, #0x0
bl FUN_020283C0
ldr r0, [sp, #0xc]
bl FUN_02021A20
bl String_dtor
add r0, r6, #0x0
bl FUN_020239CC
add r3, r0, #0x0
@@ -327,7 +327,7 @@ _02033AEC:
_02033B22:
ldr r1, [sp, #0x4]
mov r0, #0x78
bl FUN_020219F4
bl String_ctor
str r0, [sp, #0x10]
add r0, r7, #0x0
bl FUN_0202DFFC
@@ -339,7 +339,7 @@ _02033B22:
add r1, r5, #0x0
bl FUN_02028404
ldr r0, [sp, #0x10]
bl FUN_02021A20
bl String_dtor
add r0, r6, #0x0
bl FUN_02023A28
add r3, r0, #0x0

View File

@@ -175,12 +175,12 @@ _02033FA4:
mov r0, #0x6
lsl r0, r0, #0x6
add r1, r4, #0x0
bl FUN_020219F4
bl String_ctor
add r7, r0, #0x0
mov r0, #0x6
lsl r0, r0, #0x6
add r1, r4, #0x0
bl FUN_020219F4
bl String_ctor
str r0, [sp, #0x14]
bl FUN_0201BD5C
add r0, r4, #0x0
@@ -216,11 +216,11 @@ _02033FA4:
ldr r0, [sp, #0x10]
ldr r2, [sp, #0x14]
add r1, r5, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, [sp, #0x14]
add r0, r4, #0x0
add r1, r7, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
mov r1, #0x0
str r1, [sp, #0x0]
str r1, [sp, #0x4]
@@ -230,7 +230,7 @@ _02033FA4:
str r1, [sp, #0x8]
bl FUN_0201BD84
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
bl FUN_0201E788
mov r0, #0x0
bl FUN_0200E394

View File

@@ -123,7 +123,7 @@ FUN_02034188: ; 0x02034188
mov r0, #0x6
lsl r0, r0, #0x6
add r1, r4, #0x0
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
bl FUN_0201BD5C
ldr r0, [sp, #0x10]
@@ -147,7 +147,7 @@ FUN_02034188: ; 0x02034188
ldr r0, [sp, #0xc]
mov r1, #0xf
add r2, r4, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r1, #0x0
str r1, [sp, #0x0]
str r1, [sp, #0x4]
@@ -157,7 +157,7 @@ FUN_02034188: ; 0x02034188
str r1, [sp, #0x8]
bl FUN_0201BD84
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
bl FUN_0201E788
mov r0, #0x0
bl FUN_0200E394

View File

@@ -651,7 +651,7 @@ _02035526:
add r6, r0, #0x0
mov r0, #0x8
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
add r1, r4, r5
add r1, #0x30
ldrb r1, [r1, #0x0]
@@ -660,7 +660,7 @@ _02035526:
lsl r2, r1, #0x3
ldr r1, _02035664 ; =UNK_020F2ACC
ldr r1, [r1, r2]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x20]
ldr r0, [sp, #0x1c]
ldr r0, [r0, #0xc]
@@ -672,7 +672,7 @@ _02035526:
ldr r2, [sp, #0x20]
add r0, r6, #0x0
add r1, r7, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r2, r4, r5
add r2, #0x30
ldrb r2, [r2, #0x0]
@@ -680,9 +680,9 @@ _02035526:
add r1, r7, #0x0
bl FUN_020128A0
ldr r0, [sp, #0x20]
bl FUN_02021A20
bl String_dtor
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r6, #0x0
bl FUN_0200AB18
b _020355A2
@@ -970,11 +970,11 @@ _0203576C:
cmp r6, #0x0
bne _020357D0
mov r1, #0x9
bl FUN_0200A914
bl NewString_ReadMsgData
b _020357D6
_020357D0:
mov r1, #0xa
bl FUN_0200A914
bl NewString_ReadMsgData
_020357D6:
mov r1, #0x0
add r7, r0, #0x0
@@ -988,17 +988,17 @@ _020357D6:
str r1, [sp, #0x8]
bl FUN_0201BD84
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0xb
bl FUN_0200AA80
add r7, r0, #0x0
mov r0, #0x20
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [sp, #0x18]
ldr r0, [sp, #0x1c]
mov r1, #0xb
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x14]
cmp r6, #0x0
bne _02035834
@@ -1030,7 +1030,7 @@ _0203584C:
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r7, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0xff
@@ -1043,9 +1043,9 @@ _0203584C:
str r1, [sp, #0x8]
bl FUN_0201BD84
ldr r0, [sp, #0x18]
bl FUN_02021A20
bl String_dtor
ldr r0, [sp, #0x14]
bl FUN_02021A20
bl String_dtor
add r0, r7, #0x0
bl FUN_0200AB18
ldr r0, [sp, #0x1c]

View File

@@ -1828,7 +1828,7 @@ _020384F2:
cmp r0, #0x5
bne _02038514
ldr r0, [r1, #0x18]
bl FUN_02021F2C
bl String_c_str
add r7, r0, #0x0
ldr r0, [r6, #0xc]
bl FUN_0202881C
@@ -1857,7 +1857,7 @@ _0203852E:
ldr r0, [r4, #0xc]
bl FUN_02077AC4
ldr r0, [r4, #0x10]
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FreeToHeap
mov r0, #0x1
@@ -1962,7 +1962,7 @@ FUN_020385CC: ; 0x020385CC
str r0, [r4, #0xc]
mov r0, #0xc
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x10]
cmp r6, #0x1
beq _02038620
@@ -2472,11 +2472,11 @@ FUN_02038A3C: ; 0x02038A3C
str r1, [sp, #0x0]
bl FUN_0202881C
add r4, r0, #0x0
bl getseed_LC
bl GetLCRNGSeed
str r0, [sp, #0x4]
add r0, r4, #0x0
bl FUN_020287A4
bl seedr_LC
bl SetLCRNGSeed
ldr r0, _02038AAC ; =UNK_020F2BE8
add r1, sp, #0x8
mov r2, #0xc
@@ -2491,7 +2491,7 @@ _02038A68:
cmp r5, #0xc
bhs _02038A92
_02038A72:
bl rand_LC
bl LCRandom
add r1, r7, #0x0
bl _s32_div_f
lsl r0, r1, #0x18
@@ -2512,7 +2512,7 @@ _02038A92:
cmp r4, #0xc
blo _02038A68
ldr r0, [sp, #0x4]
bl seedr_LC
bl SetLCRNGSeed
ldr r0, [sp, #0x0]
add r1, sp, #0x8
ldrb r0, [r1, r0]

View File

@@ -1006,12 +1006,12 @@ _02038D68:
mov r0, #0x1
lsl r0, r0, #0xa
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x44]
mov r0, #0x1
lsl r0, r0, #0xa
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x48]
ldrb r0, [r4, #0x4]
add r0, r0, #0x1
@@ -1058,9 +1058,9 @@ _02038DD2:
ldr r0, [r4, #0x40]
bl FUN_0200AB18
ldr r0, [r4, #0x44]
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x48]
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
str r0, [r4, #0x0]
add r0, r4, #0x0

View File

@@ -200,7 +200,7 @@ FUN_02047814: ; 0x02047814
str r0, [sp, #0x18]
mov r0, #0x8
add r1, r6, #0x0
bl FUN_020219F4
bl String_ctor
add r7, r0, #0x0
ldr r0, [sp, #0x10]
bl FUN_020239CC
@@ -209,16 +209,16 @@ FUN_02047814: ; 0x02047814
eor r1, r2
ldr r0, [sp, #0x18]
add r2, r7, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r7, #0x0
bl FUN_02021F2C
bl String_c_str
add r1, r0, #0x0
add r0, r4, #0x0
add r0, #0xf8
ldr r0, [r0, #0x0]
bl FUN_0202395C
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
ldr r0, [sp, #0x18]
bl DestroyMsgData
ldr r0, [sp, #0x10]
@@ -967,7 +967,7 @@ _02047E2C:
add r1, r0, #0x0
add r0, r5, #0x0
add r0, #0x3c
bl StringCopy
bl CopyU16StringArray
add r3, r5, #0x0
add r3, #0x28
add r5, #0x90
@@ -1244,7 +1244,7 @@ FUN_020480E4: ; 0x020480E4
add r1, r0, #0x0
add r0, r4, #0x0
add r0, #0x3c
bl StringCopy
bl CopyU16StringArray
add r3, r4, #0x0
add r3, #0x28
add r4, #0x90

View File

@@ -253,12 +253,12 @@ FUN_020482F4: ; 0x020482F4
lsl r0, r0, #0xa
mov r1, #0xb
add r7, r3, #0x0
bl FUN_020219F4
bl String_ctor
add r6, r0, #0x0
mov r0, #0x1
lsl r0, r0, #0xa
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
add r0, r5, #0x0
add r0, #0xc
@@ -267,11 +267,11 @@ FUN_020482F4: ; 0x020482F4
ldr r0, [r5, #0x1c]
ldr r1, [sp, #0x10]
add r2, r6, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, [r5, #0x20]
add r1, r4, #0x0
add r2, r6, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
mov r0, #0x0
add r1, r4, #0x0
add r2, r0, #0x0
@@ -297,9 +297,9 @@ FUN_020482F4: ; 0x020482F4
lsr r3, r3, #0x18
bl FUN_0201BDE0
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
add sp, #0x14
pop {r4-r7, pc}
.balign 4

View File

@@ -400,7 +400,7 @@ FUN_020487E4: ; 0x020487E4
mov r1, #0xc7
mov r2, #0xf
mov r3, #0x20
bl FUN_0200A738
bl ReadMsgData_NewNarc_NewString
str r0, [r4, #0x2c]
add r1, r4, #0x0
ldr r0, [r5, #0x8]
@@ -442,7 +442,7 @@ FUN_02048848: ; 0x02048848
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x2c]
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x30]
bl FUN_0200DBFC
add r4, #0x1c
@@ -478,14 +478,14 @@ FUN_02048864: ; 0x02048864
add r1, r7, #0x0
mov r2, #0x10
mov r3, #0x4
bl FUN_0200A9C4
bl ReadMsgData_ExpandPlaceholders
str r0, [r4, #0x2c]
add r0, r6, #0x0
bl FUN_0200AB18
b _020488B4
_020488AC:
mov r1, #0x12
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r4, #0x2c]
_020488B4:
add r0, r7, #0x0
@@ -510,7 +510,7 @@ FUN_020488D4: ; 0x020488D4
ldr r0, [r4, #0x2c]
cmp r0, #0x0
beq _020488E4
bl FUN_02021A20
bl String_dtor
_020488E4:
add r0, r4, #0x0
add r0, #0x1c

View File

@@ -1989,7 +1989,7 @@ _02049884:
bl NewMsgDataFromNarc
add r6, r0, #0x0
mov r1, #0x7c
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r4, #0x34]
add r0, r6, #0x0
bl DestroyMsgData
@@ -2026,7 +2026,7 @@ _020498DC:
cmp r0, #0x1
bne _0204992C
ldr r0, [r4, #0x34]
bl FUN_02021A20
bl String_dtor
mov r0, #0x0
str r0, [sp, #0x0]
mov r3, #0xb

View File

@@ -260,7 +260,7 @@ _0204BBB8:
FUN_0204BBC4: ; 0x0204BBC4
push {r3-r5, lr}
add r4, r0, #0x0
bl rand_LC
bl LCRandom
ldr r1, _0204BBE4 ; =0x0000199A
bl _s32_div_f
lsl r0, r0, #0x10
@@ -384,7 +384,7 @@ _0204BC94:
mov r4, #0x0
b _0204BCD8
_0204BCA4:
bl rand_LC
bl LCRandom
add r1, r6, #0x0
add r1, #0x14
add r4, r0, #0x0

View File

@@ -6048,7 +6048,7 @@ _0204F96E:
add r4, r0, #0x0
mov r0, #0x14
mov r1, #0xf
bl FUN_020219F4
bl String_ctor
add r5, r0, #0x0
cmp r4, #0x0
bne _0204F988
@@ -6065,7 +6065,7 @@ _0204F990:
add r1, r4, #0x0
bl FUN_020311D0
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FreeToHeap
pop {r3-r5, pc}
@@ -6141,7 +6141,7 @@ _0204FA26:
mov r2, #0x1
bl FUN_02030BC4
ldr r0, [sp, #0x0]
bl FUN_02021A20
bl String_dtor
ldr r0, _0204FA54 ; =UNK_021C5A68
mov r2, #0x1
ldr r1, [r0, #0x0]

View File

@@ -393,7 +393,7 @@ _02051136:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0x1
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -546,7 +546,7 @@ _0205126A:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0xd
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -729,7 +729,7 @@ _020513D4:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0x13
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -787,11 +787,11 @@ _0205142C:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0xe
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, [r4, #0x28]
ldr r1, [r4, #0x10]
ldr r2, [r4, #0xc]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r1, [r4, #0x10]
add r0, r4, #0x0
bl FUN_020517C0
@@ -857,7 +857,7 @@ _020514BE:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0x14
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -883,7 +883,7 @@ _02051508:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0x11
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -942,7 +942,7 @@ _0205158C:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0xf
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -966,11 +966,11 @@ _020515BA:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0x12
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, [r4, #0x28]
ldr r1, [r4, #0x10]
ldr r2, [r4, #0xc]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r1, [r4, #0x10]
add r0, r4, #0x0
bl FUN_020517C0
@@ -1003,7 +1003,7 @@ _02051614:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0x11
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -1021,11 +1021,11 @@ _02051642:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0xe
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, [r4, #0x28]
ldr r1, [r4, #0x10]
ldr r2, [r4, #0xc]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r1, [r4, #0x10]
add r0, r4, #0x0
bl FUN_020517C0
@@ -1136,7 +1136,7 @@ _02051744:
ldr r0, [r4, #0x2c]
ldr r2, [r4, #0xc]
mov r1, #0xf
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, [r4, #0xc]
add r0, r4, #0x0
bl FUN_020517C0
@@ -1317,11 +1317,11 @@ _0205188E:
str r0, [r4, #0x2c]
mov r0, #0xc8
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0xc]
mov r0, #0xc8
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x10]
add r0, r4, #0x0
add r0, #0x14
@@ -1438,9 +1438,9 @@ _020519BA:
ldr r0, [r4, #0x28]
bl FUN_0200AB18
ldr r0, [r4, #0xc]
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x10]
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x78]
bl FUN_020136C0
add r0, r4, #0x0
@@ -1724,7 +1724,7 @@ _02051BD6:
add r1, r0, #0x0
ldr r0, [sp, #0x18]
ldr r2, [r5, #0xc]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
str r4, [sp, #0x0]
mov r0, #0xff
str r0, [sp, #0x4]
@@ -1744,7 +1744,7 @@ _02051BD6:
ldr r0, [r5, #0x2c]
ldr r2, [r5, #0xc]
mov r1, #0x15
bl FUN_0200A8E0
bl ReadMsgDataIntoString
lsl r0, r7, #0x4
str r0, [sp, #0x0]
mov r0, #0xff
@@ -1845,7 +1845,7 @@ _02051CE0:
ldr r0, [r5, #0x2c]
ldr r2, [r5, #0xc]
add r1, #0x16
bl FUN_0200A8E0
bl ReadMsgDataIntoString
str r4, [sp, #0x0]
mov r0, #0xff
str r0, [sp, #0x4]
@@ -2134,17 +2134,17 @@ _02051EF2:
str r0, [r4, #0x1c]
mov r0, #0xc8
mov r1, #0x4
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x0]
mov r0, #0xc8
mov r1, #0x4
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x4]
ldrb r1, [r6, #0x3]
ldr r0, [r4, #0x1c]
ldr r2, [r4, #0x0]
add r1, r1, #0x2
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, [r4, #0x24]
bl FUN_0202DFA4
add r2, r0, #0x0
@@ -2154,7 +2154,7 @@ _02051EF2:
ldr r0, [r4, #0x18]
ldr r1, [r4, #0x4]
ldr r2, [r4, #0x0]
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r1, r4, #0x0
ldr r0, [r5, #0x8]
add r1, #0x8
@@ -2196,9 +2196,9 @@ _02051F7C:
ldr r0, [r4, #0x18]
bl FUN_0200AB18
ldr r0, [r4, #0x0]
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x4]
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
add r0, #0x8
mov r1, #0x0

View File

@@ -1208,7 +1208,7 @@ _0205289C:
ldr r0, [r0, r1]
pop {r4-r6, pc}
_020528A4:
bl rand_LC
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -1222,7 +1222,7 @@ _020528A4:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528C0:
bl rand_LC
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -1236,7 +1236,7 @@ _020528C0:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528DC:
bl rand_LC
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -1250,7 +1250,7 @@ _020528DC:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528F8:
bl rand_LC
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -1264,7 +1264,7 @@ _020528F8:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052914:
bl rand_LC
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -1278,7 +1278,7 @@ _02052914:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052930:
bl rand_LC
bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -1878,7 +1878,7 @@ _02052DB8:
mov r1, #0xd7
_02052DBA:
add r0, r7, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]

View File

@@ -874,7 +874,7 @@ FUN_02053598: ; 0x02053598
add r4, r0, #0x0
mov r0, #0x8
mov r1, #0x59
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x0]
mov r1, #0x0
add r0, r4, #0x0
@@ -917,12 +917,12 @@ FUN_020535E0: ; 0x020535E0
ldr r0, [r4, #0x4]
cmp r0, #0x0
beq _020535F4
bl FUN_02021A20
bl String_dtor
_020535F4:
ldr r0, [r4, #0x8]
cmp r0, #0x0
beq _020535FE
bl FUN_02021A20
bl String_dtor
_020535FE:
pop {r4, pc}

View File

@@ -396,7 +396,7 @@ FUN_02054EA0: ; 0x02054EA0
str r0, [sp, #0x8]
ldrh r0, [r4, #0xe]
ldr r5, [r4, #0x4]
bl FUN_0201B93C
bl Sin
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
@@ -412,7 +412,7 @@ FUN_02054EA0: ; 0x02054EA0
str r1, [sp, #0x0]
ldrh r0, [r4, #0xe]
ldr r5, [r4, #0x8]
bl FUN_0201B93C
bl Sin
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0

View File

@@ -1627,7 +1627,7 @@ FUN_0205AAB0: ; 0x0205AAB0
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
bl rand_LC
bl LCRandom
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1646,7 +1646,7 @@ FUN_0205AAD4: ; 0x0205AAD4
add r5, r1, #0x0
bl FUN_0205AAFC
add r4, r0, #0x0
bl rand_LC
bl LCRandom
add r6, r0, #0x0
add r0, r4, #0x0
add r1, r5, #0x0

View File

@@ -1385,7 +1385,7 @@ FUN_0205D8B8: ; 0x0205D8B8
strh r0, [r4, #0x16]
mov r0, #0x80
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x10]
ldr r0, [r5, #0x0]
ldr r0, [r0, #0xc]
@@ -1473,7 +1473,7 @@ _0205D984:
add r0, r4, #0x0
bl FUN_02019178
ldr r0, [r4, #0x10]
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FreeToHeap
mov r0, #0x1
@@ -1782,7 +1782,7 @@ FUN_0205DBF0: ; 0x0205DBF0
strh r0, [r4, #0x16]
mov r0, #0x80
mov r1, #0xb
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x10]
ldr r0, [r5, #0x0]
ldr r0, [r0, #0xc]

View File

@@ -108,7 +108,7 @@ _0205DDC2:
mov r6, #0x0
b _0205DDF2
_0205DDCA:
bl rand_LC
bl LCRandom
add r6, r0, #0x0
ldr r0, _0205DED0 ; =0x0000FFFF
add r1, r4, #0x0
@@ -259,7 +259,7 @@ _0205DEE0:
str r0, [r5, #0x2c]
cmp r0, #0x0
bne _0205DF24
bl rand_LC
bl LCRandom
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -806,7 +806,7 @@ _0205E2D6:
bne _0205E2DC
add r6, r7, #0x0
_0205E2DC:
bl rand_LC
bl LCRandom
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -979,7 +979,7 @@ _0205E430:
mov r4, #0x0
b _0205E46A
_0205E43C:
bl rand_LC
bl LCRandom
add r4, r0, #0x0
lsl r1, r5, #0x10
ldr r0, _0205E47C ; =0x0000FFFF

View File

@@ -434,9 +434,9 @@ _0205F5F8: .word 0x0000403D
FUN_0205F5FC: ; 0x0205F5FC
push {r3-r5, lr}
add r5, r0, #0x0
bl rand_LC
bl LCRandom
add r4, r0, #0x0
bl rand_LC
bl LCRandom
add r1, r0, #0x0
lsl r1, r1, #0x10
add r0, r5, #0x0
@@ -489,7 +489,7 @@ FUN_0205F668: ; 0x0205F668
push {r4, lr}
bl FUN_020462AC
add r4, r0, #0x0
bl rand_LC
bl LCRandom
mov r1, #0x62
bl _s32_div_f
add r1, r1, #0x2

View File

@@ -88,7 +88,7 @@ _020603F6:
bl FUN_0202AA74
cmp r0, #0x0
beq _02060430
bl rand_LC
bl LCRandom
lsl r0, r0, #0x4
lsr r6, r0, #0x10
cmp r6, #0x10
@@ -289,7 +289,7 @@ FUN_02060588: ; 0x02060588
lsl r0, r0, #0x2
ldr r4, [r7, r0]
_0206059C:
bl rand_LC
bl LCRandom
ldr r1, _020605D4 ; =0x000008D4
bl _s32_div_f
lsl r0, r0, #0x10
@@ -361,7 +361,7 @@ _02060628:
mov r6, #0x0
b _02060658
_02060630:
bl rand_LC
bl LCRandom
add r6, r0, #0x0
ldr r0, _02060684 ; =0x0000FFFF
add r1, r5, #0x0

View File

@@ -264,7 +264,7 @@ FUN_02060D90: ; 0x02060D90
mov r0, #0x40
mov r1, #0x4
str r3, [sp, #0x8]
bl FUN_020219F4
bl String_ctor
add r1, r7, #0x0
add r4, r0, #0x0
bl FUN_02021E28
@@ -278,7 +278,7 @@ FUN_02060D90: ; 0x02060D90
add r2, r4, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
add sp, #0xc
pop {r4-r7, pc}
.balign 4
@@ -318,7 +318,7 @@ FUN_02060E04: ; 0x02060E04
mov r0, #0x40
add r1, r3, #0x0
add r6, r2, #0x0
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
add r0, r6, #0x0
mov r1, #0x76
@@ -329,7 +329,7 @@ FUN_02060E04: ; 0x02060E04
mov r2, #0xb
bl FUN_02021EF0
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
.balign 4
@@ -372,7 +372,7 @@ FUN_02060E70: ; 0x02060E70
mov r1, #0x4
add r2, sp, #0x8
add r6, r3, #0x0
bl GetSpeciesName
bl GetSpeciesNameIntoArray
add r0, sp, #0x20
ldrb r0, [r0, #0x10]
add r1, r4, #0x0
@@ -396,7 +396,7 @@ FUN_02060EA0: ; 0x02060EA0
add r0, r2, #0x0
mov r1, #0x4
add r2, sp, #0x8
bl GetSpeciesName
bl GetSpeciesNameIntoArray
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1
@@ -427,7 +427,7 @@ FUN_02060ECC: ; 0x02060ECC
beq _02060F0C
mov r0, #0x40
add r1, r6, #0x0
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x76
@@ -438,7 +438,7 @@ FUN_02060ECC: ; 0x02060ECC
mov r2, #0xb
bl FUN_02021EF0
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
_02060F0C:
pop {r3-r7, pc}
.balign 4
@@ -944,7 +944,7 @@ FUN_020612AC: ; 0x020612AC
add r1, r0, #0x0
add r0, sp, #0x0
mov r2, #0xb
bl StringCopyN
bl CopyU16StringArrayN
add r0, r5, #0x0
mov r1, #0x2
add r2, r4, #0x0
@@ -1200,7 +1200,7 @@ FUN_02061498: ; 0x02061498
ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060D90
bl rand_LC
bl LCRandom
ldr r1, _020614F8 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -1535,7 +1535,7 @@ FUN_02061750: ; 0x02061750
sub r0, #0x95
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_020852E8
bl GetNutName
add r4, r0, #0x0
mov r1, #0x1
str r1, [sp, #0x0]
@@ -1546,7 +1546,7 @@ FUN_02061750: ; 0x02061750
mov r3, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r0, #0x5
add sp, #0x8
pop {r4-r6, pc}
@@ -1559,7 +1559,7 @@ FUN_02061798: ; 0x02061798
add r0, sp, #0x4
add r4, r1, #0x0
strb r2, [r0, #0x6]
bl rand_MT
bl MTRandom
mov r1, #0x3
bl _u32_div_f
add r0, sp, #0x4
@@ -1608,7 +1608,7 @@ FUN_020617D8: ; 0x020617D8
ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060E70
bl rand_LC
bl LCRandom
ldr r1, _02061830 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -2728,7 +2728,7 @@ FUN_020620A0: ; 0x020620A0
_020620BE:
cmp r4, #0x1
ble _020620D0
bl rand_MT
bl MTRandom
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
@@ -2762,7 +2762,7 @@ _020620F8:
beq _02062100
bl ErrorHandling
_02062100:
bl rand_LC
bl LCRandom
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -2821,7 +2821,7 @@ FUN_02062170: ; 0x02062170
push {r3-r7, lr}
add r6, r0, #0x0
add r7, r1, #0x0
bl rand_LC
bl LCRandom
ldr r1, _02062234 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -2865,7 +2865,7 @@ _020621BC: ; jump table (using 16-bit offset)
.short _0206222C - _020621BC - 2; case 10
.short _02062228 - _020621BC - 2; case 11
_020621D4:
bl rand_LC
bl LCRandom
lsl r0, r0, #0x2
lsr r4, r0, #0x10
cmp r4, #0x4
@@ -3006,7 +3006,7 @@ _020622C0: .word UNK_020F78A6
FUN_020622C4: ; 0x020622C4
push {r4-r6, lr}
add r6, r1, #0x0
bl rand_LC
bl LCRandom
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -3020,7 +3020,7 @@ _020622E0:
blt _020622E6
add r5, r5, #0x1
_020622E6:
bl rand_LC
bl LCRandom
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -3130,7 +3130,7 @@ _020623A4:
mov r5, #0x0
b _020623DE
_020623B0:
bl rand_LC
bl LCRandom
add r5, r0, #0x0
lsl r1, r4, #0x10
ldr r0, _020623F0 ; =0x0000FFFF
@@ -3251,7 +3251,7 @@ _02062496:
mov r5, #0x0
b _020624C6
_0206249E:
bl rand_LC
bl LCRandom
add r5, r0, #0x0
ldr r0, _02062504 ; =0x0000FFFF
add r1, r4, #0x0
@@ -3335,7 +3335,7 @@ FUN_0206252C: ; 0x0206252C
add r4, r0, #0x0
cmp r4, #0x1
ble _02062552
bl rand_MT
bl MTRandom
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
@@ -3371,7 +3371,7 @@ _0206257A:
add r5, r0, #0x0
mov r0, #0x8
mov r1, #0x4
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
add r0, r5, #0x0
bl FUN_0202763C
@@ -3390,7 +3390,7 @@ _0206257A:
add r3, r6, #0x0
bl FUN_0200ABB4
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r5, #0x0
bl FUN_0202769C
add r2, r0, #0x0

View File

@@ -930,23 +930,23 @@ FUN_02062C80: ; 0x02062C80
str r0, [r5, #0x30]
ldr r1, [r5, #0x0]
mov r0, #0x4c
bl FUN_020219F4
bl String_ctor
str r0, [r5, #0x34]
ldr r0, [r5, #0x2c]
mov r1, #0xd
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r5, #0x38]
ldr r0, [r5, #0x2c]
mov r1, #0x16
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r5, #0x3c]
ldr r0, [r5, #0x2c]
mov r1, #0x24
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r5, #0x40]
ldr r0, [r5, #0x2c]
mov r1, #0xe
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r5, #0x44]
ldrb r0, [r5, #0x18]
mov r4, #0x0
@@ -957,13 +957,13 @@ _02062CDA:
ldrb r1, [r5, #0x19]
ldr r0, [r5, #0x2c]
add r1, r1, r4
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r6, #0x64]
ldrb r1, [r5, #0x19]
ldr r0, [r5, #0x2c]
add r1, #0x17
add r1, r1, r4
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r6, #0x7c]
ldrb r0, [r5, #0x18]
add r4, r4, #0x1
@@ -977,7 +977,7 @@ _02062D02:
add r1, r4, #0x0
ldr r0, [r5, #0x2c]
add r1, #0xf
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r6, #0x48]
add r4, r4, #0x1
add r6, r6, #0x4
@@ -989,7 +989,7 @@ _02062D1A:
add r1, r4, #0x0
ldr r0, [r5, #0x2c]
add r1, #0x25
bl FUN_0200A914
bl NewString_ReadMsgData
add r1, r6, #0x0
add r1, #0x94
add r4, r4, #0x1
@@ -1011,7 +1011,7 @@ _02062D40:
add r0, r5, #0x0
add r0, #0x94
ldr r0, [r0, #0x0]
bl FUN_02021A20
bl String_dtor
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x3
@@ -1020,7 +1020,7 @@ _02062D40:
add r4, r6, #0x0
_02062D56:
ldr r0, [r4, #0x48]
bl FUN_02021A20
bl String_dtor
add r5, r5, #0x1
add r4, r4, #0x4
cmp r5, #0x7
@@ -1032,9 +1032,9 @@ _02062D56:
add r4, r6, #0x0
_02062D6E:
ldr r0, [r4, #0x64]
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x7c]
bl FUN_02021A20
bl String_dtor
ldrb r0, [r6, #0x18]
add r5, r5, #0x1
add r4, r4, #0x4
@@ -1042,15 +1042,15 @@ _02062D6E:
blt _02062D6E
_02062D84:
ldr r0, [r6, #0x44]
bl FUN_02021A20
bl String_dtor
ldr r0, [r6, #0x40]
bl FUN_02021A20
bl String_dtor
ldr r0, [r6, #0x3c]
bl FUN_02021A20
bl String_dtor
ldr r0, [r6, #0x38]
bl FUN_02021A20
bl String_dtor
ldr r0, [r6, #0x34]
bl FUN_02021A20
bl String_dtor
ldr r0, [r6, #0x30]
bl FUN_0200AB18
ldr r0, [r6, #0x2c]
@@ -1734,7 +1734,7 @@ _02063318:
ldr r0, [r4, #0x30]
ldr r1, [r4, #0x34]
ldr r2, [r4, #0x44]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r0, [sp, #0x30]
mov r1, #0x0
str r0, [sp, #0x0]
@@ -1764,7 +1764,7 @@ _02063318:
lsl r2, r2, #0x2
add r2, r4, r2
ldr r2, [r2, #0xc]
bl FUN_0200B7B8
bl StringExpandPlaceholders
mov r0, #0x0
ldr r1, [r4, #0x34]
add r2, r0, #0x0

View File

@@ -7,7 +7,7 @@
FUN_02064E4C: ; 0x02064E4C
push {r4, lr}
add r4, r2, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r0, #0x0
add r1, r4, #0x0
add r2, r0, #0x0

View File

@@ -356,7 +356,7 @@ FUN_02065178: ; 0x02065178
add r0, #0x8
mov r2, #0x8
add r5, r3, #0x0
bl StringCopyN
bl CopyU16StringArrayN
ldr r0, [sp, #0x10]
str r5, [r4, #0x1c]
str r0, [r4, #0x20]

View File

@@ -1538,7 +1538,7 @@ FUN_02065FF8: ; 0x02065FF8
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _0206600E
bl FUN_02021A4C
bl StringSetEmpty
_0206600E:
pop {r3, pc}
@@ -1554,7 +1554,7 @@ FUN_02066010: ; 0x02066010
_0206601E:
mov r0, #0x8
add r1, r7, #0x0
bl FUN_020219F4
bl String_ctor
mov r1, #0xc
mul r1, r4
add r1, r5, r1
@@ -1586,7 +1586,7 @@ _02066050:
ldr r0, [r0, #0x8]
cmp r0, #0x0
beq _02066060
bl FUN_02021A20
bl String_dtor
_02066060:
add r0, r4, #0x1
lsl r0, r0, #0x18
@@ -1868,21 +1868,21 @@ FUN_02066270: ; 0x02066270
str r0, [r6, r1]
ldr r1, [r6, #0x0]
mov r0, #0x80
bl FUN_020219F4
bl String_ctor
mov r1, #0x45
lsl r1, r1, #0x2
str r0, [r6, r1]
sub r1, #0x8
ldr r0, [r6, r1]
mov r1, #0x4
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x46
lsl r1, r1, #0x2
str r0, [r6, r1]
sub r1, #0xc
ldr r0, [r6, r1]
mov r1, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x47
lsl r1, r1, #0x2
str r0, [r6, r1]
@@ -1894,7 +1894,7 @@ _020662CC:
lsl r0, r0, #0x2
ldr r0, [r6, r0]
add r1, r4, #0x6
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [r5, r7]
add r4, r4, #0x1
add r5, r5, #0x4
@@ -1912,7 +1912,7 @@ FUN_020662E4: ; 0x020662E4
lsl r7, r7, #0x4
_020662F0:
ldr r0, [r5, r7]
bl FUN_02021A20
bl String_dtor
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x6
@@ -1920,15 +1920,15 @@ _020662F0:
mov r0, #0x47
lsl r0, r0, #0x2
ldr r0, [r6, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x46
lsl r0, r0, #0x2
ldr r0, [r6, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x45
lsl r0, r0, #0x2
ldr r0, [r6, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x11
lsl r0, r0, #0x4
ldr r0, [r6, r0]
@@ -2076,7 +2076,7 @@ _02066426:
mov r0, #0x45
lsl r0, r0, #0x2
ldr r0, [r5, r0]
bl FUN_02021A4C
bl StringSetEmpty
mov r0, #0x1
str r0, [sp, #0x0]
mov r0, #0x2
@@ -2101,7 +2101,7 @@ _02066426:
add r2, #0x10
ldr r1, [r5, r1]
ldr r2, [r3, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
mov r0, #0x45
lsl r0, r0, #0x2
ldr r2, [r5, r0]

View File

@@ -61,18 +61,18 @@ _0206AC08:
bne _0206AC26
ldr r1, [sp, #0xc]
add r0, r5, #0x0
bl StringCopy
bl CopyU16StringArray
b _0206AC3E
_0206AC26:
ldr r0, [sp, #0x10]
ldr r1, [r4, #0x18]
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
add r1, r5, #0x0
mov r2, #0x8
bl FUN_02021EF0
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
_0206AC3E:
ldr r0, [sp, #0x0]
ldr r2, [sp, #0x4]
@@ -269,7 +269,7 @@ _0206AD84:
ldr r3, [sp, #0x8]
mov r0, #0x1a
lsr r2, r2, #0x2
bl FUN_0200A648
bl ReadMsgData_NewNarc_ExistingString
b _0206ADC2
_0206ADB6:
ldrh r0, [r4, #0x0]
@@ -286,7 +286,7 @@ _0206ADC2:
cmp r0, r5
bne _0206ADD6
ldr r0, [sp, #0x4]
bl FUN_02021A4C
bl StringSetEmpty
_0206ADD6:
add sp, #0x18
pop {r3-r7, pc}
@@ -328,7 +328,7 @@ FUN_0206AE0C: ; 0x0206AE0C
add r7, r1, #0x0
add r4, r0, #0x0
add r5, r2, #0x0
bl getseed_LC
bl GetLCRNGSeed
lsl r6, r7, #0x2
str r0, [sp, #0x44]
add r0, r4, r6
@@ -402,7 +402,7 @@ _0206AE96:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
bl seedr_LC
bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -410,7 +410,7 @@ _0206AE96:
cmp r0, #0x0
ble _0206AECE
_0206AEBC:
bl rand_LC
bl LCRandom
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -486,7 +486,7 @@ _0206AF3E:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
bl seedr_LC
bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -494,7 +494,7 @@ _0206AF3E:
cmp r0, #0x0
ble _0206AF76
_0206AF64:
bl rand_LC
bl LCRandom
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -579,7 +579,7 @@ _0206AFFC:
add r0, r0, r2
add r0, r1, r0
str r0, [sp, #0x14]
bl seedr_LC
bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -587,7 +587,7 @@ _0206AFFC:
cmp r0, #0x0
ble _0206B030
_0206B01E:
bl rand_LC
bl LCRandom
str r0, [sp, #0x14]
add r0, r4, r5
add r0, #0x29
@@ -663,7 +663,7 @@ _0206B0A2:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
bl seedr_LC
bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -671,7 +671,7 @@ _0206B0A2:
cmp r0, #0x0
ble _0206B0DA
_0206B0C8:
bl rand_LC
bl LCRandom
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -744,6 +744,6 @@ _0206B156:
ldr r0, [sp, #0x40]
bl FreeToHeap
ldr r0, [sp, #0x44]
bl seedr_LC
bl SetLCRNGSeed
add sp, #0x50
pop {r3-r7, pc}

View File

@@ -73,7 +73,7 @@ _0206B1E0:
add r0, r6, #0x0
add r1, r5, #0x6
add r2, r4, #0x0
bl DecryptCopyString
bl ReadMsgDataIntoU16Array
add r5, r5, #0x1
add r4, #0x28
cmp r5, #0x12

View File

@@ -993,7 +993,7 @@ FUN_0206C66C: ; 0x0206C66C
bl FUN_0202398C
add r1, r0, #0x0
add r0, r4, #0x0
bl StringCopy
bl CopyU16StringArray
add r0, r6, #0x0
bl FUN_020239BC
str r0, [r4, #0x10]

View File

@@ -182,7 +182,7 @@ FUN_0206C700: ; 0x0206C700
mov r0, #0x5
lsl r0, r0, #0x6
add r1, r5, #0x0
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x10]
add r0, r5, #0x0
mov r1, #0x30
@@ -2663,12 +2663,12 @@ FUN_0206DD6C: ; 0x0206DD6C
sub sp, #0xc
add r4, r0, #0x0
ldr r0, [r4, #0x8]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FreeToHeap
ldr r0, [r4, #0x4]

View File

@@ -194,7 +194,7 @@ FUN_0206E3F8: ; 0x0206E3F8
bne _0206E428
add r0, r6, #0x0
mov r1, #0x63
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
b _0206E4FA
_0206E428:
@@ -204,7 +204,7 @@ _0206E428:
bne _0206E454
add r0, r6, #0x0
mov r1, #0x61
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
add r0, r7, #0x0
bl FUN_0206E3E8
@@ -223,7 +223,7 @@ _0206E454:
bne _0206E47E
add r0, r6, #0x0
mov r1, #0x5c
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
add r0, r7, #0x0
bl FUN_0206E3A8
@@ -242,7 +242,7 @@ _0206E47E:
bne _0206E4C0
add r0, r6, #0x0
mov r1, #0x5d
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
add r0, r7, #0x0
bl FUN_0206E3C8
@@ -271,7 +271,7 @@ _0206E4C0:
bne _0206E4EA
add r0, r6, #0x0
mov r1, #0x39
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
add r0, r7, #0x0
bl FUN_0206E39C
@@ -295,9 +295,9 @@ _0206E4FA:
ldr r1, [sp, #0x8]
add r0, r4, #0x0
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FUN_0200AB18
add r0, r6, #0x0
@@ -326,7 +326,7 @@ _0206E52E:
add r4, r0, #0x0
mov r1, #0x38
add r2, r5, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r4, #0x0
bl DestroyMsgData
pop {r3-r7, pc}
@@ -339,7 +339,7 @@ _0206E54C:
add r4, r0, #0x0
mov r1, #0x6f
add r2, r5, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r4, #0x0
bl DestroyMsgData
pop {r3-r7, pc}
@@ -355,7 +355,7 @@ _0206E56A:
add r4, r0, #0x0
add r0, r7, #0x0
mov r1, #0x24
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
ldr r2, [sp, #0x0]
add r0, r4, #0x0
@@ -364,9 +364,9 @@ _0206E56A:
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FUN_0200AB18
add r0, r7, #0x0

View File

@@ -723,21 +723,21 @@ _0206E72C:
ldr r1, _0206E75C ; =UNK_020F85B4
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
mov r0, #0xf
mov r0, #0xf ; NARC_ITEMTOOL_ITEMDATA_ITEM_DATA
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E73A:
ldr r1, _0206E760 ; =UNK_020F85B4 + 2
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
mov r0, #0x10
mov r0, #0x10 ; NARC_ITEMTOOL_ITEMDATA_ITEM_ICON
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E748:
ldr r1, _0206E764 ; =UNK_020F85B4 + 4
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
mov r0, #0x10
mov r0, #0x10 ; NARC_ITEMTOOL_ITEMDATA_ITEM_ICON
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E756:
@@ -756,13 +756,13 @@ FUN_0206E768: ; 0x0206E768
add r5, r0, #0x0
add r4, r1, #0x0
mov r0, #0x1
mov r1, #0x1a
mov r1, #0x1a ; NARC_MSGDATA_MSG
lsl r2, r2, #0x2
bl NewMsgDataFromNarc
add r6, r0, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r6, #0x0
bl DestroyMsgData
pop {r4-r6, pc}
@@ -776,12 +776,12 @@ FUN_0206E790: ; 0x0206E790
add r4, r1, #0x0
ldr r2, _0206E7B4 ; =0x00000157
mov r0, #0x1
mov r1, #0x1a
mov r1, #0x1a ; NARC_MSGDATA_MSG
bl NewMsgDataFromNarc
add r6, r0, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r6, #0x0
bl DestroyMsgData
pop {r4-r6, pc}
@@ -1376,7 +1376,7 @@ FUN_0206EB50: ; 0x0206EB50
mul r1, r0
str r1, [sp, #0x0]
mov r1, #0x0
mov r0, #0xf
mov r0, #0xf ; NARC_ITEMTOOL_ITEMDATA_ITEM_DATA
add r2, r4, #0x0
add r3, r1, #0x0
bl AllocAndReadFromNarcMemberByIdPair

View File

@@ -933,7 +933,7 @@ _0206FA4C:
ldr r0, [r4, r1]
ldr r2, [r4, r2]
mov r1, #0x69
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r0, #0x14
pop {r4, pc}
_0206FA78:
@@ -979,23 +979,23 @@ FUN_0206FAA4: ; 0x0206FAA4
lsl r7, r7, #0x8
_0206FAD8:
ldr r0, [r5, r7]
bl FUN_02021A20
bl String_dtor
add r4, r4, #0x1
add r5, #0x2c
cmp r4, #0x6
blo _0206FAD8
ldr r0, _0206FB40 ; =0x000006A4
ldr r0, [r6, r0]
bl FUN_02021A20
bl String_dtor
ldr r0, _0206FB44 ; =0x000006A8
ldr r0, [r6, r0]
bl FUN_02021A20
bl String_dtor
ldr r7, _0206FB48 ; =0x000006AC
mov r5, #0x0
add r4, r6, #0x0
_0206FAFC:
ldr r0, [r4, r7]
bl FUN_02021A20
bl String_dtor
add r5, r5, #0x1
add r4, r4, #0x4
cmp r5, #0x13
@@ -1453,7 +1453,7 @@ _0206FEC2:
_0206FEF6:
mov r0, #0xb
mov r1, #0xc
bl FUN_020219F4
bl String_ctor
str r0, [r5, r7]
add r4, r4, #0x1
add r5, #0x2c
@@ -1462,13 +1462,13 @@ _0206FEF6:
mov r0, #0x1
lsl r0, r0, #0x8
mov r1, #0xc
bl FUN_020219F4
bl String_ctor
ldr r1, _0206FF68 ; =0x000006A4
str r0, [r6, r1]
mov r0, #0x1
lsl r0, r0, #0x8
mov r1, #0xc
bl FUN_020219F4
bl String_ctor
ldr r1, _0206FF6C ; =0x000006A8
mov r5, #0x0
str r0, [r6, r1]
@@ -1477,7 +1477,7 @@ _0206FEF6:
_0206FF2A:
mov r0, #0x20
mov r1, #0xc
bl FUN_020219F4
bl String_ctor
str r0, [r4, r7]
add r5, r5, #0x1
add r4, r4, #0x4
@@ -4381,7 +4381,7 @@ _02071630:
ldr r0, _02071748 ; =0x0000069C
mov r1, #0xb8
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
ldr r0, _02071738 ; =0x000005A4
mov r1, #0x3
@@ -4404,9 +4404,9 @@ _02071630:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -5038,7 +5038,7 @@ _02071B34:
ldr r0, _02071C3C ; =0x0000069C
mov r1, #0x40
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
add r0, r6, #0x0
bl FUN_020690E4
@@ -5065,9 +5065,9 @@ _02071B34:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -5562,7 +5562,7 @@ _02071FA0:
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r6, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -5586,7 +5586,7 @@ _02071FA0:
add r2, #0x8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
mov r4, #0xb
b _02072054
_02071FF2:
@@ -5595,7 +5595,7 @@ _02071FF2:
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r6, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -5623,7 +5623,7 @@ _02071FF2:
add r2, #0x8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
mov r4, #0x9
b _02072054
_02072044:
@@ -5632,7 +5632,7 @@ _02072044:
ldr r0, [r5, r2]
add r2, #0x8
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r4, #0xb
_02072054:
add r0, r5, r7
@@ -5838,7 +5838,7 @@ _020721B0:
ldr r0, [r5, r2]
add r2, #0x8
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
b _02072282
_0207220C:
ldr r0, _020722A8 ; =0x000005A4
@@ -5873,7 +5873,7 @@ _02072246:
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -5893,7 +5893,7 @@ _02072246:
add r2, #0x8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
_02072282:
mov r0, #0x89
lsl r0, r0, #0x2
@@ -5990,7 +5990,7 @@ FUN_0207230C: ; 0x0207230C
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r7, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -6014,7 +6014,7 @@ FUN_0207230C: ; 0x0207230C
add r2, #0x8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
b _020723D6
_02072388:
ldr r0, _02072410 ; =0x000005A4
@@ -6030,7 +6030,7 @@ _02072388:
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r0, #0x6a
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -6050,7 +6050,7 @@ _02072388:
add r2, #0x8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
_020723D6:
mov r0, #0x89
lsl r0, r0, #0x2

View File

@@ -300,91 +300,91 @@ FUN_02072720: ; 0x02072720
add r2, #0x10
ldr r2, [r4, r2]
mov r1, #0x91
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x92
ldr r0, [r4, r2]
add r2, #0x14
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x93
ldr r0, [r4, r2]
add r2, #0x18
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0xa0
ldr r0, [r4, r2]
add r2, #0x1c
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0xa1
ldr r0, [r4, r2]
add r2, #0x20
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x94
ldr r0, [r4, r2]
add r2, #0x24
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x95
ldr r0, [r4, r2]
add r2, #0x28
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x96
ldr r0, [r4, r2]
add r2, #0x2c
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x97
ldr r0, [r4, r2]
add r2, #0x30
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x98
ldr r0, [r4, r2]
add r2, #0x34
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x99
ldr r0, [r4, r2]
add r2, #0x38
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x9a
ldr r0, [r4, r2]
add r2, #0x3c
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x9b
ldr r0, [r4, r2]
add r2, #0x40
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0x9a
ldr r0, [r4, r2]
add r2, #0x44
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _020727F8 ; =0x0000069C
mov r1, #0xa6
ldr r0, [r4, r2]
add r2, #0x48
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
pop {r4, pc}
.balign 4
_020727F8: .word 0x0000069C
@@ -399,7 +399,7 @@ FUN_020727FC: ; 0x020727FC
add r1, r4, #0x0
ldr r0, [r5, r0]
add r1, #0x9c
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -416,9 +416,9 @@ FUN_020727FC: ; 0x020727FC
add r1, #0xc
ldr r1, [r2, r1]
add r2, r6, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
pop {r3-r7, pc}
nop
_02072840: .word 0x0000069C
@@ -576,7 +576,7 @@ FUN_0207295C: ; 0x0207295C
ldr r0, [r5, r0]
ldr r2, [r5, r2]
mov r1, #0x2a
bl FUN_0200A8E0
bl ReadMsgDataIntoString
pop {r4-r6, pc}
_0207297E:
ldr r1, _020729CC ; =0x00000B25
@@ -587,7 +587,7 @@ _0207297E:
ldr r0, _020729D0 ; =0x0000069C
mov r1, #0x25
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r4, r0, #0x0
add r0, r6, #0x0
bl FUN_020690E4
@@ -603,9 +603,9 @@ _0207297E:
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
nop
_020729C4: .word 0x000005A4
@@ -648,7 +648,7 @@ FUN_02072A00: ; 0x02072A00
lsl r2, r4, #0x3
ldrh r1, [r1, r2]
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
add r0, r7, #0x0
bl FUN_020690E4
@@ -667,9 +667,9 @@ FUN_02072A00: ; 0x02072A00
add r2, #0x60
ldr r1, [r1, r2]
add r2, r6, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
pop {r3-r7, pc}
nop
_02072A4C: .word 0x0000069C
@@ -727,7 +727,7 @@ _02072A9C:
ldr r0, [r5, r0]
ldr r2, [r5, r2]
mov r1, #0x1b
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r1, #0x0
str r1, [sp, #0x0]
mov r0, #0xff
@@ -751,7 +751,7 @@ _02072ADC:
ldr r0, [r5, r0]
ldr r2, [r5, r2]
mov r1, #0x1c
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r1, #0x0
str r1, [sp, #0x0]
mov r0, #0xff
@@ -1477,7 +1477,7 @@ FUN_02073094: ; 0x02073094
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _02073150 ; =0x000001EB
ldr r1, _02073154 ; =0x000006A8
ldrb r2, [r5, r2]
@@ -1511,7 +1511,7 @@ _020730FE:
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r2, _0207315C ; =0x000001FB
ldr r1, _02073154 ; =0x000006A8
ldrb r2, [r5, r2]
@@ -1573,7 +1573,7 @@ _0207317A:
ldr r0, [r5, r2]
add r2, #0x8
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
_02073198:
mov r3, #0x0
str r3, [sp, #0x0]
@@ -1644,7 +1644,7 @@ _02073202:
ldr r0, [r5, r2]
add r2, #0x8
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
_02073220:
add r0, r5, #0x0
bl FUN_0207322C
@@ -1773,14 +1773,14 @@ _02073318:
ldr r0, _0207335C ; =0x0000069C
mov r1, #0xb2
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x10]
b _02073332
_02073326:
ldr r0, _0207335C ; =0x0000069C
mov r1, #0xb3
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x10]
_02073332:
mov r1, #0x0
@@ -1795,7 +1795,7 @@ _02073332:
str r1, [sp, #0xc]
bl FUN_0201BDE0
ldr r0, [sp, #0x10]
bl FUN_02021A20
bl String_dtor
add r0, r4, r6
bl FUN_02019220
add sp, #0x14
@@ -1829,21 +1829,21 @@ _0207338C:
ldr r0, _020733DC ; =0x0000069C
mov r1, #0xaf
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x10]
b _020733B4
_0207339A:
ldr r0, _020733DC ; =0x0000069C
mov r1, #0xb0
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x10]
b _020733B4
_020733A8:
ldr r0, _020733DC ; =0x0000069C
mov r1, #0xb1
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x10]
_020733B4:
mov r1, #0x0
@@ -1858,7 +1858,7 @@ _020733B4:
str r1, [sp, #0xc]
bl FUN_0201BDE0
ldr r0, [sp, #0x10]
bl FUN_02021A20
bl String_dtor
add r0, r4, r7
bl FUN_02019220
add sp, #0x14
@@ -1886,12 +1886,12 @@ FUN_020733E4: ; 0x020733E4
bne _0207340E
ldr r0, [r5, r0]
mov r1, #0xb5
bl FUN_0200A914
bl NewString_ReadMsgData
b _02073416
_0207340E:
ldr r0, [r5, r0]
mov r1, #0xb4
bl FUN_0200A914
bl NewString_ReadMsgData
_02073416:
mov r1, #0x0
add r5, r0, #0x0
@@ -1906,7 +1906,7 @@ _02073416:
str r1, [sp, #0xc]
bl FUN_0201BDE0
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r4, r6
bl FUN_02019220
add sp, #0x10
@@ -1935,7 +1935,7 @@ FUN_02073448: ; 0x02073448
add r6, #0xa9
ldr r0, [r5, r0]
add r1, r6, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
b _02073490
_02073476:
@@ -1943,13 +1943,13 @@ _02073476:
bne _02073486
ldr r0, [r5, r0]
mov r1, #0xa7
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
b _02073490
_02073486:
ldr r0, [r5, r0]
mov r1, #0xa8
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
_02073490:
mov r1, #0x0
@@ -1964,7 +1964,7 @@ _02073490:
str r1, [sp, #0xc]
bl FUN_0201BDE0
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r4, r7
bl FUN_02019220
add sp, #0x10
@@ -2056,7 +2056,7 @@ _0207356C:
ldr r1, [sp, #0x14]
ldr r0, [r5, r0]
add r1, #0xb9
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x18]
mov r1, #0x0
str r4, [sp, #0x0]
@@ -2071,11 +2071,11 @@ _0207356C:
add r3, r1, #0x0
bl FUN_0201BD84
ldr r0, [sp, #0x18]
bl FUN_02021A20
bl String_dtor
ldr r0, _02073630 ; =0x0000069C
mov r1, #0xbf
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0x1c]
mov r0, #0x0
str r0, [sp, #0x0]
@@ -2097,9 +2097,9 @@ _0207356C:
ldr r0, [r5, r0]
ldr r1, [r5, r1]
ldr r2, [sp, #0x1c]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r0, [sp, #0x1c]
bl FUN_02021A20
bl String_dtor
ldr r1, _02073638 ; =0x000006A4
mov r0, #0x0
ldr r1, [r5, r1]
@@ -2162,7 +2162,7 @@ FUN_0207363C: ; 0x0207363C
ldr r0, _020736E8 ; =0x0000069C
mov r1, #0xc0
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
str r0, [sp, #0xc]
mov r0, #0x0
str r0, [sp, #0x10]
@@ -2187,7 +2187,7 @@ _0207366E:
ldr r0, [r5, r0]
ldr r1, [r5, r1]
ldr r2, [sp, #0xc]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r1, _020736F0 ; =0x000006A4
mov r0, #0x0
ldr r1, [r5, r1]
@@ -2216,7 +2216,7 @@ _0207366E:
cmp r0, #0x6
blo _0207366E
ldr r0, [sp, #0xc]
bl FUN_02021A20
bl String_dtor
mov r0, #0x95
lsl r0, r0, #0x2
add r0, r5, r0

View File

@@ -206,7 +206,7 @@ FUN_02073EEC: ; 0x02073EEC
add r2, #0xc
ldr r2, [r5, r2]
mov r1, #0x51
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r6, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -222,7 +222,7 @@ FUN_02073EEC: ; 0x02073EEC
add r2, #0x8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
b _02074018
_02073F66:
ldr r0, [r5, r0]
@@ -252,7 +252,7 @@ _02073F66:
ldr r0, [r5, r2]
add r2, #0xc
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
add r0, r6, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -280,7 +280,7 @@ _02073F66:
add r2, #0x8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r1, _0207404C ; =0x00000B25
mov r2, #0x2c
ldrb r3, [r5, r1]
@@ -303,7 +303,7 @@ _0207400A:
ldr r0, [r5, r2]
add r2, #0x8
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
_02074018:
mov r0, #0x89
lsl r0, r0, #0x2
@@ -2394,7 +2394,7 @@ FUN_02075118: ; 0x02075118
add r2, #0x8
ldr r2, [r4, r2]
mov r1, #0x81
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, _02075194 ; =0x00000B25
ldrb r0, [r4, r0]
add r0, #0x16
@@ -2411,7 +2411,7 @@ _0207515C:
add r2, #0x8
ldr r2, [r4, r2]
mov r1, #0x82
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, _02075194 ; =0x00000B25
mov r1, #0x7
strb r1, [r4, r0]

View File

@@ -418,7 +418,7 @@ _0207586C:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x41
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -426,15 +426,15 @@ _0207586C:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075890:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x5b
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -442,15 +442,15 @@ _02075890:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_020758B4:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x43
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -458,15 +458,15 @@ _020758B4:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_020758D8:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x44
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -474,15 +474,15 @@ _020758D8:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_020758FC:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x42
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -490,15 +490,15 @@ _020758FC:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075920:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x49
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -506,15 +506,15 @@ _02075920:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075944:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4a
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -522,15 +522,15 @@ _02075944:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075968:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x47
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -538,15 +538,15 @@ _02075968:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_0207598C:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -560,15 +560,15 @@ _0207598C:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_020759BE:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -582,15 +582,15 @@ _020759BE:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_020759F0:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -604,15 +604,15 @@ _020759F0:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075A22:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -626,15 +626,15 @@ _02075A22:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075A54:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -648,15 +648,15 @@ _02075A54:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075A86:
ldr r0, _02075B94 ; =0x0000069C
mov r1, #0x4b
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -670,16 +670,16 @@ _02075A86:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075AB8:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -693,16 +693,16 @@ _02075AB8:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075AEC:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -716,16 +716,16 @@ _02075AEC:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075B20:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -739,16 +739,16 @@ _02075B20:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075B54:
ldr r0, _02075B94 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -762,9 +762,9 @@ _02075B54:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075B88:
ldr r0, _02075B94 ; =0x0000069C
@@ -777,7 +777,7 @@ _02075B98:
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -791,16 +791,16 @@ _02075B98:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075BCA:
ldr r0, _02075C50 ; =0x0000069C
add r5, #0x6e
ldr r0, [r4, r0]
add r1, r5, #0x0
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -814,15 +814,15 @@ _02075BCA:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075BFE:
ldr r0, _02075C50 ; =0x0000069C
mov r1, #0x48
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -836,9 +836,9 @@ _02075BFE:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r6, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
pop {r4-r6, pc}
_02075C30:
ldr r2, _02075C50 ; =0x0000069C
@@ -846,7 +846,7 @@ _02075C30:
ldr r0, [r4, r2]
add r2, #0x8
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
pop {r4-r6, pc}
_02075C40:
ldr r2, _02075C50 ; =0x0000069C
@@ -854,7 +854,7 @@ _02075C40:
ldr r0, [r4, r2]
add r2, #0x8
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
pop {r4-r6, pc}
.balign 4
_02075C50: .word 0x0000069C
@@ -1261,7 +1261,7 @@ FUN_02075F60: ; 0x02075F60
sub r0, #0x6a
ldr r0, [r5, r0]
mov r1, #0x46
bl FUN_0200A914
bl NewString_ReadMsgData
add r7, r0, #0x0
b _02075FDA
_02075FBC:
@@ -1270,14 +1270,14 @@ _02075FBC:
sub r0, #0x6a
ldr r0, [r5, r0]
mov r1, #0x47
bl FUN_0200A914
bl NewString_ReadMsgData
add r7, r0, #0x0
b _02075FDA
_02075FCE:
sub r0, #0x6a
ldr r0, [r5, r0]
mov r1, #0x40
bl FUN_0200A914
bl NewString_ReadMsgData
add r7, r0, #0x0
_02075FDA:
ldr r0, [sp, #0x8]
@@ -1311,9 +1311,9 @@ _02075FDA:
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r7, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
ldr r0, [sp, #0x8]
bl FUN_0207C2D4
add r4, r0, #0x0
@@ -1528,7 +1528,7 @@ _020761C2:
ldr r0, [r4, r2]
add r2, #0x8
ldr r2, [r4, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -1578,7 +1578,7 @@ _02076212:
ldr r0, _020763E4 ; =0x0000069C
mov r1, #0x46
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
add r0, r5, #0x0
bl FUN_020690E4
@@ -1594,9 +1594,9 @@ _02076212:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r6, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
ldr r7, _020763E0 ; =0x00000B25
ldr r3, _020763F4 ; =0x0000070E
ldrb r5, [r4, r7]
@@ -1869,7 +1869,7 @@ FUN_0207640C: ; 0x0207640C
sub r1, #0x6c
ldr r0, [r5, r1]
mov r1, #0xc1
bl FUN_0200A914
bl NewString_ReadMsgData
add r7, r0, #0x0
add r0, r4, #0x0
bl FUN_020690E4
@@ -1901,9 +1901,9 @@ FUN_0207640C: ; 0x0207640C
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r7, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FUN_0207C2D4
add r4, r0, #0x0
@@ -2101,7 +2101,7 @@ _020766BA:
ldr r0, _02076880 ; =0x0000069C
mov r1, #0x34
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2109,9 +2109,9 @@ _020766BA:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2148,7 +2148,7 @@ _02076724:
ldr r0, _02076880 ; =0x0000069C
mov r1, #0xc2
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2156,9 +2156,9 @@ _02076724:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2207,7 +2207,7 @@ _020767A4:
ldr r0, _02076880 ; =0x0000069C
mov r1, #0x3d
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r2, #0x6a
lsl r2, r2, #0x4
add r5, r0, #0x0
@@ -2223,9 +2223,9 @@ _020767A4:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2345,7 +2345,7 @@ _020768E6:
ldr r0, _02076948 ; =0x0000069C
mov r1, #0x3c
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2353,9 +2353,9 @@ _020768E6:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2382,7 +2382,7 @@ FUN_02076950: ; 0x02076950
ldr r0, _02076998 ; =0x0000069C
mov r1, #0x3b
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -2390,9 +2390,9 @@ FUN_02076950: ; 0x02076950
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -2420,7 +2420,7 @@ FUN_020769A4: ; 0x020769A4
ldr r0, _020769EC ; =0x0000069C
mov r1, #0x37
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -2428,9 +2428,9 @@ FUN_020769A4: ; 0x020769A4
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -2460,7 +2460,7 @@ FUN_020769FC: ; 0x020769FC
ldr r0, _02076A40 ; =0x0000069C
mov r1, #0x3a
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -2468,9 +2468,9 @@ FUN_020769FC: ; 0x020769FC
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -2495,7 +2495,7 @@ FUN_02076A48: ; 0x02076A48
ldr r0, _02076A90 ; =0x0000069C
mov r1, #0x34
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -2503,9 +2503,9 @@ FUN_02076A48: ; 0x02076A48
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -2642,7 +2642,7 @@ _02076B68:
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x3d
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2650,9 +2650,9 @@ _02076B68:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2671,7 +2671,7 @@ _02076BB2:
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x3f
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2679,9 +2679,9 @@ _02076BB2:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2700,7 +2700,7 @@ _02076BF2:
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x34
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2708,9 +2708,9 @@ _02076BF2:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2730,7 +2730,7 @@ _02076C34:
ldr r0, _02076C80 ; =0x0000069C
mov r1, #0x3e
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2738,9 +2738,9 @@ _02076C34:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2813,7 +2813,7 @@ _02076CDC:
ldr r0, _02076D34 ; =0x0000069C
mov r1, #0x3c
ldr r0, [r4, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r5, r0, #0x0
lsl r1, r1, #0x4
@@ -2821,9 +2821,9 @@ _02076CDC:
add r1, r1, #0x4
ldr r1, [r4, r1]
add r2, r5, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -2865,7 +2865,7 @@ FUN_02076D3C: ; 0x02076D3C
ldr r0, _02076DCC ; =0x0000069C
mov r1, #0x3d
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r2, #0x6a
lsl r2, r2, #0x4
add r4, r0, #0x0
@@ -2881,9 +2881,9 @@ FUN_02076D3C: ; 0x02076D3C
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -2916,7 +2916,7 @@ FUN_02076DD4: ; 0x02076DD4
ldr r0, _02076E1C ; =0x0000069C
mov r1, #0x3b
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -2924,9 +2924,9 @@ FUN_02076DD4: ; 0x02076DD4
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -2954,7 +2954,7 @@ FUN_02076E28: ; 0x02076E28
ldr r0, _02076E70 ; =0x0000069C
mov r1, #0x37
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -2962,9 +2962,9 @@ FUN_02076E28: ; 0x02076E28
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -2994,7 +2994,7 @@ FUN_02076E80: ; 0x02076E80
ldr r0, _02076EC8 ; =0x0000069C
mov r1, #0x3a
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -3002,9 +3002,9 @@ FUN_02076E80: ; 0x02076E80
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -3032,7 +3032,7 @@ FUN_02076ED4: ; 0x02076ED4
ldr r0, _02076F1C ; =0x0000069C
mov r1, #0x34
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x6a
add r4, r0, #0x0
lsl r1, r1, #0x4
@@ -3040,9 +3040,9 @@ FUN_02076ED4: ; 0x02076ED4
add r1, r1, #0x4
ldr r1, [r5, r1]
add r2, r4, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@@ -3149,7 +3149,7 @@ FUN_02076FB0: ; 0x02076FB0
add r1, r6, #0x0
ldr r0, [r5, r0]
add r1, #0xa2
bl FUN_0200A914
bl NewString_ReadMsgData
add r7, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -3163,9 +3163,9 @@ FUN_02076FB0: ; 0x02076FB0
add r1, #0x8
ldr r1, [r5, r1]
add r2, r7, #0x0
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
cmp r4, #0x0
ldr r1, _02077038 ; =0x000006F8
bne _0207701C
@@ -3402,7 +3402,7 @@ _020771F6:
ldr r0, [r5, r2]
add r2, #0x8
ldr r2, [r5, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
_02077204:
mov r1, #0x0
add r0, r5, #0x0
@@ -3457,7 +3457,7 @@ FUN_02077248: ; 0x02077248
ldr r0, [r4, r0]
ldr r2, [r4, r2]
mov r1, #0x7f
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r1, _020772BC ; =0x00000B25
add r0, r4, #0x0
ldrb r1, [r4, r1]
@@ -3470,7 +3470,7 @@ _02077286:
ldr r0, [r4, r0]
ldr r2, [r4, r2]
mov r1, #0x80
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, _020772BC ; =0x00000B25
mov r1, #0x7
strb r1, [r4, r0]

View File

@@ -965,33 +965,33 @@ FUN_020777D4: ; 0x020777D4
ldr r0, [r5, #0x4]
cmp r0, #0x0
bne _020777FE
bl rand_LC
bl LCRandom
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
b _0207781A
_020777FE:
cmp r0, #0x1
bne _0207781A
bl rand_LC
bl LCRandom
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
add r1, #0x12
bl FUN_0200A914
bl NewString_ReadMsgData
add r6, r0, #0x0
_0207781A:
ldr r0, [r4, #0x18]
add r1, r6, #0x0
bl FUN_02021A74
bl StringCopy
add r0, r6, #0x0
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x18]
add r4, #0x1c
add r1, r4, #0x0
@@ -1005,13 +1005,13 @@ _02077836:
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x58
bl FUN_0200A914
bl NewString_ReadMsgData
add r5, r0, #0x0
ldr r0, [r4, #0x18]
add r1, r5, #0x0
bl FUN_02021A74
bl StringCopy
add r0, r5, #0x0
bl FUN_02021A20
bl String_dtor
ldr r0, [r4, #0x18]
add r4, #0x1c
add r1, r4, #0x0
@@ -1112,12 +1112,12 @@ _0207790E:
add r1, r4, #0x0
add r0, r4, r0
add r1, #0xd8
bl StringCopy
bl CopyU16StringArray
add r0, r5, #0x0
add r1, r4, #0x0
add r0, #0x1c
add r1, #0xd8
bl StringCopy
bl CopyU16StringArray
add r1, r4, #0x0
ldr r0, [r5, #0x18]
add r1, #0xd8
@@ -1126,7 +1126,7 @@ _02077932:
mov r0, #0x61
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
mov r7, #0xe7
mov r6, #0x0
add r5, r4, #0x0
@@ -1215,16 +1215,16 @@ _020779C2:
ldr r0, [r4, r0]
cmp r0, #0x0
beq _02077A0C
bl FUN_02021A20
bl String_dtor
_02077A0C:
mov r0, #0x5e
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x5f
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x5d
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -1282,7 +1282,7 @@ FUN_02077A84: ; 0x02077A84
ldr r1, [sp, #0x0]
strh r0, [r4, #0x1c]
add r0, r5, #0x1
bl FUN_020219F4
bl String_ctor
str r0, [r4, #0x18]
mov r1, #0x0
str r1, [r4, #0x44]
@@ -1310,7 +1310,7 @@ _02077AD2:
bl ErrorHandling
_02077ADA:
ldr r0, [r4, #0x18]
bl FUN_02021A20
bl String_dtor
add r0, r4, #0x0
bl FreeToHeap
pop {r4, pc}
@@ -1679,7 +1679,7 @@ _02077DD8:
ldr r2, [r2, r3]
ldr r1, [r4, r1]
mov r3, #0x12
bl FUN_0200A9C4
bl ReadMsgData_ExpandPlaceholders
mov r1, #0x5e
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -1690,14 +1690,14 @@ _02077DD8:
ldr r1, [r4, r1]
mov r2, #0x8
mov r3, #0x12
bl FUN_0200A9C4
bl ReadMsgData_ExpandPlaceholders
mov r1, #0x5f
lsl r1, r1, #0x2
str r0, [r4, r1]
sub r1, #0x10
ldr r0, [r4, r1]
mov r1, #0x7
bl FUN_0200A914
bl NewString_ReadMsgData
mov r1, #0x61
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -1768,7 +1768,7 @@ FUN_02077E90: ; 0x02077E90
beq _02077FA0
mov r0, #0xc8
mov r1, #0x12
bl FUN_020219F4
bl String_ctor
add r7, r0, #0x0
mov r0, #0x6
mov r1, #0x0
@@ -1873,14 +1873,14 @@ _02077F7E:
ldr r1, [r5, r1]
ldr r2, [r4, #0x44]
mov r3, #0x12
bl FUN_0200A9C4
bl ReadMsgData_ExpandPlaceholders
mov r1, #0x6
lsl r1, r1, #0x6
str r0, [r5, r1]
mov r0, #0x1
str r0, [r5, #0x14]
add r0, r7, #0x0
bl FUN_02021A20
bl String_dtor
_02077FA0:
add sp, #0x14
pop {r4-r7, pc}
@@ -3264,7 +3264,7 @@ _02078A90:
add r0, r5, #0x0
add r0, #0xd8
add r1, r5, r1
bl StringCopy
bl CopyU16StringArray
mov r0, #0xc
str r0, [sp, #0x0]
mov r2, #0x0
@@ -3699,7 +3699,7 @@ FUN_02078E3C: ; 0x02078E3C
strh r1, [r0, #0x0]
_02078E52:
ldrh r0, [r0, #0x0]
bl FUN_0201B970
bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
@@ -3729,7 +3729,7 @@ FUN_02078E7C: ; 0x02078E7C
str r2, [sp, #0x1c]
str r3, [sp, #0x20]
mov r4, #0x0
bl FUN_020219F4
bl String_ctor
str r0, [sp, #0x28]
ldrh r1, [r7, #0x0]
ldr r0, _02078F6C ; =0x0000FFFF
@@ -3837,7 +3837,7 @@ _02078F58:
bne _02078EB4
_02078F62:
ldr r0, [sp, #0x28]
bl FUN_02021A20
bl String_dtor
add sp, #0x3c
pop {r4-r7, pc}
.balign 4
@@ -3916,7 +3916,7 @@ _02078FD0:
blo _02078FD0
mov r0, #0x15
mov r1, #0x12
bl FUN_020219F4
bl String_ctor
add r4, r0, #0x0
mov r5, #0x0
_02079012:
@@ -3955,7 +3955,7 @@ _02079012:
cmp r5, #0x3
blo _02079012
add r0, r4, #0x0
bl FUN_02021A20
bl String_dtor
add sp, #0x38
pop {r3-r7, pc}
nop

View File

@@ -674,25 +674,25 @@ FUN_0207A1A0: ; 0x0207A1A0
str r0, [r4, r1]
mov r0, #0xc
mov r1, #0x13
bl FUN_020219F4
bl String_ctor
mov r1, #0x25
lsl r1, r1, #0x4
str r0, [r4, r1]
mov r0, #0xc
mov r1, #0x13
bl FUN_020219F4
bl String_ctor
mov r1, #0x95
lsl r1, r1, #0x2
str r0, [r4, r1]
mov r0, #0x8
mov r1, #0x13
bl FUN_020219F4
bl String_ctor
mov r1, #0x96
lsl r1, r1, #0x2
str r0, [r4, r1]
mov r0, #0x80
mov r1, #0x13
bl FUN_020219F4
bl String_ctor
mov r1, #0x1a
lsl r1, r1, #0x6
str r0, [r4, r1]
@@ -706,7 +706,7 @@ FUN_0207A1A0: ; 0x0207A1A0
str r0, [r4, r1]
mov r0, #0x8
mov r1, #0x13
bl FUN_020219F4
bl String_ctor
ldr r2, _0207A260 ; =0x00000684
str r0, [r4, r2]
mov r0, #0x93
@@ -749,22 +749,22 @@ FUN_0207A264: ; 0x0207A264
mov r0, #0x25
lsl r0, r0, #0x4
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x95
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x96
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
mov r0, #0x1a
lsl r0, r0, #0x6
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
ldr r0, _0207A2D4 ; =0x00000684
ldr r0, [r4, r0]
bl FUN_02021A20
bl String_dtor
pop {r4, pc}
.balign 4
_0207A2C4: .word 0x00000688
@@ -1858,7 +1858,7 @@ FUN_0207AB0C: ; 0x0207AB0C
add r2, #0xc
ldr r2, [r7, r2]
mov r1, #0xb
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, _0207AEB0 ; =0x0000067C
mov r1, #0x0
ldr r0, [r7, r0]
@@ -1871,13 +1871,13 @@ FUN_0207AB0C: ; 0x0207AB0C
add r2, r2, #0x4
ldr r1, [r7, r1]
ldr r2, [r7, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r2, _0207AEAC ; =0x00000674
mov r1, #0x0
ldr r0, [r7, r2]
add r2, #0xc
ldr r2, [r7, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, _0207AEB0 ; =0x0000067C
mov r1, #0x0
ldr r0, [r7, r0]
@@ -1890,13 +1890,13 @@ FUN_0207AB0C: ; 0x0207AB0C
add r2, r2, #0x4
ldr r1, [r7, r1]
ldr r2, [r7, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
ldr r2, _0207AEAC ; =0x00000674
mov r1, #0xe
ldr r0, [r7, r2]
add r2, #0xc
ldr r2, [r7, r2]
bl FUN_0200A8E0
bl ReadMsgDataIntoString
ldr r0, _0207AEB0 ; =0x0000067C
mov r1, #0x0
ldr r0, [r7, r0]
@@ -1909,7 +1909,7 @@ FUN_0207AB0C: ; 0x0207AB0C
add r2, r2, #0x4
ldr r1, [r7, r1]
ldr r2, [r7, r2]
bl FUN_0200B7B8
bl StringExpandPlaceholders
add r0, r6, #0x0
mov r1, #0x6
mov r2, #0x0

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