mirror of
https://github.com/zeldaret/tmc
synced 2026-06-07 03:58:00 -04:00
+1
-1
@@ -30,7 +30,7 @@ It must be the first include in the file. Other includes will assume you have in
|
||||
|
||||
## 2. Include it in the rom
|
||||
|
||||
Include `src/evilSpirit.c` in the rom by adding `src/evilSpirit.o` to `ld_script.ld`:
|
||||
Include `src/evilSpirit.c` in the rom by adding `src/evilSpirit.o` to `linker.ld`:
|
||||
```diff
|
||||
asm/room.o(.text);
|
||||
asm/code_08080974.o(.text);
|
||||
|
||||
+12
@@ -1,5 +1,17 @@
|
||||
# Install
|
||||
First, you must put a The Legend of Zelda: The Minish Cap (U) ROM (with SHA1: `b4bd50e4131b027c334547b4524e2dbbd4227130`) in the root directory of the repository and name it `baserom.gba`.
|
||||
|
||||
|
||||
## Building other variants
|
||||
To build other variants, you currently need a combination of different baseroms, depending on the variant.
|
||||
| | USA | DEMO | JP | EU |
|
||||
| - | :-: | :-: | :-: | :-: |
|
||||
| baserom.gba | X | X | X | X |
|
||||
| baserom_demo.gba | | X | | |
|
||||
| baserom_jp.gba | | | X | X |
|
||||
| baserom_eu.gba | | | | X |
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
| Linux | macOS | Windows 10 (build 18917+) | Windows 10 (1709+) | Windows 8, 8.1, and 10 (1507, 1511, 1607, 1703)
|
||||
|
||||
@@ -5,17 +5,39 @@ COMPARE ?= 0
|
||||
CPP := $(CC) -E
|
||||
LD := $(DEVKITARM)/bin/arm-none-eabi-ld
|
||||
|
||||
GAME_VERSION := THEMINISHCAP
|
||||
GAME_VERSION ?= USA
|
||||
REVISION := 0
|
||||
GAME_LANGUAGE := ENGLISH
|
||||
|
||||
TITLE := GBAZELDA MC
|
||||
GAME_CODE := BZME
|
||||
MAKER_CODE := 01
|
||||
|
||||
ifeq ($(GAME_VERSION), USA)
|
||||
GAME_CODE := BZME
|
||||
BUILD_NAME := tmc
|
||||
else
|
||||
ifeq ($(GAME_VERSION), DEMO)
|
||||
GAME_CODE := BZHE
|
||||
BUILD_NAME := tmc_demo
|
||||
else
|
||||
ifeq ($(GAME_VERSION), JP)
|
||||
GAME_CODE := BZMJ
|
||||
BUILD_NAME := tmc_jp
|
||||
GAME_LANGUAGE := JAPANESE
|
||||
else
|
||||
ifeq ($(GAME_VERSION), EU)
|
||||
GAME_CODE := BZMP
|
||||
BUILD_NAME := tmc_eu
|
||||
else
|
||||
$(error unknown version $(GAME_VERSION))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
SHELL := /bin/bash -o pipefail
|
||||
|
||||
BUILD_NAME := tmc
|
||||
|
||||
ROM := $(BUILD_NAME).gba
|
||||
OBJ_DIR := build/$(BUILD_NAME)
|
||||
|
||||
@@ -120,11 +142,11 @@ MAKEFLAGS += --no-print-directory
|
||||
AUTO_GEN_TARGETS :=
|
||||
|
||||
all: $(ROM)
|
||||
@$(SHA1) tmc.sha1
|
||||
@$(SHA1) $(BUILD_NAME).sha1
|
||||
|
||||
# kept for backwards compat
|
||||
compare: $(ROM)
|
||||
@$(SHA1) tmc.sha1
|
||||
@$(SHA1) $(BUILD_NAME).sha1
|
||||
|
||||
setup: $(TOOLDIRS)
|
||||
|
||||
@@ -143,7 +165,10 @@ clean-tools:
|
||||
clean: mostlyclean clean-tools
|
||||
|
||||
tidy:
|
||||
rm -f $(ROM) $(ELF) $(MAP)
|
||||
rm -f tmc.gba tmc.elf tmc.map
|
||||
rm -f tmc_demo.gba tmc_demo.elf tmc_demo.map
|
||||
rm -f tmc_jp.gba tmc_jp.elf tmc_jp.map
|
||||
rm -f tmc_eu.gba tmc_eu.elf tmc_eu.map
|
||||
rm -r build/*
|
||||
|
||||
include graphics_file_rules.mk
|
||||
@@ -165,6 +190,11 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@
|
||||
sound/songs/%.s: sound/songs/%.mid
|
||||
cd $(@D) && ../../$(MID) $(<F)
|
||||
translations/USA.bin: translations/USA.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x499E0
|
||||
translations/English.bin: translations/English.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x488C0
|
||||
translations/French.bin: translations/French.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x47A90
|
||||
translations/German.bin: translations/German.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x42FC0
|
||||
translations/Spanish.bin: translations/Spanish.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x41930
|
||||
translations/Italian.bin: translations/Italian.json ; tools/tmc_strings/tmc_strings -p --source $< --dest $@ --size 0x438E0
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(C_BUILDDIR)/%.o: c_dep :=
|
||||
@@ -199,9 +229,54 @@ $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
|
||||
$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
|
||||
$(AS) $(ASFLAGS) -I sound -o $@ $<
|
||||
|
||||
$(ELF): $(OBJS) linker.ld
|
||||
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -n -T ../../linker.ld -o ../../$@ $(LIB)
|
||||
$(OBJ_DIR)/linker.ld: linker.ld
|
||||
$(CPP) $(CPPFLAGS) -x c linker.ld | grep -v '^#' >$(OBJ_DIR)/linker.ld
|
||||
|
||||
$(ELF): $(OBJS) $(OBJ_DIR)/linker.ld
|
||||
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -n -T linker.ld -o ../../$@ $(LIB)
|
||||
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
|
||||
|
||||
$(ROM): $(ELF)
|
||||
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
|
||||
|
||||
usa: ; @$(MAKE) GAME_VERSION=USA
|
||||
demo: ; @$(MAKE) GAME_VERSION=DEMO
|
||||
jp: ; @$(MAKE) GAME_VERSION=JP
|
||||
eu: ; @$(MAKE) GAME_VERSION=EU
|
||||
|
||||
ifeq ($(GAME_VERSION), USA)
|
||||
baserom.gba:
|
||||
$(error "You need to provide a USA ROM as baserom.gba")
|
||||
.PHONY: baserom_demo.gba baserom_jp.gba baserom_eu.gba
|
||||
baserom_demo.gba:
|
||||
baserom_jp.gba:
|
||||
baserom_eu.gba:
|
||||
endif
|
||||
ifeq ($(GAME_VERSION), DEMO)
|
||||
baserom.gba:
|
||||
$(error "You need to provide a USA ROM as baserom.gba")
|
||||
baserom_demo.gba:
|
||||
$(error "You need to provide a DEMO ROM as baserom_demo.gba")
|
||||
.PHONY: baserom_jp.gba baserom_eu.gba
|
||||
baserom_jp.gba:
|
||||
baserom_eu.gba:
|
||||
endif
|
||||
ifeq ($(GAME_VERSION), JP)
|
||||
baserom.gba:
|
||||
$(error "You need to provide a USA ROM as baserom.gba")
|
||||
baserom_jp.gba:
|
||||
$(error "You need to provide a JP ROM as baserom_jp.gba")
|
||||
.PHONY: baserom_demo.gba baserom_eu.gba
|
||||
baserom_demo.gba:
|
||||
baserom_eu.gba:
|
||||
endif
|
||||
ifeq ($(GAME_VERSION), EU)
|
||||
baserom.gba:
|
||||
$(error "You need to provide a USA ROM as baserom.gba")
|
||||
baserom_jp.gba:
|
||||
$(error "You need to provide a JP ROM as baserom_jp.gba")
|
||||
baserom_eu.gba:
|
||||
$(error "You need to provide a EU ROM as baserom_eu.gba")
|
||||
.PHONY: baserom_demo.gba
|
||||
baserom_demo.gba:
|
||||
endif
|
||||
|
||||
+250
@@ -22,6 +22,255 @@ _08089D18: .4byte gUnk_08120DF4
|
||||
|
||||
thumb_func_start sub_08089D1C
|
||||
sub_08089D1C: @ 0x08089D1C
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0x19]
|
||||
movs r4, #0x3f
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
movs r6, #0x80
|
||||
orrs r0, r6
|
||||
strb r0, [r5, #0x19]
|
||||
ldrb r1, [r5, #0x1b]
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x1b]
|
||||
adds r0, r5, #0
|
||||
movs r1, #4
|
||||
bl sub_0805E3A0
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #7
|
||||
bne _08089688
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0808966C
|
||||
ldrb r0, [r5, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0808966C
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _08089662
|
||||
b _080897FE
|
||||
_08089662:
|
||||
ldrb r1, [r5, #0x1b]
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
orrs r0, r6
|
||||
strb r0, [r5, #0x1b]
|
||||
_0808966C:
|
||||
ldr r4, _08089684 @ =gUnk_08120E3C
|
||||
ldrb r0, [r5, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
ldrb r1, [r0]
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimation
|
||||
ldrb r0, [r5, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
b _080896C6
|
||||
.align 2, 0
|
||||
_08089684: .4byte gUnk_08120E3C
|
||||
_08089688:
|
||||
cmp r0, #0
|
||||
beq _080896A4
|
||||
ldr r0, _080896A0 @ =gUnk_08120E14
|
||||
ldrb r1, [r5, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimation
|
||||
b _080896BE
|
||||
.align 2, 0
|
||||
_080896A0: .4byte gUnk_08120E14
|
||||
_080896A4:
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
movs r2, #2
|
||||
bl sub_080AE008
|
||||
ldr r0, _08089700 @ =gUnk_08120E14
|
||||
ldrb r1, [r5, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r5, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_080896BE:
|
||||
ldr r1, _08089700 @ =gUnk_08120E14
|
||||
ldrb r0, [r5, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
_080896C6:
|
||||
ldrb r0, [r0, #1]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x29
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r1, [r5, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r5, #0x18]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
bge _080896F4
|
||||
b _080897F8
|
||||
_080896F4:
|
||||
cmp r0, #6
|
||||
ble _08089704
|
||||
cmp r0, #7
|
||||
beq _08089714
|
||||
b _080897F8
|
||||
.align 2, 0
|
||||
_08089700: .4byte gUnk_08120E14
|
||||
_08089704:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x60
|
||||
movs r2, #0
|
||||
movs r1, #0xe0
|
||||
lsls r1, r1, #1
|
||||
strh r1, [r0]
|
||||
strb r2, [r5, #0xe]
|
||||
b _080897F8
|
||||
_08089714:
|
||||
ldrb r1, [r5, #0xb]
|
||||
cmp r1, #3
|
||||
bgt _08089724
|
||||
cmp r1, #2
|
||||
bge _080897E4
|
||||
cmp r1, #0
|
||||
beq _0808972A
|
||||
b _080897F8
|
||||
_08089724:
|
||||
cmp r1, #4
|
||||
beq _080897F0
|
||||
b _080897F8
|
||||
_0808972A:
|
||||
movs r0, #0x10
|
||||
str r0, [r5, #0x6c]
|
||||
strb r1, [r5, #0xe]
|
||||
_08089730:
|
||||
movs r0, #0x2c
|
||||
movs r1, #7
|
||||
movs r2, #1
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
str r1, [r5, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080897C0
|
||||
ldrh r0, [r5, #0x2e]
|
||||
strh r0, [r1, #0x2e]
|
||||
ldr r2, [r5, #0x54]
|
||||
ldr r1, [r5, #0x6c]
|
||||
ldrh r0, [r5, #0x32]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2, #0x32]
|
||||
movs r0, #3
|
||||
strb r0, [r5, #0xf]
|
||||
_08089754:
|
||||
ldrb r0, [r5, #0xe]
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080897DC @ =gUnk_08120DFC
|
||||
adds r4, r0, r1
|
||||
ldrb r2, [r4]
|
||||
subs r2, #2
|
||||
movs r0, #0x2c
|
||||
movs r1, #7
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
str r1, [r5, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080897A2
|
||||
movs r0, #1
|
||||
ldrsb r0, [r4, r0]
|
||||
ldrh r2, [r5, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0x2e]
|
||||
ldr r2, [r5, #0x54]
|
||||
ldr r1, [r5, #0x6c]
|
||||
ldrh r0, [r5, #0x32]
|
||||
subs r0, r0, r1
|
||||
movs r1, #2
|
||||
ldrsb r1, [r4, r1]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2, #0x32]
|
||||
ldr r3, [r5, #0x54]
|
||||
ldrb r2, [r4, #3]
|
||||
movs r0, #1
|
||||
ands r2, r0
|
||||
lsls r2, r2, #6
|
||||
ldrb r0, [r3, #0x18]
|
||||
movs r4, #0x41
|
||||
rsbs r4, r4, #0
|
||||
adds r1, r4, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r3, #0x18]
|
||||
_080897A2:
|
||||
ldrb r0, [r5, #0xe]
|
||||
adds r2, r0, #1
|
||||
strb r2, [r5, #0xe]
|
||||
ldrb r0, [r5, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _08089754
|
||||
lsls r0, r2, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #5
|
||||
bls _080897C0
|
||||
strb r1, [r5, #0xe]
|
||||
_080897C0:
|
||||
ldr r0, [r5, #0x6c]
|
||||
adds r0, #0x38
|
||||
str r0, [r5, #0x6c]
|
||||
ldrh r1, [r5, #0x32]
|
||||
subs r1, r1, r0
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
ldr r0, _080897E0 @ =gRoomControls
|
||||
ldrh r0, [r0, #8]
|
||||
cmp r1, r0
|
||||
bge _08089730
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
b _080897F8
|
||||
.align 2, 0
|
||||
_080897DC: .4byte gUnk_08120DFC
|
||||
_080897E0: .4byte gRoomControls
|
||||
_080897E4:
|
||||
ldrb r0, [r5, #0x19]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x40
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #0x19]
|
||||
_080897F0:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
_080897F8:
|
||||
adds r0, r5, #0
|
||||
bl sub_08089F08
|
||||
_080897FE:
|
||||
pop {r4, r5, r6, pc}
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0x19]
|
||||
@@ -276,6 +525,7 @@ _08089F00:
|
||||
bl sub_08089F08
|
||||
_08089F06:
|
||||
pop {r4, r5, r6, pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08089F08
|
||||
sub_08089F08: @ 0x08089F08
|
||||
|
||||
@@ -630,7 +630,11 @@ _0809D6FE:
|
||||
CreateBird: @ 0x0809D700
|
||||
push {r4, lr}
|
||||
sub sp, #4
|
||||
.ifdef EU
|
||||
bl sub_08052620 @ TODO correct function?
|
||||
.else
|
||||
bl sub_08052654
|
||||
.endif
|
||||
cmp r0, #0
|
||||
beq _0809D732
|
||||
movs r0, #0
|
||||
|
||||
+315
-1
@@ -1727,6 +1727,281 @@ _080269C8: .4byte 0xFFFFFF00
|
||||
|
||||
thumb_func_start sub_080269CC
|
||||
sub_080269CC: @ 0x080269CC
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r6, r0, #0
|
||||
movs r7, #0
|
||||
ldr r5, [r6, #0x54]
|
||||
ldr r0, [r6, #0x68]
|
||||
mov sl, r0
|
||||
ldr r1, [r6, #0x50]
|
||||
mov sb, r1
|
||||
ldrb r1, [r6, #0x15]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #2
|
||||
mov r8, r1
|
||||
cmp r0, #0
|
||||
beq _080269DC
|
||||
ldr r0, _080269FC @ =0xFFFFFD00
|
||||
mov r8, r0
|
||||
_080269DC:
|
||||
mov r0, sl
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x20
|
||||
lsls r0, r4, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x3f
|
||||
bhi _08026A00
|
||||
mov r1, sl
|
||||
adds r1, #0x82
|
||||
ldrh r0, [r1]
|
||||
add r0, r8
|
||||
strh r0, [r1]
|
||||
b _08026A02
|
||||
.align 2, 0
|
||||
_080269FC: .4byte 0xFFFFFD00
|
||||
_08026A00:
|
||||
movs r7, #1
|
||||
_08026A02:
|
||||
mov r0, sb
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x44
|
||||
lsls r0, r4, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x87
|
||||
bhi _08026A20
|
||||
mov r1, sb
|
||||
adds r1, #0x82
|
||||
ldrh r0, [r1]
|
||||
add r0, r8
|
||||
strh r0, [r1]
|
||||
b _08026A22
|
||||
_08026A20:
|
||||
adds r7, #1
|
||||
_08026A22:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x40
|
||||
adds r0, #0x20
|
||||
cmp r0, #0x40
|
||||
bls _08026A62
|
||||
ldrb r1, [r6, #0x15]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08026A50
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #6
|
||||
beq _08026A62
|
||||
adds r0, r5, #0
|
||||
movs r1, #6
|
||||
bl InitAnimationForceUpdate
|
||||
b _08026A62
|
||||
_08026A50:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #5
|
||||
beq _08026A62
|
||||
adds r0, r5, #0
|
||||
movs r1, #5
|
||||
bl InitAnimationForceUpdate
|
||||
_08026A62:
|
||||
lsls r0, r4, #0x18
|
||||
cmp r0, #0
|
||||
blt _08026A74
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x82
|
||||
ldrh r0, [r1]
|
||||
add r0, r8
|
||||
strh r0, [r1]
|
||||
b _08026A76
|
||||
_08026A74:
|
||||
adds r7, #1
|
||||
_08026A76:
|
||||
cmp r7, #3
|
||||
beq _08026A7C
|
||||
b _08026B98
|
||||
_08026A7C:
|
||||
ldrb r1, [r6, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r6, #0x10]
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x76
|
||||
ldrh r0, [r1]
|
||||
adds r0, #3
|
||||
strh r0, [r1]
|
||||
movs r0, #0x20
|
||||
movs r1, #0
|
||||
bl sub_08080964
|
||||
ldr r0, _08026B24 @ =0x0000010B
|
||||
bl SoundReq
|
||||
adds r0, r6, #0
|
||||
movs r1, #0x15
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _08026B2E
|
||||
movs r0, #0xc9
|
||||
strh r0, [r4, #0x12]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r1, [r6, #0x1a]
|
||||
lsls r1, r1, #0x1c
|
||||
lsrs r1, r1, #0x1c
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #0x10
|
||||
strh r0, [r4, #0x32]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r2, [r5, #0x19]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r3, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r5, #0x1b]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r4, #0x1b]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x1b]
|
||||
ldrb r1, [r6, #0x15]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08026B28
|
||||
ldrh r0, [r4, #0x2e]
|
||||
subs r0, #0x38
|
||||
b _08026B2C
|
||||
.align 2, 0
|
||||
_08026B24: .4byte 0x0000010B
|
||||
_08026B28:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, #0x38
|
||||
_08026B2C:
|
||||
strh r0, [r4, #0x2e]
|
||||
_08026B2E:
|
||||
ldr r3, [r6, #0x50]
|
||||
ldr r2, [r6, #0x54]
|
||||
ldr r0, [r6, #0x68]
|
||||
adds r0, #0x84
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
adds r2, #0x84
|
||||
strb r1, [r2]
|
||||
adds r3, #0x84
|
||||
strb r1, [r3]
|
||||
mov r0, sb
|
||||
adds r0, #0x7a
|
||||
movs r1, #0x98
|
||||
strh r1, [r0]
|
||||
mov r0, sl
|
||||
adds r0, #0x7a
|
||||
strh r1, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x7a
|
||||
strh r1, [r0]
|
||||
bl Random
|
||||
ldr r2, _08026B94 @ =gUnk_080CC278
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
ldrb r0, [r1]
|
||||
adds r7, r6, #0
|
||||
adds r7, #0x7c
|
||||
strb r0, [r7]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, #3]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #3]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x49
|
||||
movs r2, #0xa
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _08026BB4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x84
|
||||
ldrb r0, [r7]
|
||||
str r0, [r1]
|
||||
b _08026BB4
|
||||
.align 2, 0
|
||||
_08026B94: .4byte gUnk_080CC278
|
||||
_08026B98:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x76
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0xef
|
||||
bhi _08026BB4
|
||||
ldr r0, [r5, #0x74]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xb
|
||||
adds r0, r0, r1
|
||||
str r0, [r5, #0x74]
|
||||
ldr r0, [r5, #0x78]
|
||||
ldr r1, _08026BC4 @ =0xFFFF8000
|
||||
adds r0, r0, r1
|
||||
str r0, [r5, #0x78]
|
||||
_08026BB4:
|
||||
adds r0, r6, #0
|
||||
bl sub_08027870
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08026BC4: .4byte 0xFFFF8000
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
@@ -1999,7 +2274,7 @@ _08026BD4:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08026BE4: .4byte 0xFFFF8000
|
||||
|
||||
.endif
|
||||
thumb_func_start sub_08026BE8
|
||||
sub_08026BE8: @ 0x08026BE8
|
||||
push {r4, r5, lr}
|
||||
@@ -4285,6 +4560,44 @@ _08027D1E:
|
||||
|
||||
thumb_func_start sub_08027D20
|
||||
sub_08027D20: @ 0x08027D20
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0x15
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _08027D44
|
||||
movs r0, #0xc9
|
||||
strh r0, [r3, #0x12]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r1, [r4, #0x1a]
|
||||
lsls r1, r1, #0x1c
|
||||
lsrs r1, r1, #0x1c
|
||||
ldrb r2, [r3, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x1a]
|
||||
ldrh r0, [r3, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r3, #0x32]
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #8
|
||||
strb r0, [r1]
|
||||
_08027D44:
|
||||
adds r0, r3, #0
|
||||
pop {r4, pc}
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r1, #0x15
|
||||
@@ -4321,3 +4634,4 @@ _08027D66:
|
||||
adds r0, r4, #0
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.endif
|
||||
|
||||
@@ -87,6 +87,9 @@ _080384C0:
|
||||
adds r1, #0x45
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
.ifdef EU
|
||||
_080384CA: @TODO fix labels
|
||||
.else
|
||||
b _080384D8
|
||||
_080384CA:
|
||||
movs r0, #0x3f
|
||||
@@ -95,6 +98,7 @@ _080384CA:
|
||||
bne _080384D8
|
||||
adds r0, r4, #0
|
||||
bl sub_08038754
|
||||
.endif
|
||||
_080384D8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
@@ -441,7 +445,11 @@ sub_08038754: @ 0x08038754
|
||||
movs r0, #0x5a
|
||||
strb r0, [r1]
|
||||
movs r1, #0
|
||||
.ifdef EU
|
||||
adds r0, #0xa6
|
||||
.else
|
||||
movs r0, #0xc0
|
||||
.endif
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xa
|
||||
|
||||
@@ -5,6 +5,44 @@
|
||||
|
||||
.text
|
||||
|
||||
.ifdef EU
|
||||
thumb_func_start sub_08000118
|
||||
sub_08000118: @ 0x08000118
|
||||
add r0, pc, #0x28
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800011C:
|
||||
subs r2, #4
|
||||
str r1, [r2]
|
||||
cmp r2, r3
|
||||
bgt _0800011C
|
||||
bx lr
|
||||
|
||||
non_word_aligned_thumb_func_start sub_08000126
|
||||
sub_08000126: @ 0x08000126
|
||||
add r0, pc, #0x1C
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800012A:
|
||||
ldr r0, [r3]
|
||||
adds r3, #4
|
||||
cmp r0, r1
|
||||
beq _0800012A
|
||||
subs r2, #0xa0
|
||||
_08000134:
|
||||
ldr r0, [r2]
|
||||
adds r2, #4
|
||||
cmp r0, r1
|
||||
beq _08000134
|
||||
subs r1, r2, #4
|
||||
subs r0, r3, #4
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08000144EU:
|
||||
.byte 0x33, 0x5A, 0x43, 0x4D
|
||||
.4byte gUnk_03007FA0
|
||||
.4byte gUnk_03006C14
|
||||
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08000108
|
||||
sub_08000108: @ 0x08000108
|
||||
push {r4, lr}
|
||||
|
||||
@@ -299,7 +299,12 @@ gUnk_08001701:: @ 08001701
|
||||
.incbin "baserom.gba", 0x001701, 0x0000001
|
||||
|
||||
gUnk_08001702:: @ 08001702
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x00174A, 0x0000014
|
||||
.else
|
||||
.incbin "baserom.gba", 0x001702, 0x0000014
|
||||
.endif
|
||||
|
||||
gUnk_08001716:: @ 08001716
|
||||
.incbin "baserom.gba", 0x001716, 0x0000017
|
||||
@@ -334,8 +339,12 @@ gUnk_08001860:: @ 08001860
|
||||
gUnk_080018A0:: @ 080018A0
|
||||
.incbin "baserom.gba", 0x0018A0, 0x0000004
|
||||
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0018EC, 0x7E
|
||||
.else
|
||||
gUnk_080018A4:: @ 080018A4
|
||||
.incbin "baserom.gba", 0x0018A4, 0x000005E
|
||||
.endif
|
||||
|
||||
gUnk_08001902:: @ 08001902
|
||||
.incbin "baserom.gba", 0x001902, 0x000000F
|
||||
@@ -344,7 +353,12 @@ gUnk_08001911:: @ 08001911
|
||||
.incbin "baserom.gba", 0x001911, 0x000000B
|
||||
|
||||
gUnk_0800191C:: @ 0800191C
|
||||
.ifdef EU
|
||||
@ TODO mostly 0 bytes?
|
||||
.incbin "baserom_eu.gba", 0x001984, 0x000008F
|
||||
.else
|
||||
.incbin "baserom.gba", 0x00191C, 0x000004F
|
||||
.endif
|
||||
|
||||
gUnk_0800196B:: @ 0800196B
|
||||
.incbin "baserom.gba", 0x00196B, 0x0000015
|
||||
|
||||
@@ -2254,7 +2254,22 @@ gUnk_08007CAC:: @ 08007CAC
|
||||
.incbin "baserom.gba", 0x007CAC, 0x000005B
|
||||
|
||||
gUnk_08007D07:: @ 08007D07
|
||||
.ifdef DEMO
|
||||
@ TODO only one byte differs
|
||||
.incbin "baserom_demo.gba", 0x007D07, 0x00000CF
|
||||
.else
|
||||
.ifdef JP
|
||||
@ TODO only one byte differs
|
||||
.incbin "baserom_jp.gba", 0x007D07, 0x00000CF
|
||||
.else
|
||||
.ifdef EU
|
||||
@ TODO only two bytes differ
|
||||
.incbin "baserom_eu.gba", 0x007D9F, 0x00000CF
|
||||
.else
|
||||
.incbin "baserom.gba", 0x007D07, 0x00000CF
|
||||
.endif
|
||||
.endif
|
||||
.endif
|
||||
|
||||
non_word_aligned_thumb_func_start sub_08007DD6
|
||||
sub_08007DD6: @ 0x08007DD6
|
||||
|
||||
@@ -958,7 +958,11 @@ sub_08017F40: @ 0x08017F40
|
||||
beq _0801801E
|
||||
ldr r2, _08017FB0 @ =gPlayerState
|
||||
ldr r3, [r2, #0x30]
|
||||
.ifdef EU
|
||||
movs r0, #0x81
|
||||
.else
|
||||
movs r0, #0x80
|
||||
.endif
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
bne _0801801E
|
||||
@@ -1247,7 +1251,11 @@ sub_08018168: @ 0x08018168
|
||||
beq _0801821C
|
||||
ldr r2, _080181F8 @ =gPlayerState
|
||||
ldr r3, [r2, #0x30]
|
||||
.ifdef EU
|
||||
movs r0, #0x81
|
||||
.else
|
||||
ldr r0, _080181FC @ =0x00040080
|
||||
.endif
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
bne _0801821C
|
||||
@@ -1302,7 +1310,9 @@ sub_08018168: @ 0x08018168
|
||||
.align 2, 0
|
||||
_080181F4: .4byte gPlayerEntity
|
||||
_080181F8: .4byte gPlayerState
|
||||
.ifndef EU
|
||||
_080181FC: .4byte 0x00040080
|
||||
.endif
|
||||
_08018200:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
|
||||
@@ -169,7 +169,15 @@ sub_0801862C: @ 0x0801862C
|
||||
strb r0, [r1, #0xc]
|
||||
ldr r5, _08018650 @ =gScreenTransition
|
||||
adds r0, r5, #0
|
||||
.ifdef JP
|
||||
adds r0, #0x34
|
||||
.else
|
||||
.ifdef EU
|
||||
adds r0, #0x34
|
||||
.else
|
||||
adds r0, #0x35
|
||||
.endif
|
||||
.endif
|
||||
strb r2, [r0]
|
||||
ldr r4, _08018654 @ =gUnk_02033AB8
|
||||
ldrb r0, [r4]
|
||||
@@ -627,7 +635,15 @@ _080189D0:
|
||||
beq _080189E4
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
.ifdef JP
|
||||
movs r1, #0x77
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r1, #0x77
|
||||
.else
|
||||
movs r1, #0x79
|
||||
.endif
|
||||
.endif
|
||||
bl SetLocalFlagByOffset
|
||||
ldr r0, _080189E8 @ =gUnk_080FEE38
|
||||
bl LoadRoomEntityList
|
||||
|
||||
@@ -985,10 +985,19 @@ _08019DE4:
|
||||
bne _08019DEE
|
||||
b _0801A2A4
|
||||
_08019DEE:
|
||||
.ifdef USA
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _08019DF6
|
||||
b _0801A2A4
|
||||
.else
|
||||
.ifdef DEMO
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _08019DF6
|
||||
b _0801A2A4
|
||||
.endif
|
||||
.endif
|
||||
_08019DF6:
|
||||
ldr r2, _08019E40 @ =gPlayerEntity
|
||||
ldrb r0, [r2, #0x14]
|
||||
|
||||
@@ -2190,6 +2190,147 @@ _0801E8D2:
|
||||
|
||||
thumb_func_start sub_0801E8D4
|
||||
sub_0801E8D4: @ 0x0801E8D4
|
||||
.ifdef JP
|
||||
push {r4, r5, lr}
|
||||
movs r4, #0xa
|
||||
_0801E8BC:
|
||||
adds r0, r4, #0
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
beq _0801E93A
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E810
|
||||
cmp r0, #0
|
||||
bne _0801E93A
|
||||
ldr r1, _0801E8F4 @ =0x080C9A5C
|
||||
lsls r0, r4, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0, #4]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E8F8 @ =0x080FDFD0
|
||||
adds r2, r0, r1
|
||||
ldrb r0, [r2, #0x10]
|
||||
cmp r0, #4
|
||||
bhi _0801E926
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E8FC @ =_0801E900
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0801E8F4: .4byte 0x080C9A5C
|
||||
_0801E8F8: .4byte 0x080FDFD0
|
||||
_0801E8FC: .4byte _0801E900
|
||||
_0801E900: @ jump table
|
||||
.4byte _0801E914 @ case 0
|
||||
.4byte _0801E918 @ case 1
|
||||
.4byte _0801E91C @ case 2
|
||||
.4byte _0801E920 @ case 3
|
||||
.4byte _0801E924 @ case 4
|
||||
_0801E914:
|
||||
movs r5, #0
|
||||
b _0801E926
|
||||
_0801E918:
|
||||
ldrb r5, [r2, #0x11]
|
||||
b _0801E926
|
||||
_0801E91C:
|
||||
movs r5, #0xf
|
||||
b _0801E926
|
||||
_0801E920:
|
||||
movs r5, #0x10
|
||||
b _0801E926
|
||||
_0801E924:
|
||||
movs r5, #0x11
|
||||
_0801E926:
|
||||
ldrh r1, [r2, #0x12]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807CB24
|
||||
cmp r0, #0
|
||||
beq _0801E93A
|
||||
ldr r0, _0801E944 @ =0x02002C8E
|
||||
adds r1, r4, #0
|
||||
bl WriteBit
|
||||
_0801E93A:
|
||||
adds r4, #1
|
||||
cmp r4, #0x64
|
||||
bls _0801E8BC
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801E944: .4byte 0x02002C8E
|
||||
.else
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
movs r4, #0xa
|
||||
_0801E910:
|
||||
adds r0, r4, #0
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
beq _0801E98E
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E810
|
||||
cmp r0, #0
|
||||
bne _0801E98E
|
||||
ldr r1, _0801E948 @ =gUnk_080C9CBC
|
||||
lsls r0, r4, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0, #4]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E94C @ =gUnk_080FE320
|
||||
adds r2, r0, r1
|
||||
ldrb r0, [r2, #0x10]
|
||||
cmp r0, #4
|
||||
bhi _0801E97A
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E950 @ =_0801E954
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0801E948: .4byte gUnk_080C9CBC
|
||||
_0801E94C: .4byte gUnk_080FE320
|
||||
_0801E950: .4byte _0801E954
|
||||
_0801E954: @ jump table
|
||||
.4byte _0801E968 @ case 0
|
||||
.4byte _0801E96C @ case 1
|
||||
.4byte _0801E970 @ case 2
|
||||
.4byte _0801E974 @ case 3
|
||||
.4byte _0801E978 @ case 4
|
||||
_0801E968:
|
||||
movs r5, #0
|
||||
b _0801E97A
|
||||
_0801E96C:
|
||||
ldrb r5, [r2, #0x11]
|
||||
b _0801E97A
|
||||
_0801E970:
|
||||
movs r5, #0xf
|
||||
b _0801E97A
|
||||
_0801E974:
|
||||
movs r5, #0x10
|
||||
b _0801E97A
|
||||
_0801E978:
|
||||
movs r5, #0x11
|
||||
_0801E97A:
|
||||
ldrh r1, [r2, #0x12]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807CB24
|
||||
cmp r0, #0
|
||||
beq _0801E98E
|
||||
ldr r0, _0801E998 @ =gUnk_02002C8E
|
||||
adds r1, r4, #0
|
||||
bl WriteBit
|
||||
_0801E98E:
|
||||
adds r4, #1
|
||||
cmp r4, #0x64
|
||||
bls _0801E910
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801E998: .4byte gUnk_02002C8E
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
movs r5, #0xa
|
||||
_0801E8D8:
|
||||
@@ -2289,6 +2430,8 @@ _0801E990:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801E998: .4byte gUnk_02002C8E
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0801E99C
|
||||
sub_0801E99C: @ 0x0801E99C
|
||||
|
||||
@@ -151,7 +151,9 @@ sub_080527FC: @ 0x080527FC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08053320
|
||||
.ifndef EU
|
||||
bl sub_080AE1D8
|
||||
.endif
|
||||
bl sub_080ADE24
|
||||
movs r0, #1
|
||||
bl sub_0801C370
|
||||
@@ -201,6 +203,7 @@ _0805286C: .4byte 0x00000864
|
||||
_08052870: .4byte gUnk_08127D30
|
||||
_08052874: .4byte gRoomControls
|
||||
|
||||
.ifndef EU
|
||||
thumb_func_start sub_08052878
|
||||
sub_08052878: @ 0x08052878
|
||||
push {lr}
|
||||
@@ -232,6 +235,7 @@ sub_0805289C: @ 0x0805289C
|
||||
.align 2, 0
|
||||
_080528AC: .4byte gArea
|
||||
_080528B0: .4byte 0x00000864
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080528B4
|
||||
sub_080528B4: @ 0x080528B4
|
||||
@@ -620,7 +624,15 @@ sub_08052BB8: @ 0x08052BB8
|
||||
push {lr}
|
||||
ldr r0, _08052BE0 @ =gScreenTransition
|
||||
adds r2, r0, #0
|
||||
.ifdef JP
|
||||
adds r2, #0x34
|
||||
.else
|
||||
.ifdef EU
|
||||
adds r2, #0x34
|
||||
.else
|
||||
adds r2, #0x35
|
||||
.endif
|
||||
.endif
|
||||
ldrb r1, [r2]
|
||||
adds r3, r0, #0
|
||||
cmp r1, #0
|
||||
@@ -649,6 +661,7 @@ _08052BEE:
|
||||
bl TextBoxAtYPosition
|
||||
pop {pc}
|
||||
|
||||
.ifdef USA
|
||||
thumb_func_start sub_08052BF8
|
||||
sub_08052BF8: @ 0x08052BF8
|
||||
push {lr}
|
||||
@@ -682,6 +695,43 @@ _08052C30:
|
||||
.align 2, 0
|
||||
_08052C34: .4byte gScreenTransition
|
||||
_08052C38: .4byte gArea
|
||||
.else
|
||||
.ifdef DEMO @TODO deduplicate
|
||||
thumb_func_start sub_08052BF8
|
||||
sub_08052BF8: @ 0x08052BF8
|
||||
push {lr}
|
||||
ldr r2, _08052C34 @ =gScreenTransition
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x31
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _08052C30
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, _08052C38 @ =gArea
|
||||
ldrb r1, [r0, #1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x2e
|
||||
strb r1, [r0]
|
||||
bl GetEmptyManager
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08052C30
|
||||
movs r0, #9
|
||||
strb r0, [r1, #8]
|
||||
movs r0, #0xf
|
||||
strb r0, [r1, #9]
|
||||
strb r0, [r1, #0xa]
|
||||
adds r0, r1, #0
|
||||
movs r1, #0
|
||||
bl AppendEntityToList
|
||||
_08052C30:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08052C34: .4byte gScreenTransition
|
||||
_08052C38: .4byte gArea
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08052C3C
|
||||
sub_08052C3C: @ 0x08052C3C
|
||||
@@ -1309,7 +1359,15 @@ _0805310C:
|
||||
_0805311A:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
.ifdef JP
|
||||
movs r1, #0x9b
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r1, #0x9b
|
||||
.else
|
||||
movs r1, #0x9c
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlagByOffset
|
||||
cmp r0, #0
|
||||
beq _0805312C
|
||||
|
||||
@@ -383,7 +383,15 @@ sub_08054EB8: @ 0x08054EB8
|
||||
adds r1, #0x35
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
.ifdef JP
|
||||
movs r0, #0x77
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0x77
|
||||
.else
|
||||
movs r0, #0x79
|
||||
.endif
|
||||
.endif
|
||||
strh r0, [r3, #0x3e]
|
||||
adds r0, r3, #0
|
||||
movs r1, #6
|
||||
@@ -884,8 +892,10 @@ _080552B4:
|
||||
ldrb r0, [r3, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r3, #6]
|
||||
.ifndef EU
|
||||
movs r0, #0x73
|
||||
bl SoundReq
|
||||
.endif
|
||||
_080552D6:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
@@ -312,7 +312,15 @@ sub_08078AA8: @ 0x08078AA8
|
||||
strb r2, [r3, #0xc]
|
||||
ldr r2, _08078ABC @ =gScreenTransition
|
||||
strh r0, [r2, #0x36]
|
||||
.ifdef JP
|
||||
adds r2, #0x34
|
||||
.else
|
||||
.ifdef EU
|
||||
adds r2, #0x34
|
||||
.else
|
||||
adds r2, #0x35
|
||||
.endif
|
||||
.endif
|
||||
strb r1, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
@@ -5636,9 +5644,11 @@ sub_0807B264: @ 0x0807B264
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
.ifndef EU
|
||||
movs r0, #0xa9
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
.endif
|
||||
_0807B2B0:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
@@ -1560,6 +1560,7 @@ _0807FBF4:
|
||||
.align 2, 0
|
||||
_0807FBF8: .4byte gActiveScriptInfo
|
||||
|
||||
.ifndef EU
|
||||
thumb_func_start sub_0807FBFC
|
||||
sub_0807FBFC: @ 0x0807FBFC
|
||||
ldr r3, _0807FC20 @ =gSave
|
||||
@@ -1581,7 +1582,9 @@ sub_0807FBFC: @ 0x0807FBFC
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0807FC20: .4byte gSave
|
||||
.endif
|
||||
|
||||
.ifdef USA
|
||||
thumb_func_start sub_0807FC24
|
||||
sub_0807FC24: @ 0x0807FC24
|
||||
push {lr}
|
||||
@@ -1597,6 +1600,25 @@ _0807FC32:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0807FC3C: .4byte gRoomControls
|
||||
.else
|
||||
.ifdef DEMO @ TODO deduplicate
|
||||
thumb_func_start sub_0807FC24
|
||||
sub_0807FC24: @ 0x0807FC24
|
||||
push {lr}
|
||||
ldr r0, _0807FC3C @ =gRoomControls
|
||||
ldrb r0, [r0, #5]
|
||||
movs r1, #0xd1
|
||||
cmp r0, #1
|
||||
bne _0807FC32
|
||||
movs r1, #0xcf
|
||||
_0807FC32:
|
||||
adds r0, r1, #0
|
||||
bl SetLocalFlag
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0807FC3C: .4byte gRoomControls
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start UpdateScroll
|
||||
UpdateScroll: @ 0xUpdateScroll
|
||||
|
||||
@@ -544,6 +544,101 @@ _080A407C: .4byte gUnk_02019EE0
|
||||
|
||||
thumb_func_start sub_080A4080
|
||||
sub_080A4080: @ 0x080A4080
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r4, _080A394C @ =gOamCmd
|
||||
movs r0, #0
|
||||
strh r0, [r4, #4]
|
||||
strh r0, [r4, #6]
|
||||
ldr r5, _080A3950 @ =gChooseFileState
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x2f
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #2]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0xfd
|
||||
lsls r0, r0, #1
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
movs r0, #0x94
|
||||
strh r0, [r4, #2]
|
||||
movs r0, #0x50
|
||||
strh r0, [r4]
|
||||
movs r0, #0x90
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
ldr r7, _080A3954 @ =0x000001F9
|
||||
adds r0, r7, #0
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
movs r0, #0xb8
|
||||
strh r0, [r4]
|
||||
movs r0, #0x94
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl sub_080ADA14
|
||||
ldr r0, _080A3958 @ =gMain
|
||||
ldrh r0, [r0, #0xc]
|
||||
lsrs r0, r0, #2
|
||||
movs r1, #0xe
|
||||
ands r0, r1
|
||||
ldr r1, _080A395C @ =gUnk_08128110
|
||||
adds r6, r0, r1
|
||||
ldrb r1, [r6]
|
||||
movs r0, #0xa
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4]
|
||||
movs r0, #0x9c
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
bl sub_080A3B48
|
||||
subs r0, #1
|
||||
cmp r0, #0
|
||||
ble _080A3948
|
||||
ldr r1, [r5, #0x10]
|
||||
cmp r1, #0
|
||||
bge _080A3920
|
||||
ldr r2, _080A3960 @ =0x0000FFFF
|
||||
adds r1, r1, r2
|
||||
_080A3920:
|
||||
asrs r5, r1, #0x10
|
||||
cmp r5, r0
|
||||
beq _080A3934
|
||||
ldrb r0, [r6, #1]
|
||||
adds r0, #0x77
|
||||
strh r0, [r4, #2]
|
||||
adds r0, r7, #0
|
||||
movs r1, #3
|
||||
bl sub_080ADA14
|
||||
_080A3934:
|
||||
cmp r5, #0
|
||||
beq _080A3948
|
||||
ldrb r1, [r6, #1]
|
||||
movs r0, #0x27
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #2]
|
||||
adds r0, r7, #0
|
||||
movs r1, #2
|
||||
bl sub_080ADA14
|
||||
_080A3948:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A394C: .4byte gOamCmd
|
||||
_080A3950: .4byte gChooseFileState
|
||||
_080A3954: .4byte 0x000001F9
|
||||
_080A3958: .4byte gMain
|
||||
_080A395C: .4byte gUnk_08128110
|
||||
_080A3960: .4byte 0x0000FFFF
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r4, _080A4134 @ =gOamCmd
|
||||
movs r0, #0
|
||||
@@ -637,6 +732,7 @@ _080A413C: .4byte 0x000001FB
|
||||
_080A4140: .4byte gMain
|
||||
_080A4144: .4byte gUnk_08128110
|
||||
_080A4148: .4byte 0x0000FFFF
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A414C
|
||||
sub_080A414C: @ 0x080A414C
|
||||
@@ -1206,6 +1302,10 @@ _080A45A2:
|
||||
|
||||
thumb_func_start sub_080A45A4
|
||||
sub_080A45A4: @ 0x080A45A4
|
||||
.ifdef DEMO
|
||||
bx lr
|
||||
.align 2, 0
|
||||
.else
|
||||
push {lr}
|
||||
bl FlushSprites
|
||||
ldr r0, _080A45C4 @ =gUnk_02032EC0
|
||||
@@ -1244,6 +1344,7 @@ _080A45E0:
|
||||
.align 2, 0
|
||||
_080A4600: .4byte gUnk_0812814C
|
||||
_080A4604: .4byte gMenu
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A4608
|
||||
sub_080A4608: @ 0x080A4608
|
||||
@@ -1702,6 +1803,226 @@ _080A4974: .4byte gSave
|
||||
|
||||
thumb_func_start sub_080A4978
|
||||
sub_080A4978: @ 0x080A4978
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r5, _080A432C @ =gOamCmd
|
||||
movs r0, #0
|
||||
strh r0, [r5, #4]
|
||||
strh r0, [r5, #6]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r5, #8]
|
||||
movs r0, #0x9c
|
||||
strh r0, [r5]
|
||||
movs r0, #0x48
|
||||
strh r0, [r5, #2]
|
||||
ldr r7, _080A4330 @ =0x000001FB
|
||||
adds r0, r7, #0
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
ldr r0, _080A4334 @ =gSave
|
||||
ldrb r0, [r0, #6]
|
||||
movs r2, #0x88
|
||||
cmp r0, #0
|
||||
bne _080A41C2
|
||||
movs r2, #0x82
|
||||
_080A41C2:
|
||||
ldr r3, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r3, #1]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A4226
|
||||
ldrb r4, [r3, #0x1c]
|
||||
cmp r2, r4
|
||||
blt _080A4226
|
||||
movs r6, #0xe8
|
||||
strh r6, [r5]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #7
|
||||
adds r1, r2, #0
|
||||
bl __divsi3
|
||||
subs r1, r4, #1
|
||||
muls r0, r1, r0
|
||||
cmp r0, #0
|
||||
bge _080A41EC
|
||||
adds r0, #0xff
|
||||
_080A41EC:
|
||||
asrs r0, r0, #8
|
||||
adds r0, #0x20
|
||||
strh r0, [r5, #2]
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl sub_080ADA14
|
||||
ldr r0, _080A433C @ =gMain
|
||||
ldrh r1, [r0, #0xc]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
movs r4, #2
|
||||
cmp r0, #0
|
||||
beq _080A420A
|
||||
movs r4, #4
|
||||
_080A420A:
|
||||
strh r6, [r5]
|
||||
movs r0, #0x1a
|
||||
strh r0, [r5, #2]
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_080ADA14
|
||||
strh r6, [r5]
|
||||
movs r0, #0x76
|
||||
strh r0, [r5, #2]
|
||||
adds r1, r4, #1
|
||||
adds r0, r7, #0
|
||||
bl sub_080ADA14
|
||||
_080A4226:
|
||||
ldr r0, _080A433C @ =gMain
|
||||
ldrh r1, [r0, #0xc]
|
||||
movs r2, #0x10
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A427C
|
||||
ldr r5, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r5, #1]
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A427C
|
||||
ldrb r0, [r5, #0x1e]
|
||||
cmp r0, #0
|
||||
beq _080A427C
|
||||
ldr r4, _080A432C @ =gOamCmd
|
||||
strh r2, [r4, #2]
|
||||
movs r0, #0x1f
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, #0
|
||||
ble _080A4262
|
||||
movs r0, #6
|
||||
strh r0, [r4]
|
||||
movs r0, #0x9c
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A4330 @ =0x000001FB
|
||||
movs r1, #6
|
||||
bl sub_080ADA14
|
||||
_080A4262:
|
||||
ldrb r1, [r5, #0x1e]
|
||||
movs r0, #0x1f
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r1, r0
|
||||
ble _080A427C
|
||||
movs r0, #0xea
|
||||
strh r0, [r4]
|
||||
movs r0, #0x9c
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A4330 @ =0x000001FB
|
||||
movs r1, #7
|
||||
bl sub_080ADA14
|
||||
_080A427C:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
beq _080A42D0
|
||||
ldr r2, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r2, #1]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A42D0
|
||||
ldr r1, _080A432C @ =gOamCmd
|
||||
movs r0, #0x10
|
||||
strh r0, [r1, #2]
|
||||
ldrb r4, [r2, #0x1c]
|
||||
movs r6, #2
|
||||
adds r7, r1, #0
|
||||
movs r5, #0x6b
|
||||
_080A42A0:
|
||||
strh r5, [r7]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl __modsi3
|
||||
lsls r0, r0, #1
|
||||
movs r2, #0x9e
|
||||
lsls r2, r2, #4
|
||||
adds r1, r2, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r7, #8]
|
||||
movs r0, #0
|
||||
movs r1, #9
|
||||
bl sub_080ADA14
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r4, r0, #0
|
||||
subs r5, #7
|
||||
subs r6, #1
|
||||
cmp r6, #0
|
||||
bge _080A42A0
|
||||
_080A42D0:
|
||||
ldr r4, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r4, #1]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A4352
|
||||
ldrb r0, [r4, #0x1c]
|
||||
bl sub_080A4948
|
||||
cmp r0, #0
|
||||
beq _080A4352
|
||||
ldr r1, _080A432C @ =gOamCmd
|
||||
movs r0, #0x2c
|
||||
strh r0, [r1]
|
||||
movs r0, #0x48
|
||||
strh r0, [r1, #2]
|
||||
movs r0, #0xd4
|
||||
lsls r0, r0, #7
|
||||
strh r0, [r1, #8]
|
||||
ldr r0, _080A4340 @ =0x000001F7
|
||||
ldrb r1, [r4, #0x1c]
|
||||
subs r1, #1
|
||||
bl sub_080ADA14
|
||||
ldrb r1, [r4, #0x1c]
|
||||
ldrb r0, [r4, #0x1d]
|
||||
cmp r0, r1
|
||||
beq _080A4352
|
||||
strb r1, [r4, #0x1d]
|
||||
ldrb r4, [r4, #0x1c]
|
||||
lsls r4, r4, #4
|
||||
ldr r0, _080A4344 @ =gUnk_081281A8
|
||||
adds r4, r4, r0
|
||||
ldr r0, [r4]
|
||||
movs r1, #0x16
|
||||
movs r2, #9
|
||||
bl LoadPalettes
|
||||
ldr r0, [r4, #4]
|
||||
ldr r2, [r4, #8]
|
||||
cmp r2, #0
|
||||
bge _080A434CEU
|
||||
ldr r1, _080A4348EU @ =0x06014000
|
||||
bl LZ77UnCompVram
|
||||
b _080A4352
|
||||
.align 2, 0
|
||||
_080A432C: .4byte gOamCmd
|
||||
_080A4330: .4byte 0x000001FB
|
||||
_080A4334: .4byte gSave
|
||||
_080A4338: .4byte gChooseFileState
|
||||
_080A433C: .4byte gMain
|
||||
_080A4340: .4byte 0x000001F7
|
||||
_080A4344: .4byte gUnk_081281A8
|
||||
_080A4348EU: .4byte 0x06014000
|
||||
_080A434CEU:
|
||||
ldr r1, _080A4358EU @ =0x06014000
|
||||
bl LoadResourceAsync
|
||||
_080A4352:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A4358EU: .4byte 0x06014000
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
@@ -1922,6 +2243,7 @@ _080A4B3A:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A4B40: .4byte 0x06014000
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A4B44
|
||||
sub_080A4B44: @ 0x080A4B44
|
||||
@@ -2726,7 +3048,12 @@ _080A5182:
|
||||
strh r0, [r4]
|
||||
ldr r0, [sp, #4]
|
||||
strh r0, [r4, #2]
|
||||
.ifdef EU
|
||||
movs r5, #0xfd
|
||||
lsls r5, r5, #0x1
|
||||
.else
|
||||
ldr r5, _080A51D0 @ =0x000001FB
|
||||
.endif
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
@@ -2749,7 +3076,9 @@ _080A51C6:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A51CC: .4byte gOamCmd
|
||||
.ifndef EU
|
||||
_080A51D0: .4byte 0x000001FB
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A51D4
|
||||
sub_080A51D4: @ 0x080A51D4
|
||||
@@ -2890,9 +3219,15 @@ _080A52DC: .4byte gInput
|
||||
_080A52E0:
|
||||
cmp r4, #0x10
|
||||
bne _080A52EC
|
||||
.ifdef DEMO
|
||||
movs r0, #0x6d
|
||||
bl SoundReq
|
||||
b _080A5336
|
||||
.else
|
||||
movs r0, #0xb
|
||||
bl sub_080A4E84
|
||||
b _080A530A
|
||||
.endif
|
||||
_080A52EC:
|
||||
ldr r0, _080A5314 @ =gMenu
|
||||
adds r0, #0x10
|
||||
@@ -2980,6 +3315,229 @@ _080A5380:
|
||||
|
||||
thumb_func_start sub_080A5384
|
||||
sub_080A5384: @ 0x080A5384
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r0, _080A4C14EU @ =gOamCmd
|
||||
movs r2, #0
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
strh r1, [r0, #4]
|
||||
strh r2, [r0, #6]
|
||||
strh r2, [r0, #8]
|
||||
movs r5, #0
|
||||
ldr r4, _080A4C18 @ =gSave
|
||||
movs r0, #0xb6
|
||||
adds r0, r0, r4
|
||||
mov sl, r0
|
||||
movs r1, #0xac
|
||||
adds r1, r1, r4
|
||||
mov sb, r1
|
||||
movs r2, #0xad
|
||||
adds r2, r2, r4
|
||||
mov r8, r2
|
||||
movs r6, #0
|
||||
_080A4BC8:
|
||||
ldr r0, _080A4C1C @ =gChooseFileState
|
||||
adds r0, #0x10
|
||||
adds r2, r5, r0
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080A4C68
|
||||
ldr r0, _080A4C20 @ =gUnk_08128B64
|
||||
adds r1, r6, r0
|
||||
ldrb r0, [r1, #6]
|
||||
ldr r3, _080A4C14EU @ =gOamCmd
|
||||
strh r0, [r3]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r3, #2]
|
||||
ldrb r3, [r2]
|
||||
cmp r3, #0x1f
|
||||
bhi _080A4BF4
|
||||
cmp r3, #0x1c
|
||||
blo _080A4BF4
|
||||
adds r0, r3, #0
|
||||
subs r0, #0x1c
|
||||
add r0, sl
|
||||
ldrb r3, [r0]
|
||||
_080A4BF4:
|
||||
movs r2, #3
|
||||
cmp r3, #7
|
||||
blo _080A4C42
|
||||
cmp r3, #8
|
||||
bhi _080A4C28
|
||||
ldr r0, _080A4C24 @ =gBombBagSizes
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xae
|
||||
ldrb r1, [r1]
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
mov r7, sb
|
||||
ldrb r7, [r7]
|
||||
cmp r0, r7
|
||||
bhi _080A4C42
|
||||
b _080A4C40
|
||||
.align 2, 0
|
||||
_080A4C14EU: .4byte gOamCmd
|
||||
_080A4C18: .4byte gSave
|
||||
_080A4C1C: .4byte gChooseFileState
|
||||
_080A4C20: .4byte gUnk_08128B64
|
||||
_080A4C24: .4byte gBombBagSizes
|
||||
_080A4C28:
|
||||
cmp r3, #0xa
|
||||
bhi _080A4C42
|
||||
ldr r0, _080A4D40 @ =gQuiverSizes
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xaf
|
||||
ldrb r1, [r1]
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
mov r1, r8
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bhi _080A4C42
|
||||
_080A4C40:
|
||||
movs r2, #4
|
||||
_080A4C42:
|
||||
lsls r2, r2, #0xc
|
||||
movs r7, #0xd8
|
||||
lsls r7, r7, #2
|
||||
adds r0, r6, r7
|
||||
movs r7, #0x80
|
||||
lsls r7, r7, #4
|
||||
adds r1, r7, #0
|
||||
orrs r0, r1
|
||||
orrs r2, r0
|
||||
ldr r0, _080A4D44 @ =gOamCmd
|
||||
strh r2, [r0, #8]
|
||||
ldr r1, _080A4D48 @ =gUnk_080FDFD8
|
||||
lsls r0, r3, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
ldrb r1, [r0]
|
||||
ldr r0, _080A4D4C @ =0x00000141
|
||||
bl sub_080ADA14
|
||||
_080A4C68:
|
||||
adds r6, #8
|
||||
adds r5, #1
|
||||
cmp r5, #0x10
|
||||
bls _080A4BC8
|
||||
ldr r0, _080A4D44 @ =gOamCmd
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
strh r1, [r0, #8]
|
||||
ldr r1, _080A4D50EU @ =gChooseFileState
|
||||
ldrb r1, [r1, #3]
|
||||
mov sb, r0
|
||||
cmp r1, #0x10
|
||||
bne _080A4C8E
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
beq _080A4C8E
|
||||
movs r1, #0x11
|
||||
_080A4C8E:
|
||||
lsls r0, r1, #3
|
||||
ldr r1, _080A4D54EU @ =gUnk_08128B64
|
||||
mov r8, r1
|
||||
adds r1, r0, r1
|
||||
mov r4, sb
|
||||
ldrb r0, [r1, #6]
|
||||
strh r0, [r4]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r4, #2]
|
||||
ldrb r2, [r1, #4]
|
||||
ldr r0, _080A4D58 @ =gMain
|
||||
ldrh r1, [r0, #0xc]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
adds r1, r2, #4
|
||||
cmp r0, #0
|
||||
beq _080A4CB2EU
|
||||
adds r1, r2, #3
|
||||
_080A4CB2EU:
|
||||
movs r6, #0xfd
|
||||
lsls r6, r6, #1
|
||||
adds r0, r6, #0
|
||||
bl sub_080ADA14
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
movs r1, #0x11
|
||||
cmp r0, #0
|
||||
beq _080A4CCA
|
||||
movs r1, #0x10
|
||||
_080A4CCA:
|
||||
lsls r0, r1, #3
|
||||
mov r2, r8
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1, #6]
|
||||
strh r0, [r4]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r4, #2]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
adds r0, r6, #0
|
||||
movs r1, #0x22
|
||||
bl sub_080ADA14
|
||||
ldr r7, _080A4D5C @ =gSave
|
||||
adds r0, r7, #0
|
||||
adds r0, #0xb4
|
||||
ldrb r0, [r0]
|
||||
bl sub_080A554C
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0x10
|
||||
bhi _080A4D0E
|
||||
lsls r0, r5, #3
|
||||
mov r3, r8
|
||||
adds r1, r0, r3
|
||||
ldrb r0, [r1, #6]
|
||||
strh r0, [r4]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r4, #2]
|
||||
adds r0, r6, #0
|
||||
movs r1, #3
|
||||
bl sub_080ADA14
|
||||
_080A4D0E:
|
||||
adds r0, r7, #0
|
||||
adds r0, #0xb5
|
||||
ldrb r0, [r0]
|
||||
bl sub_080A554C
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0x10
|
||||
bhi _080A4D36
|
||||
lsls r0, r5, #3
|
||||
mov r7, r8
|
||||
adds r1, r0, r7
|
||||
ldrb r0, [r1, #6]
|
||||
mov r2, sb
|
||||
strh r0, [r2]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r2, #2]
|
||||
adds r0, r6, #0
|
||||
movs r1, #3
|
||||
bl sub_080ADA14
|
||||
_080A4D36:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A4D40: .4byte gQuiverSizes
|
||||
_080A4D44: .4byte gOamCmd
|
||||
_080A4D48: .4byte gUnk_080FDFD8
|
||||
_080A4D4C: .4byte 0x00000141
|
||||
_080A4D50EU: .4byte gChooseFileState
|
||||
_080A4D54EU: .4byte gUnk_08128B64
|
||||
_080A4D58: .4byte gMain
|
||||
_080A4D5C: .4byte gSave
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
@@ -3201,3 +3759,4 @@ _080A553C: .4byte gUnk_08128B64
|
||||
_080A5540: .4byte gMain
|
||||
_080A5544: .4byte 0x000001FB
|
||||
_080A5548: .4byte gSave
|
||||
.endif
|
||||
|
||||
+1135
File diff suppressed because it is too large
Load Diff
@@ -43,6 +43,55 @@ _080ADD6C: .4byte gUnk_02024490
|
||||
|
||||
thumb_func_start sub_080ADD70
|
||||
sub_080ADD70: @ 0x080ADD70
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080AD540 @ =gUnk_02024490
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080AD56A
|
||||
movs r4, #0
|
||||
movs r5, #0
|
||||
_080AD522:
|
||||
ldr r0, _080AD544 @ =gUnk_02024494
|
||||
adds r2, r5, r0
|
||||
ldrb r1, [r2]
|
||||
lsls r0, r1, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #2
|
||||
bne _080AD548
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
b _080AD562
|
||||
.align 2, 0
|
||||
_080AD540: .4byte gUnk_02024490
|
||||
_080AD544: .4byte gUnk_02024494
|
||||
_080AD548:
|
||||
cmp r0, #2
|
||||
blt _080AD562
|
||||
cmp r0, #6
|
||||
bgt _080AD562
|
||||
cmp r0, #4
|
||||
blt _080AD562
|
||||
movs r0, #0xf0
|
||||
ands r0, r1
|
||||
cmp r0, #0x30
|
||||
bne _080AD562
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADE74
|
||||
_080AD562:
|
||||
adds r5, #0xc
|
||||
adds r4, #1
|
||||
cmp r4, #0x2b
|
||||
bls _080AD522
|
||||
_080AD56A:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
ldr r1, _080ADD88 @ =gUnk_02024490
|
||||
ldrb r0, [r1]
|
||||
@@ -96,6 +145,7 @@ _080ADDCE:
|
||||
bls _080ADD90
|
||||
_080ADDD6:
|
||||
pop {r4, r5, pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080ADDD8
|
||||
sub_080ADDD8: @ 0x080ADDD8
|
||||
@@ -317,6 +367,65 @@ _080ADF7C:
|
||||
|
||||
thumb_func_start LoadFixedGFX
|
||||
LoadFixedGFX: @ 0x080ADF80
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r5, r1, #0
|
||||
cmp r5, #0
|
||||
bne _080AD726
|
||||
movs r0, #1
|
||||
b _080AD77E
|
||||
_080AD726:
|
||||
movs r4, #4
|
||||
ldr r0, _080AD774 @ =gUnk_02024490
|
||||
adds r0, #0x30
|
||||
_080AD72C:
|
||||
ldrh r1, [r0, #8]
|
||||
cmp r5, r1
|
||||
beq _080AD766
|
||||
adds r0, #0xc
|
||||
adds r4, #1
|
||||
cmp r4, #0x2b
|
||||
bls _080AD72C
|
||||
ldr r0, _080AD778 @ =gUnk_08132B30
|
||||
lsls r1, r5, #2
|
||||
adds r1, r1, r0
|
||||
ldr r7, [r1]
|
||||
movs r0, #0xfe
|
||||
lsls r0, r0, #0x17
|
||||
ands r0, r7
|
||||
lsrs r6, r0, #0x18
|
||||
adds r0, r6, #0
|
||||
bl sub_080AE174
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _080AD77C
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl sub_080AE104
|
||||
adds r0, r4, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080ADDD8
|
||||
_080AD766:
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
movs r2, #4
|
||||
bl sub_080AE0C8
|
||||
movs r0, #1
|
||||
b _080AD77E
|
||||
.align 2, 0
|
||||
_080AD774: .4byte gUnk_02024490
|
||||
_080AD778: .4byte gUnk_08132B30
|
||||
_080AD77C:
|
||||
movs r0, #0
|
||||
_080AD77E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
@@ -382,9 +491,53 @@ _080ADFFE:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080AE004: .4byte gUnk_08132B30
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080AE008
|
||||
sub_080AE008: @ 0x080AE008
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
adds r4, r2, #0
|
||||
cmp r4, #0
|
||||
bne _080AD79C
|
||||
adds r0, r5, #0
|
||||
bl sub_080AE174
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _080AD7C4
|
||||
_080AD79C:
|
||||
ldr r0, _080AD7D0 @ =gUnk_02024490
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r4
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1, #4]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r2, r0, #0x1c
|
||||
cmp r2, #6
|
||||
beq _080AD7BC
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_080AE104
|
||||
movs r2, #5
|
||||
_080AD7BC:
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_080AE0C8
|
||||
_080AD7C4:
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
beq _080AD7CC
|
||||
movs r0, #1
|
||||
_080AD7CC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080AD7D0: .4byte gUnk_02024490
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
@@ -431,6 +584,7 @@ _080AE060:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080AE064: .4byte gUnk_02024490
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080AE068
|
||||
sub_080AE068: @ 0x080AE068
|
||||
@@ -617,7 +771,11 @@ _080AE1AC:
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #1
|
||||
.ifdef EU
|
||||
bne _080AE1C8
|
||||
.else
|
||||
bhi _080AE1C8
|
||||
.endif
|
||||
adds r1, #1
|
||||
cmp r4, r1
|
||||
bhi _080AE1CA
|
||||
@@ -639,6 +797,7 @@ _080AE1D4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
.ifndef EU
|
||||
thumb_func_start sub_080AE1D8
|
||||
sub_080AE1D8: @ 0x080AE1D8
|
||||
push {r4, r5, lr}
|
||||
@@ -923,6 +1082,7 @@ _080AE3D8:
|
||||
movs r0, #0
|
||||
_080AE3E2:
|
||||
pop {pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080AE3E4
|
||||
sub_080AE3E4: @ 0x080AE3E4
|
||||
|
||||
@@ -20,6 +20,11 @@ start_vector:
|
||||
ldr r1, INTR_VECTOR_BUF
|
||||
ldr r0, intr_main
|
||||
str r0, [r1]
|
||||
.ifdef EU
|
||||
ldr r1, unk_function
|
||||
mov lr, pc
|
||||
bx r1
|
||||
.endif
|
||||
ldr r1, =AgbMain
|
||||
mov lr, pc
|
||||
bx r1
|
||||
@@ -29,3 +34,6 @@ sp_irq: .4byte gUnk_03007FA0
|
||||
sp_usr: .4byte gUnk_03007F00
|
||||
INTR_VECTOR_BUF: .4byte 0x03007FFC
|
||||
intr_main: .4byte IntrMain
|
||||
.ifdef EU
|
||||
unk_function: .4byte sub_08000118
|
||||
.endif
|
||||
|
||||
@@ -130,7 +130,12 @@ _080441F2:
|
||||
ldrb r7, [r4, #0xa]
|
||||
cmp r7, #0
|
||||
bne _08044284
|
||||
.ifdef EU
|
||||
movs r0, #0xf5
|
||||
lsls r0, r0, #0x1
|
||||
.else
|
||||
ldr r0, _08044244 @ =0x000001EB
|
||||
.endif
|
||||
movs r1, #1
|
||||
bl sub_080AD8F0
|
||||
adds r6, r0, #0
|
||||
@@ -163,7 +168,9 @@ _080441F2:
|
||||
bl zFree
|
||||
b _0804429A
|
||||
.align 2, 0
|
||||
.ifndef EU
|
||||
_08044244: .4byte 0x000001EB
|
||||
.endif
|
||||
_08044248:
|
||||
str r2, [r4, #0x48]
|
||||
ldr r0, _0804427C @ =gUnk_080FD188
|
||||
|
||||
@@ -9,6 +9,49 @@
|
||||
|
||||
thumb_func_start Enemy50
|
||||
Enemy50: @ 0x08040B2C
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
bne _08040A5E
|
||||
ldr r0, [r5, #0x50]
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
bne _08040A5E
|
||||
ldrb r0, [r5, #0xc]
|
||||
subs r0, #8
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bhi _08040A50
|
||||
adds r0, r5, #0
|
||||
bl sub_0803F6EC
|
||||
_08040A50:
|
||||
adds r0, r5, #0
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
bl DeleteThisEntity
|
||||
_08040A5E:
|
||||
ldr r4, _08040A84 @ =gUnk_080D0DC4
|
||||
adds r0, r5, #0
|
||||
bl GetNextFunction
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
ldr r1, [r0]
|
||||
adds r0, r5, #0
|
||||
bl _call_via_r1
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08040A84: .4byte gUnk_080D0DC4
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xa]
|
||||
@@ -48,6 +91,7 @@ _08040B5C:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08040B80: .4byte gUnk_080D0DC4
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08040B84
|
||||
sub_08040B84: @ 0x08040B84
|
||||
@@ -1042,6 +1086,7 @@ _080412C8:
|
||||
.align 2, 0
|
||||
_080412FC: .4byte gRoomControls
|
||||
|
||||
.ifndef EU
|
||||
thumb_func_start sub_08041300
|
||||
sub_08041300: @ 0x08041300
|
||||
push {lr}
|
||||
@@ -1071,3 +1116,4 @@ _0804132A:
|
||||
_0804132C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.endif
|
||||
|
||||
@@ -126,7 +126,11 @@ _08087C7C:
|
||||
strb r5, [r0]
|
||||
adds r0, #1
|
||||
strb r5, [r0]
|
||||
.ifdef EU
|
||||
adds r0, #1
|
||||
.else
|
||||
adds r0, #5
|
||||
.endif
|
||||
strb r5, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0808804C
|
||||
@@ -248,7 +252,11 @@ _08087D60:
|
||||
beq _08087DAA
|
||||
str r5, [r4, #0x50]
|
||||
adds r0, r5, #0
|
||||
.ifdef EU
|
||||
adds r0, #0x7e
|
||||
.else
|
||||
adds r0, #0x7d
|
||||
.endif
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0xf]
|
||||
ldr r1, _08087DB4 @ =gUnk_080FC3E4
|
||||
@@ -344,7 +352,11 @@ _08087E3C:
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
.ifdef EU
|
||||
movs r0, #9
|
||||
.else
|
||||
movs r0, #4
|
||||
.endif
|
||||
bl ClearRoomFlag
|
||||
bl DeleteThisEntity
|
||||
_08087E5A:
|
||||
@@ -352,6 +364,120 @@ _08087E5A:
|
||||
|
||||
thumb_func_start sub_08087E5C
|
||||
sub_08087E5C: @ 0x08087E5C
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x7a
|
||||
ldrb r1, [r5]
|
||||
cmp r1, #1
|
||||
beq _08087888
|
||||
cmp r1, #1
|
||||
bgt _08087850
|
||||
cmp r1, #0
|
||||
beq _08087856
|
||||
b _0808790C
|
||||
_08087850:
|
||||
cmp r1, #2
|
||||
beq _080878EA
|
||||
b _0808790C
|
||||
_08087856:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bne _08087880
|
||||
movs r0, #1
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _0808790C
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x81
|
||||
strb r0, [r1]
|
||||
bl ClearRoomFlag
|
||||
adds r0, r4, #0
|
||||
bl sub_0808826C
|
||||
b _080878E2
|
||||
_08087880:
|
||||
adds r0, r4, #0
|
||||
bl sub_080880D8
|
||||
b _0808790C
|
||||
_08087888:
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _08087892
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
_08087892:
|
||||
ldr r2, _080878B0 @ =gInput
|
||||
ldrh r0, [r2, #2]
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _080878B4
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
movs r0, #2
|
||||
strb r0, [r5]
|
||||
movs r0, #0x3c
|
||||
strb r0, [r4, #0xe]
|
||||
bl sub_08050384
|
||||
b _0808790C
|
||||
.align 2, 0
|
||||
_080878B0: .4byte gInput
|
||||
_080878B4:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
ldrb r6, [r0]
|
||||
ldrh r1, [r2, #4]
|
||||
adds r5, r0, #0
|
||||
cmp r1, #0x40
|
||||
beq _080878C8
|
||||
cmp r1, #0x80
|
||||
beq _080878D2
|
||||
b _080878DC
|
||||
_080878C8:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08087F94
|
||||
b _080878DC
|
||||
_080878D2:
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_08087F94
|
||||
_080878DC:
|
||||
ldrb r5, [r5]
|
||||
cmp r6, r5
|
||||
beq _0808790C
|
||||
_080878E2:
|
||||
adds r0, r4, #0
|
||||
bl sub_080882A8
|
||||
b _0808790C
|
||||
_080878EA:
|
||||
movs r0, #0
|
||||
strb r0, [r5]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7b
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
movs r0, #3
|
||||
bl SetRoomFlag
|
||||
ldr r0, _08087910 @ =0x0000431A
|
||||
bl TextboxNoOverlapFollow
|
||||
ldr r1, _08087914 @ =gTextBox
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
str r0, [r1, #0x10]
|
||||
_0808790C:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08087910: .4byte 0x0000431A
|
||||
_08087914: .4byte gTextBox
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r4, #0
|
||||
@@ -428,6 +554,14 @@ _08087ED8:
|
||||
movs r3, #0xa
|
||||
_08087EF0:
|
||||
ldrh r1, [r6, #4]
|
||||
.ifdef JP
|
||||
cmp r1, #0x40
|
||||
beq _08087F04
|
||||
cmp r1, #0x80
|
||||
beq _08087F0E
|
||||
b _08087F16
|
||||
.align 2, 0
|
||||
.else
|
||||
ldr r0, _08087F00 @ =0xFFFFFEFF
|
||||
ands r1, r0
|
||||
cmp r1, #0x40
|
||||
@@ -437,6 +571,7 @@ _08087EF0:
|
||||
b _08087F16
|
||||
.align 2, 0
|
||||
_08087F00: .4byte 0xFFFFFEFF
|
||||
.endif
|
||||
_08087F04:
|
||||
adds r0, r4, #0
|
||||
adds r1, r3, #0
|
||||
@@ -479,6 +614,7 @@ _08087F4E:
|
||||
.align 2, 0
|
||||
_08087F50: .4byte 0x0000431A
|
||||
_08087F54: .4byte gTextBox
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08087F58
|
||||
sub_08087F58: @ 0x08087F58
|
||||
@@ -512,6 +648,183 @@ _08087F90: .4byte 0x00004022
|
||||
|
||||
thumb_func_start sub_08087F94
|
||||
sub_08087F94: @ 0x08087F94
|
||||
.ifdef JP
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
movs r0, #0x5f
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _08087E3E
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x83
|
||||
movs r7, #0
|
||||
ldrsb r7, [r0, r7]
|
||||
adds r3, r7, r4
|
||||
mov ip, r0
|
||||
cmp r4, #0
|
||||
bge _08087E0A
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x82
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r3, r0
|
||||
bge _08087DF4
|
||||
mov r0, ip
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
ldrb r3, [r2]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r1, r0
|
||||
beq _08087E3E
|
||||
mov r2, ip
|
||||
strb r3, [r2]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
b _08087E00
|
||||
_08087DF4:
|
||||
mov r0, ip
|
||||
strb r3, [r0]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r0, [r1]
|
||||
adds r0, r0, r4
|
||||
_08087E00:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _08087E58
|
||||
_08087E0A:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r6, [r1]
|
||||
adds r2, r6, r4
|
||||
ldr r0, _08087E2C @ =0x02002A40
|
||||
adds r0, #0xc2
|
||||
ldrh r0, [r0]
|
||||
cmp r2, r0
|
||||
ble _08087E30
|
||||
cmp r0, r6
|
||||
beq _08087E3E
|
||||
adds r2, r0, #0
|
||||
subs r4, r2, r6
|
||||
adds r3, r7, r4
|
||||
cmp r3, #0x64
|
||||
ble _08087E4C
|
||||
b _08087E46
|
||||
.align 2, 0
|
||||
_08087E2C: .4byte 0x02002A40
|
||||
_08087E30:
|
||||
cmp r3, #0x64
|
||||
ble _08087E4C
|
||||
mov r2, ip
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #0x64
|
||||
bne _08087E46
|
||||
_08087E3E:
|
||||
adds r0, r5, #0
|
||||
bl sub_08088034
|
||||
b _08087E58
|
||||
_08087E46:
|
||||
movs r3, #0x64
|
||||
subs r4, r3, r7
|
||||
adds r2, r6, r4
|
||||
_08087E4C:
|
||||
mov r0, ip
|
||||
strb r3, [r0]
|
||||
strb r2, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
_08087E58:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x83
|
||||
ldrb r0, [r7]
|
||||
adds r4, r0, r6
|
||||
movs r0, #0x5f
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _080879CE
|
||||
cmp r6, #0
|
||||
bge _0808799E
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x82
|
||||
ldrb r1, [r0]
|
||||
cmp r4, r1
|
||||
bhs _0808798A
|
||||
ldrb r0, [r7]
|
||||
cmp r0, r1
|
||||
beq _080879CE
|
||||
strb r1, [r7]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
b _08087994
|
||||
_0808798A:
|
||||
strb r4, [r7]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r0, [r1]
|
||||
adds r0, r0, r6
|
||||
_08087994:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _080879EC
|
||||
_0808799E:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r3, [r1]
|
||||
adds r2, r3, r6
|
||||
ldr r0, _080879C0 @ =gSave
|
||||
adds r0, #0xc2
|
||||
ldrh r0, [r0]
|
||||
cmp r2, r0
|
||||
bls _080879C4
|
||||
cmp r0, r3
|
||||
beq _080879CE
|
||||
adds r2, r0, #0
|
||||
subs r0, r2, r3
|
||||
ldrb r7, [r7]
|
||||
adds r4, r0, r7
|
||||
b _080879DE
|
||||
.align 2, 0
|
||||
_080879C0: .4byte gSave
|
||||
_080879C4:
|
||||
cmp r4, #0x64
|
||||
bls _080879DE
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0x64
|
||||
bne _080879D6
|
||||
_080879CE:
|
||||
adds r0, r5, #0
|
||||
bl sub_08088034
|
||||
b _080879EC
|
||||
_080879D6:
|
||||
movs r4, #0x64
|
||||
ldrb r0, [r7]
|
||||
subs r6, r4, r0
|
||||
adds r2, r3, r6
|
||||
_080879DE:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x83
|
||||
strb r4, [r0]
|
||||
strb r2, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
_080879EC:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
@@ -596,6 +909,8 @@ _08088028:
|
||||
bl SoundReq
|
||||
_08088032:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08088034
|
||||
sub_08088034: @ 0x08088034
|
||||
@@ -667,7 +982,15 @@ _080880A4:
|
||||
_080880B2:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
.ifdef JP
|
||||
movs r1, #0x9b
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r1, #0x9b
|
||||
.else
|
||||
movs r1, #0x9c
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlagByOffset
|
||||
cmp r0, #0
|
||||
beq _080880C4
|
||||
@@ -681,7 +1004,11 @@ _080880C4:
|
||||
movs r4, #1
|
||||
_080880D0:
|
||||
adds r0, r5, #0
|
||||
.ifdef EU
|
||||
adds r0, #0x7d
|
||||
.else
|
||||
adds r0, #0x7c
|
||||
.endif
|
||||
strb r4, [r0]
|
||||
pop {r4, r5, pc}
|
||||
|
||||
@@ -698,7 +1025,11 @@ sub_080880D8: @ 0x080880D8
|
||||
cmp r4, r0
|
||||
bhs _0808810A
|
||||
adds r5, r7, #0
|
||||
.ifdef EU
|
||||
adds r5, #0x7c
|
||||
.else
|
||||
adds r5, #0x80
|
||||
.endif
|
||||
_080880F0:
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
@@ -725,7 +1056,11 @@ _0808810A:
|
||||
bne _08088156
|
||||
ldr r5, _0808815C @ =gSave
|
||||
adds r0, r7, #0
|
||||
.ifdef EU
|
||||
adds r0, #0x7c
|
||||
.else
|
||||
adds r0, #0x80
|
||||
.endif
|
||||
ldrb r1, [r5, #9]
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4]
|
||||
@@ -759,6 +1094,239 @@ _0808815C: .4byte gSave
|
||||
|
||||
thumb_func_start sub_08088160
|
||||
sub_08088160: @ 0x08088160
|
||||
.ifdef JP
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08087FB0 @ =0x080FC094
|
||||
adds r1, r1, r0
|
||||
movs r4, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
ldrb r3, [r1, #6]
|
||||
cmp r0, r3
|
||||
bhs _08088068
|
||||
ldrb r0, [r1, #6]
|
||||
cmp r0, #0x10
|
||||
beq _08087FC6
|
||||
cmp r0, #0x10
|
||||
bgt _08087FB4
|
||||
cmp r0, #8
|
||||
beq _08087FBC
|
||||
b _0808806A
|
||||
.align 2, 0
|
||||
_08087FB0: .4byte 0x080FC094
|
||||
_08087FB4:
|
||||
cmp r0, #0x20
|
||||
beq _08087FCA
|
||||
cmp r0, #0x40
|
||||
bne _0808806A
|
||||
_08087FBC:
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r1, #4]
|
||||
bl CheckLocalFlagByOffset
|
||||
b _08088064EU
|
||||
_08087FC6:
|
||||
ldrh r0, [r1, #4]
|
||||
b _08088060EU
|
||||
_08087FCA:
|
||||
ldrh r0, [r1, #4]
|
||||
cmp r0, #4
|
||||
bhi _0808806A
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08087FDC @ =_08087FE0
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08087FDC: .4byte _08087FE0
|
||||
_08087FE0: @ jump table
|
||||
.4byte _08087FF4 @ case 0
|
||||
.4byte _0808800C @ case 1
|
||||
.4byte _0808801A @ case 2
|
||||
.4byte _08088032 @ case 3
|
||||
.4byte _0808804A @ case 4
|
||||
_08087FF4:
|
||||
movs r0, #0x20
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x10
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x19
|
||||
b _08088060EU
|
||||
_0808800C:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bls _0808806A
|
||||
movs r0, #0x28
|
||||
b _08088060EU
|
||||
_0808801A:
|
||||
movs r0, #0x54
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x56
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x3d
|
||||
b _08088060EU
|
||||
_08088032:
|
||||
movs r0, #0x3b
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x4a
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0xd
|
||||
b _08088060EU
|
||||
_0808804A:
|
||||
movs r0, #0x49
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x55
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x3c
|
||||
_08088060EU:
|
||||
bl CheckKinstoneFused
|
||||
_08088064EU:
|
||||
cmp r0, #0
|
||||
beq _0808806A
|
||||
_08088068:
|
||||
movs r4, #1
|
||||
_0808806A:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
.else
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08087B44 @ =gUnk_080FC3E4
|
||||
adds r1, r1, r0
|
||||
movs r4, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7d
|
||||
ldrb r0, [r0]
|
||||
ldrb r3, [r1, #6]
|
||||
cmp r0, r3
|
||||
bhs _08087BFC
|
||||
ldrb r0, [r1, #6]
|
||||
cmp r0, #0x10
|
||||
beq _08087B5A
|
||||
cmp r0, #0x10
|
||||
bgt _08087B48
|
||||
cmp r0, #8
|
||||
beq _08087B50
|
||||
b _08087BFE
|
||||
.align 2, 0
|
||||
_08087B44: .4byte gUnk_080FC3E4
|
||||
_08087B48:
|
||||
cmp r0, #0x20
|
||||
beq _08087B5E
|
||||
cmp r0, #0x40
|
||||
bne _08087BFE
|
||||
_08087B50:
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r1, #4]
|
||||
bl CheckLocalFlagByOffset
|
||||
b _08087BF8
|
||||
_08087B5A:
|
||||
ldrh r0, [r1, #4]
|
||||
b _08087BF4
|
||||
_08087B5E:
|
||||
ldrh r0, [r1, #4]
|
||||
cmp r0, #4
|
||||
bhi _08087BFE
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08087B70 @ =_08087B74
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08087B70: .4byte _08087B74
|
||||
_08087B74: @ jump table
|
||||
.4byte _08087B88 @ case 0
|
||||
.4byte _08087BA0 @ case 1
|
||||
.4byte _08087BAE @ case 2
|
||||
.4byte _08087BC6 @ case 3
|
||||
.4byte _08087BDE @ case 4
|
||||
_08087B88:
|
||||
movs r0, #0x20
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x10
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x19
|
||||
b _08087BF4
|
||||
_08087BA0:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7d
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bls _08087BFE
|
||||
movs r0, #0x28
|
||||
b _08087BF4
|
||||
_08087BAE:
|
||||
movs r0, #0x54
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x56
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x3d
|
||||
b _08087BF4
|
||||
_08087BC6:
|
||||
movs r0, #0x3b
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x4a
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0xd
|
||||
b _08087BF4
|
||||
_08087BDE:
|
||||
movs r0, #0x49
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x55
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x3c
|
||||
_08087BF4:
|
||||
bl CheckKinstoneFused
|
||||
_08087BF8:
|
||||
cmp r0, #0
|
||||
beq _08087BFE
|
||||
_08087BFC:
|
||||
movs r4, #1
|
||||
_08087BFE:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
@@ -793,7 +1361,9 @@ _08088194:
|
||||
b _08088262
|
||||
_0808819E:
|
||||
ldrh r0, [r1, #4]
|
||||
.ifndef JP
|
||||
bl CheckKinstoneFused
|
||||
.endif
|
||||
b _08088262
|
||||
_080881A6:
|
||||
ldrh r0, [r1, #4]
|
||||
@@ -886,13 +1456,19 @@ _08088266:
|
||||
_08088268:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0808826C
|
||||
sub_0808826C: @ 0x0808826C
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r4, #0x64
|
||||
.ifdef EU
|
||||
adds r0, #0x7c
|
||||
.else
|
||||
adds r0, #0x80
|
||||
.endif
|
||||
ldrb r1, [r0]
|
||||
ldr r0, _080882A4 @ =gSave
|
||||
adds r0, #0xb0
|
||||
@@ -935,8 +1511,10 @@ sub_080882A8: @ 0x080882A8
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
.ifndef EU
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
.endif
|
||||
adds r4, #8
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
@@ -979,6 +1557,134 @@ _08088324: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_08088328
|
||||
sub_08088328: @ 0x08088328
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
movs r4, #0x7f
|
||||
_08087CC6:
|
||||
bl Random
|
||||
adds r5, r0, #0
|
||||
ands r5, r4
|
||||
cmp r5, #0x63
|
||||
bhi _08087CC6
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
rsbs r0, r0, #0
|
||||
bl sub_080542C0
|
||||
bl Random
|
||||
movs r1, #0x7f
|
||||
ands r1, r0
|
||||
adds r4, r1, #1
|
||||
adds r7, r4, #0
|
||||
adds r0, r6, #0
|
||||
bl sub_08088424
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
cmp r5, r0
|
||||
bhs _08087D34EU
|
||||
movs r5, #0
|
||||
movs r0, #0x7e
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_08087D02EU:
|
||||
cmp r5, #0
|
||||
bne _08087D72
|
||||
cmp r4, #0x88
|
||||
bls _08087D0C
|
||||
movs r4, #1
|
||||
_08087D0C:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _08087D2C
|
||||
ldr r0, _08087D28 @ =gUnk_02002B0E
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
bne _08087D2C
|
||||
movs r5, #1
|
||||
b _08087D2E
|
||||
.align 2, 0
|
||||
_08087D28: .4byte gUnk_02002B0E
|
||||
_08087D2C:
|
||||
adds r4, #1
|
||||
_08087D2E:
|
||||
cmp r7, r4
|
||||
bne _08087D02EU
|
||||
b _08087D6E
|
||||
_08087D34EU:
|
||||
movs r5, #1
|
||||
movs r0, #0x7e
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_08087D3C:
|
||||
cmp r5, #0
|
||||
beq _08087DA4
|
||||
cmp r4, #0x88
|
||||
bls _08087D46
|
||||
movs r4, #1
|
||||
_08087D46:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _08087D68
|
||||
ldr r0, _08087D64 @ =gUnk_02002B0E
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
beq _08087D68
|
||||
movs r5, #0
|
||||
b _08087D6A
|
||||
.align 2, 0
|
||||
_08087D64: .4byte gUnk_02002B0E
|
||||
_08087D68:
|
||||
adds r4, #1
|
||||
_08087D6A:
|
||||
cmp r7, r4
|
||||
bne _08087D3C
|
||||
_08087D6E:
|
||||
cmp r5, #0
|
||||
beq _08087DA4
|
||||
_08087D72:
|
||||
ldr r0, _08087D94 @ =gSave
|
||||
adds r0, #0xb0
|
||||
ldrb r1, [r0]
|
||||
adds r1, #1
|
||||
strb r1, [r0]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x7c
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
beq _08087D98
|
||||
movs r0, #7
|
||||
bl SetRoomFlag
|
||||
b _08087DA4
|
||||
.align 2, 0
|
||||
_08087D94: .4byte gSave
|
||||
_08087D98:
|
||||
movs r0, #0x5f
|
||||
bl SetLocalFlag
|
||||
movs r0, #8
|
||||
bl SetRoomFlag
|
||||
_08087DA4:
|
||||
mov r0, r8
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x7e
|
||||
strb r4, [r0]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
@@ -1106,6 +1812,7 @@ _08088414:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08088424
|
||||
sub_08088424: @ 0x08088424
|
||||
@@ -1117,10 +1824,16 @@ sub_08088424: @ 0x08088424
|
||||
cmp r0, #0x31
|
||||
bhi _08088444
|
||||
adds r1, #0x83
|
||||
.ifdef EU
|
||||
ldrb r0, [r1, #0x0]
|
||||
cmp r0, #0xe
|
||||
bhi _08088476
|
||||
.else
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0xe
|
||||
bgt _08088476
|
||||
.endif
|
||||
movs r0, #0xf
|
||||
b _08088474
|
||||
.align 2, 0
|
||||
@@ -1129,28 +1842,46 @@ _08088444:
|
||||
cmp r0, #0x4f
|
||||
bhi _08088456
|
||||
adds r1, #0x83
|
||||
.ifdef EU
|
||||
ldrb r0, [r1, #0x0]
|
||||
cmp r0, #0xb
|
||||
bhi _08088476
|
||||
.else
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0xb
|
||||
bgt _08088476
|
||||
.endif
|
||||
movs r0, #0xc
|
||||
b _08088474
|
||||
_08088456:
|
||||
cmp r0, #0x6d
|
||||
bhi _08088468
|
||||
adds r1, #0x83
|
||||
.ifdef EU
|
||||
ldrb r0, [r1, #0x0]
|
||||
cmp r0, #8
|
||||
bhi _08088476
|
||||
.else
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #8
|
||||
bgt _08088476
|
||||
.endif
|
||||
movs r0, #9
|
||||
b _08088474
|
||||
_08088468:
|
||||
adds r1, #0x83
|
||||
.ifdef EU
|
||||
ldrb r0, [r1, #0x0]
|
||||
cmp r0, #5
|
||||
bhi _08088476
|
||||
.else
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #5
|
||||
bgt _08088476
|
||||
.endif
|
||||
movs r0, #6
|
||||
_08088474:
|
||||
strb r0, [r1]
|
||||
@@ -1216,15 +1947,19 @@ _080884D2:
|
||||
movs r0, #5
|
||||
str r0, [r1, #0x10]
|
||||
_080884EA:
|
||||
.ifndef EU
|
||||
ldr r1, _08088500 @ =gPlayerEntity
|
||||
movs r0, #6
|
||||
strb r0, [r1, #0x14]
|
||||
.endif
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080884F4: .4byte 0x00004328
|
||||
_080884F8: .4byte 0x00004327
|
||||
_080884FC: .4byte gTextBox
|
||||
.ifndef EU
|
||||
_08088500: .4byte gPlayerEntity
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08088504
|
||||
sub_08088504: @ 0x08088504
|
||||
@@ -1287,7 +2022,11 @@ _08088570: .4byte gTextBox
|
||||
thumb_func_start sub_08088574
|
||||
sub_08088574: @ 0x08088574
|
||||
push {lr}
|
||||
.ifdef EU
|
||||
movs r0, #0xa
|
||||
.else
|
||||
movs r0, #9
|
||||
.endif
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _08088594
|
||||
@@ -1364,8 +2103,36 @@ _0808860A:
|
||||
.align 2, 0
|
||||
_08088618: .4byte gSave
|
||||
|
||||
.ifndef EU
|
||||
thumb_func_start sub_0808861C
|
||||
sub_0808861C: @ 0x0808861C
|
||||
.ifdef JP
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
movs r0, #0xa8
|
||||
movs r1, #0x54
|
||||
movs r2, #0xc
|
||||
movs r3, #8
|
||||
bl CheckPlayerInRegion
|
||||
str r0, [r4, #0x14]
|
||||
ldr r0, _0808844C @ =0x03001160
|
||||
ldrb r0, [r0, #0x14]
|
||||
cmp r0, #0
|
||||
beq _0808843E
|
||||
movs r0, #0
|
||||
str r0, [r4, #0x14]
|
||||
_0808843E:
|
||||
ldr r2, _08088450 @ =0x02033280
|
||||
ldrb r1, [r2, #7]
|
||||
movs r0, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #7]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808844C: .4byte 0x03001160
|
||||
_08088450: .4byte 0x02033280
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
movs r0, #0xa8
|
||||
@@ -1395,7 +2162,9 @@ _08088642:
|
||||
.align 2, 0
|
||||
_08088650: .4byte gPlayerEntity
|
||||
_08088654: .4byte gActiveScriptInfo
|
||||
.endif
|
||||
|
||||
.ifndef JP
|
||||
thumb_func_start sub_08088658
|
||||
sub_08088658: @ 0x08088658
|
||||
push {r4, lr}
|
||||
@@ -1423,3 +2192,5 @@ _08088678:
|
||||
.align 2, 0
|
||||
_08088684: .4byte gPlayerEntity
|
||||
_08088688: .4byte gActiveScriptInfo
|
||||
.endif
|
||||
.endif
|
||||
|
||||
@@ -5,6 +5,45 @@
|
||||
|
||||
.text
|
||||
|
||||
.ifdef DEMO
|
||||
thumb_func_start HandleGameplayScreen
|
||||
HandleGameplayScreen: @ 08051A28
|
||||
push {r4, lr}
|
||||
ldr r1, _08051A68 @ =0x030010A0
|
||||
ldr r0, [r1, #0x00]
|
||||
adds r0, #0x01
|
||||
str r0, [r1, #0x00]
|
||||
ldr r1, _08051A6C @ =0x080FC55C
|
||||
ldr r4, _08051A70x @ =0x03001000
|
||||
ldrb r0, [r4, #0x03]
|
||||
lsls r0, r0, #0x02
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0, #0x00]
|
||||
bl _call_via_r0
|
||||
ldr r0, _08051A74x @ =0x02002A40
|
||||
movs r2, #0x95
|
||||
lsls r2, r2, #0x03
|
||||
adds r1, r0, r2
|
||||
ldr r0, [r1, #0x00]
|
||||
cmp r0, #0x00
|
||||
beq _08051A64
|
||||
subs r0, #0x01
|
||||
str r0, [r1, #0x00]
|
||||
cmp r0, #0x00
|
||||
bne _08051A64
|
||||
movs r0, #0x07
|
||||
movs r1, #0x02
|
||||
bl DoFade
|
||||
movs r0, #0x03
|
||||
strb r0, [r4, #0x03]
|
||||
_08051A64:
|
||||
pop {r4, pc}
|
||||
.byte 0x00, 0x00
|
||||
_08051A68: .4byte gUnk_030010A0
|
||||
_08051A6C: .4byte gUnk_080FC9D8
|
||||
_08051A70x: .4byte gMain
|
||||
_08051A74x: .4byte gUnk_02002A40
|
||||
.else
|
||||
thumb_func_start HandleGameplayScreen
|
||||
HandleGameplayScreen: @ 0x08051988
|
||||
push {lr}
|
||||
@@ -24,6 +63,8 @@ HandleGameplayScreen: @ 0x08051988
|
||||
_080519A4: .4byte gScreenTransition
|
||||
_080519A8: .4byte gUnk_080FC9D8
|
||||
_080519AC: .4byte gMain
|
||||
.endif
|
||||
|
||||
|
||||
thumb_func_start sub_080519B0
|
||||
sub_080519B0: @ 0x080519B0
|
||||
@@ -148,7 +189,9 @@ InitializeNewRoom: @ 0x08051AAC
|
||||
movs r0, #0
|
||||
bl sub_0801C370
|
||||
bl InitializeEntities
|
||||
.ifndef EU
|
||||
bl sub_0801855C
|
||||
.endif
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08051AE4: .4byte gScreen
|
||||
@@ -157,6 +200,85 @@ _08051AEC: .4byte gScreenTransition
|
||||
|
||||
thumb_func_start sub_08051AF0
|
||||
sub_08051AF0: @ 0x08051AF0
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
bl sub_0805E5C0
|
||||
bl sub_0805BBBC
|
||||
cmp r0, #0
|
||||
bne _0805173E
|
||||
bl UpdateScroll
|
||||
_0805173E:
|
||||
bl UpdateBgAnim
|
||||
bl sub_08000108
|
||||
bl sub_0801C344
|
||||
bl sub_0805E5F8
|
||||
bl FlushSprites
|
||||
bl sub_0801C208
|
||||
bl sub_08078CB4
|
||||
bl sub_080AD9B0
|
||||
bl sub_080AD918
|
||||
ldr r0, _080517E0 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080517DC
|
||||
ldr r0, _080517E4 @ =gRoomControls
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080517DC
|
||||
bl sub_08052F1C
|
||||
ldr r0, _080517E8 @ =gArea
|
||||
movs r1, #0x86
|
||||
lsls r1, r1, #4
|
||||
adds r3, r0, r1
|
||||
adds r1, #4
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r3]
|
||||
ldr r2, [r0]
|
||||
cmp r1, r2
|
||||
beq _08051796
|
||||
str r2, [r3]
|
||||
ldr r0, _080517EC @ =0x800B0000
|
||||
orrs r2, r0
|
||||
adds r0, r2, #0
|
||||
bl SoundReq
|
||||
_08051796:
|
||||
bl sub_0805E9F4
|
||||
bl sub_0805BC04
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _080517DC
|
||||
bl sub_08052C5C
|
||||
bl sub_0805E5B4
|
||||
bl sub_08051E04
|
||||
bl sub_080300C4
|
||||
ldr r1, _080517F0 @ =gMain
|
||||
movs r0, #2
|
||||
strb r0, [r1, #4]
|
||||
movs r0, #0
|
||||
bl sub_08078A90
|
||||
ldr r0, _080517F4 @ =gUnk_02034490
|
||||
strb r4, [r0]
|
||||
bl sub_08053178
|
||||
bl sub_0801855C
|
||||
ldr r0, _080517F8 @ =gRoomVars
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080517DC
|
||||
movs r0, #0
|
||||
movs r1, #1
|
||||
bl sub_0805E4E0
|
||||
_080517DC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080517E0: .4byte gFadeControl
|
||||
_080517E4: .4byte gRoomControls
|
||||
_080517E8: .4byte gArea
|
||||
_080517EC: .4byte 0x800B0000
|
||||
_080517F0: .4byte gMain
|
||||
_080517F4: .4byte gUnk_02034490
|
||||
_080517F8: .4byte gRoomVars
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
bl sub_0805E5C0
|
||||
bl sub_0805BBBC
|
||||
@@ -186,7 +308,11 @@ _08051B02:
|
||||
movs r0, #0x86
|
||||
lsls r0, r0, #4
|
||||
adds r3, r5, r0
|
||||
.ifdef EU
|
||||
adds r1, 4
|
||||
.else
|
||||
ldr r1, _08051BBC @ =0x00000864
|
||||
.endif
|
||||
adds r0, r5, r1
|
||||
ldr r1, [r3]
|
||||
ldr r2, [r0]
|
||||
@@ -214,15 +340,27 @@ _08051B5A:
|
||||
bl sub_08078A90
|
||||
ldr r0, _08051BC8 @ =gUnk_02034490
|
||||
strb r4, [r0]
|
||||
.ifdef JP
|
||||
bl sub_08053178
|
||||
.endif
|
||||
.ifndef EU
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _08051B96
|
||||
bl sub_0801855C
|
||||
.endif
|
||||
_08051B96:
|
||||
.ifdef EU
|
||||
bl sub_08053178 @ TODO fix addresses
|
||||
bl sub_08053178
|
||||
.else
|
||||
.ifndef JP
|
||||
bl sub_08052BF8
|
||||
bl sub_08053178
|
||||
.endif
|
||||
.endif
|
||||
ldr r0, _08051BCC @ =gRoomVars
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
@@ -236,11 +374,14 @@ _08051BAE:
|
||||
_08051BB0: .4byte gFadeControl
|
||||
_08051BB4: .4byte gRoomControls
|
||||
_08051BB8: .4byte gArea
|
||||
.ifndef EU
|
||||
_08051BBC: .4byte 0x00000864
|
||||
.endif
|
||||
_08051BC0: .4byte 0x800B0000
|
||||
_08051BC4: .4byte gMain
|
||||
_08051BC8: .4byte gUnk_02034490
|
||||
_08051BCC: .4byte gRoomVars
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08051BD0
|
||||
sub_08051BD0: @ 0x08051BD0
|
||||
@@ -382,6 +523,18 @@ _08051D28: .4byte gScreenTransition
|
||||
|
||||
thumb_func_start sub_08051D2C
|
||||
sub_08051D2C: @ 0x08051D2C
|
||||
.ifdef DEMO
|
||||
push {lr}
|
||||
ldr r0, _08051E04 @ =0x03000FD0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08051E02
|
||||
bl DoSoftReset
|
||||
_08051E02:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08051E04: .4byte 0x03000FD0
|
||||
.else
|
||||
push {lr}
|
||||
movs r0, #7
|
||||
movs r1, #8
|
||||
@@ -390,6 +543,7 @@ sub_08051D2C: @ 0x08051D2C
|
||||
bl InitScreen
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.endif
|
||||
|
||||
thumb_func_start InitializeEntities
|
||||
InitializeEntities: @ 0x08051D40
|
||||
|
||||
@@ -650,16 +650,20 @@ _0802D4D6:
|
||||
adds r0, #8
|
||||
strb r3, [r0]
|
||||
_0802D52E:
|
||||
.ifndef EU
|
||||
ldr r0, _0802D540 @ =gPlayerState
|
||||
adds r0, #0x8b
|
||||
movs r1, #3
|
||||
strb r1, [r0]
|
||||
.endif
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x4c
|
||||
bl InitializeAnimation
|
||||
b _0802D63C
|
||||
.align 2, 0
|
||||
.ifndef EU
|
||||
_0802D540: .4byte gPlayerState
|
||||
.endif
|
||||
_0802D544:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #1
|
||||
@@ -797,6 +801,9 @@ _0802D648:
|
||||
sub_0802D650: @ 0x0802D650
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
.ifdef EU
|
||||
bl sub_08078B48
|
||||
.endif
|
||||
ldr r1, _0802D670 @ =gUnk_080CD7E4
|
||||
ldrb r0, [r4, #0xd]
|
||||
lsls r0, r0, #2
|
||||
@@ -985,6 +992,93 @@ _0802D7B0: .4byte gScreenTransition
|
||||
|
||||
thumb_func_start sub_0802D7B4
|
||||
sub_0802D7B4: @ 0x0802D7B4
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xe]
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
bne _0802D7ACEU
|
||||
ldr r4, _0802D780 @ =gUnk_080CD7F8
|
||||
ldrb r3, [r5, #0xf]
|
||||
adds r0, r3, r4
|
||||
ldrb r1, [r0]
|
||||
adds r0, r1, #0
|
||||
cmp r0, #0xff
|
||||
bne _0802D790
|
||||
strb r2, [r5, #0xf]
|
||||
strb r2, [r5, #0xe]
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
strb r2, [r5, #0xd]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r0, #0x50]
|
||||
movs r0, #0x18
|
||||
strb r0, [r1, #0xe]
|
||||
ldr r1, _0802D784 @ =gRoomControls
|
||||
ldr r0, _0802D788 @ =gPlayerEntity
|
||||
str r0, [r1, #0x30]
|
||||
ldr r0, _0802D78C @ =gUnk_02034490
|
||||
strb r2, [r0]
|
||||
movs r0, #0x2e
|
||||
bl SoundReq
|
||||
b _0802D7E8
|
||||
.align 2, 0
|
||||
_0802D780: .4byte gUnk_080CD7F8
|
||||
_0802D784: .4byte gRoomControls
|
||||
_0802D788: .4byte gPlayerEntity
|
||||
_0802D78C: .4byte gUnk_02034490
|
||||
_0802D790:
|
||||
strb r1, [r5, #0xe]
|
||||
adds r0, r3, #1
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r5, #0x15]
|
||||
ldrb r0, [r5, #0xf]
|
||||
adds r0, #2
|
||||
strb r0, [r5, #0xf]
|
||||
ldr r0, _0802D7A8 @ =0x00000127
|
||||
bl SoundReq
|
||||
b _0802D7B0EU
|
||||
.align 2, 0
|
||||
_0802D7A8: .4byte 0x00000127
|
||||
_0802D7ACEU:
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
_0802D7B0EU:
|
||||
ldrb r0, [r5, #0x15]
|
||||
cmp r0, #1
|
||||
bhi _0802D7C8
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x84
|
||||
ldr r0, [r4]
|
||||
ldrb r3, [r5, #0x15]
|
||||
movs r1, #5
|
||||
movs r2, #0x40
|
||||
bl sub_0802EA48
|
||||
b _0802D7DC
|
||||
_0802D7C8:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x84
|
||||
cmp r0, #0xff
|
||||
beq _0802D7DC
|
||||
ldr r0, [r4]
|
||||
ldrb r3, [r5, #0x15]
|
||||
movs r1, #5
|
||||
movs r2, #0x40
|
||||
bl sub_0802EA68
|
||||
_0802D7DC:
|
||||
ldr r0, [r4]
|
||||
bl sub_0802E768
|
||||
adds r0, r5, #0
|
||||
bl sub_0802E518
|
||||
_0802D7E8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xe]
|
||||
@@ -1073,6 +1167,7 @@ _0802D85C:
|
||||
_0802D868:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0802D86C
|
||||
sub_0802D86C: @ 0x0802D86C
|
||||
|
||||
@@ -290,12 +290,17 @@ _08046374:
|
||||
bne _0804638A
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
.ifdef EU
|
||||
_08046388: @TODO fix jump
|
||||
.endif
|
||||
strb r5, [r0]
|
||||
.ifndef EU
|
||||
adds r0, #5
|
||||
strb r5, [r0]
|
||||
adds r0, #2
|
||||
_08046388:
|
||||
strb r5, [r0]
|
||||
.endif
|
||||
_0804638A:
|
||||
ldr r0, [r4, #0x64]
|
||||
ldr r0, [r0]
|
||||
@@ -336,10 +341,16 @@ _080463B8:
|
||||
movs r0, #0x3c
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
.ifdef EU
|
||||
adds r0, #0x80
|
||||
.else
|
||||
adds r0, #0x78
|
||||
.endif
|
||||
strb r2, [r0]
|
||||
.ifndef EU
|
||||
adds r0, #8
|
||||
strb r2, [r0]
|
||||
.endif
|
||||
_080463E0:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
@@ -406,20 +417,43 @@ _08046454:
|
||||
bne _0804646A
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
.ifdef EU
|
||||
_08046468:
|
||||
.endif
|
||||
strb r5, [r0]
|
||||
.ifndef EU
|
||||
adds r0, #5
|
||||
strb r5, [r0]
|
||||
adds r0, #2
|
||||
_08046468:
|
||||
strb r5, [r0]
|
||||
.endif
|
||||
_0804646A:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x45
|
||||
.ifdef EU
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _08046494
|
||||
.else
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08046494
|
||||
.endif
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
.ifdef EU
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
strb r1, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x70
|
||||
movs r2, #0
|
||||
movs r0, #0x3c
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0x0
|
||||
adds r0, #0x80
|
||||
.else
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x70
|
||||
movs r2, #0
|
||||
@@ -429,6 +463,7 @@ _0804646A:
|
||||
adds r0, #0x78
|
||||
strb r2, [r0]
|
||||
adds r0, #8
|
||||
.endif
|
||||
strb r2, [r0]
|
||||
movs r0, #0x94
|
||||
lsls r0, r0, #1
|
||||
@@ -439,6 +474,7 @@ _08046494:
|
||||
|
||||
thumb_func_start sub_08046498
|
||||
sub_08046498: @ 0x08046498
|
||||
.ifndef EU
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _080464B8 @ =gUnk_02019EE0
|
||||
@@ -455,6 +491,7 @@ sub_08046498: @ 0x08046498
|
||||
.align 2, 0
|
||||
_080464B8: .4byte gUnk_02019EE0
|
||||
_080464BC: .4byte gMapDataTopSpecial
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080464C0
|
||||
sub_080464C0: @ 0x080464C0
|
||||
@@ -669,6 +706,35 @@ _0804665A:
|
||||
|
||||
thumb_func_start sub_08046668
|
||||
sub_08046668: @ 0x08046668
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x45
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08046468EU
|
||||
bl Random
|
||||
ldr r2, _0804646C @ =gUnk_080D1AF8
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
movs r2, #0
|
||||
strb r1, [r0]
|
||||
adds r0, #7
|
||||
strb r2, [r0]
|
||||
adds r0, #3
|
||||
strb r2, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_080467DC
|
||||
_08046468EU:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0804646C: .4byte gUnk_080D1AF8
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x45
|
||||
@@ -699,9 +765,163 @@ _080466A0:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080466A4: .4byte gUnk_080D1AF8
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080466A8
|
||||
sub_080466A8: @ 0x080466A8
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
beq _08046514EU
|
||||
adds r0, #1
|
||||
ldrb r1, [r0]
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
ldrb r1, [r4, #0xe]
|
||||
adds r5, r0, #0
|
||||
cmp r1, #0
|
||||
bne _08046498
|
||||
subs r0, #5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _08046498
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xe]
|
||||
_08046498:
|
||||
ldrb r0, [r5]
|
||||
bl sub_08000E62
|
||||
cmp r0, #2
|
||||
bls _08046514EU
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xe]
|
||||
strb r0, [r5]
|
||||
adds r7, r4, #0
|
||||
adds r7, #0x78
|
||||
subs r0, #1
|
||||
adds r6, r0, #0
|
||||
movs r0, #0xff
|
||||
strb r0, [r7]
|
||||
adds r0, #0x28
|
||||
bl SoundReq
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x45
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0804650E
|
||||
movs r0, #8
|
||||
movs r1, #0
|
||||
bl sub_08080964
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
ands r0, r6
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0xc
|
||||
bhi _080464E6
|
||||
ldrb r0, [r5]
|
||||
subs r0, #1
|
||||
strb r0, [r5]
|
||||
_080464E6:
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
bne _080464F8
|
||||
strb r0, [r7]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
movs r0, #0xa5
|
||||
lsls r0, r0, #3
|
||||
b _0804650CEU
|
||||
_080464F8:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7f
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0804650E
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
subs r1, #5
|
||||
movs r0, #0x87
|
||||
lsls r0, r0, #3
|
||||
_0804650CEU:
|
||||
strh r0, [r1]
|
||||
_0804650E:
|
||||
adds r0, r4, #0
|
||||
bl sub_080467DC
|
||||
_08046514EU:
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #0
|
||||
beq _0804658C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _0804658C
|
||||
subs r0, r1, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #0
|
||||
bne _0804658C
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x7d
|
||||
ldrb r0, [r2]
|
||||
ldrb r1, [r3]
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
strb r5, [r3]
|
||||
adds r0, r4, #0
|
||||
bl sub_080467DC
|
||||
ldr r2, _08046598 @ =gPlayerEntity
|
||||
ldr r0, [r4, #0x64]
|
||||
adds r0, #0x3c
|
||||
ldrb r0, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x3e
|
||||
strb r0, [r1]
|
||||
subs r1, #1
|
||||
movs r0, #0xf4
|
||||
strb r0, [r1]
|
||||
adds r1, #5
|
||||
movs r0, #0xa
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x2c
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0804658C
|
||||
ldr r0, [r4, #0x64]
|
||||
ldrh r0, [r0, #0x38]
|
||||
strh r0, [r2, #0x2e]
|
||||
ldr r0, [r4, #0x64]
|
||||
ldrh r0, [r0, #0x3a]
|
||||
strh r0, [r2, #0x32]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
_0804658C:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08046598: .4byte gPlayerEntity
|
||||
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7c
|
||||
@@ -855,6 +1075,7 @@ _080467CC:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080467D8: .4byte gPlayerEntity
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080467DC
|
||||
sub_080467DC: @ 0x080467DC
|
||||
@@ -869,3 +1090,4 @@ _080467E6:
|
||||
cmp r1, #7
|
||||
bls _080467E6
|
||||
pop {pc}
|
||||
|
||||
|
||||
@@ -44,6 +44,73 @@ _080489C8: .4byte gUnk_080D1F7C
|
||||
|
||||
thumb_func_start sub_080489CC
|
||||
sub_080489CC: @ 0x080489CC
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0x45
|
||||
adds r0, r0, r5
|
||||
mov ip, r0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _080487F4
|
||||
ldr r3, [r5, #0x50]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x7c
|
||||
movs r0, #1
|
||||
ldrb r1, [r5, #0xa]
|
||||
lsls r0, r1
|
||||
ldrb r1, [r2]
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r4, [r3, #0x64]
|
||||
ldrb r0, [r5, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x18
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r5, #0x4c]
|
||||
str r0, [r1]
|
||||
ldr r2, _08048804 @ =gPlayerEntity
|
||||
movs r6, #0x2e
|
||||
ldrsh r0, [r2, r6]
|
||||
movs r6, #0x2e
|
||||
ldrsh r1, [r5, r6]
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x1f
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #1
|
||||
strh r0, [r4, #0x38]
|
||||
ldr r4, [r3, #0x64]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r2, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r5, r2]
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x1f
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #1
|
||||
strh r0, [r4, #0x3a]
|
||||
ldr r2, [r3, #0x64]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x3e
|
||||
ldrb r0, [r3]
|
||||
movs r1, #0x10
|
||||
eors r0, r1
|
||||
strb r0, [r3]
|
||||
adds r2, #0x3c
|
||||
strb r0, [r2]
|
||||
_080487F4:
|
||||
movs r0, #0xff
|
||||
mov r6, ip
|
||||
strb r0, [r6]
|
||||
ldr r1, _08048808 @ =gUnk_080D1F64
|
||||
adds r0, r5, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08048804: .4byte gPlayerEntity
|
||||
_08048808: .4byte gUnk_080D1F64
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
mov ip, r0
|
||||
adds r0, #0x45
|
||||
@@ -168,6 +235,7 @@ _08048AD8:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08048AEC: .4byte gUnk_080D1F64
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08048AF0
|
||||
sub_08048AF0: @ 0x08048AF0
|
||||
|
||||
+305
@@ -814,6 +814,56 @@ _080B23EC: .4byte gUnk_0800464E
|
||||
|
||||
arm_func_start sub_080B23F0
|
||||
sub_080B23F0: @ 0x080B23F0
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
ldr fp, _080B2A30 @ =gUnk_03000000
|
||||
ldrb r2, [fp, #3]
|
||||
cmp r2, #0x80
|
||||
bhs _080B19C0EU
|
||||
add r0, pc, #0x54 @ =_080B19C0
|
||||
str r0, [fp, #0x18]
|
||||
str sp, [fp, #0x14]
|
||||
ldrb r0, [fp, #0xf]
|
||||
cmp r0, #0xff
|
||||
bne _080B1984
|
||||
bl _080B1FBC
|
||||
_080B1980:
|
||||
mov r0, #0x0
|
||||
_080B1984:
|
||||
ldr r1, _080B2154 @ =0x03006958
|
||||
ldr r1, [r1, r0, lsl #2]
|
||||
str r1, [fp, #0x1c]
|
||||
ldr r0, _080B2A34 @ =gUnk_081326EC
|
||||
ldr r0, [r0]
|
||||
bl sub_080B19C8
|
||||
ldr r0, _080B2A38 @ =gUnk_081326EC
|
||||
ldr r0, [r0, #4]
|
||||
bl sub_080B19C8
|
||||
ldr r0, _080B2A3C @ =gUnk_081326EC
|
||||
ldr r0, [r0, #8]
|
||||
bl sub_080B19C8
|
||||
ldr r0, _080B2A40 @ =gUnk_081326EC
|
||||
ldr r0, [r0, #0xc]
|
||||
bl sub_080B19C8
|
||||
_080B19C0EU:
|
||||
pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
bx lr
|
||||
|
||||
arm_func_start sub_080B19C8
|
||||
sub_080B19C8: @ 0x080B19C8
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
bxeq lr
|
||||
ldr r1, _080B2A44 @ =0x08131D3C
|
||||
ldr r1, [r1, #0x10]
|
||||
mov r2, #0
|
||||
strb r2, [r1]
|
||||
stmdb sp!, {lr}
|
||||
bl sub_080B2478
|
||||
bl sub_080B2534
|
||||
ldm sp!, {lr}
|
||||
b _080B1C40EU
|
||||
.else
|
||||
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
ldr fp, _080B2A30 @ =gUnk_03000000
|
||||
ldrb r2, [fp, #3]
|
||||
@@ -852,6 +902,7 @@ sub_080B2448: @ 0x080B2448
|
||||
bl sub_080B2534
|
||||
ldm sp!, {lr}
|
||||
b _080B26B4
|
||||
.endif
|
||||
|
||||
arm_func_start sub_080B2478
|
||||
sub_080B2478: @ 0x080B2478
|
||||
@@ -927,6 +978,133 @@ _080B2540:
|
||||
|
||||
arm_func_start sub_080B255C
|
||||
sub_080B255C: @ 0x080B255C
|
||||
.ifdef EU
|
||||
stmdb sp!, {lr}
|
||||
mov r4, r0
|
||||
bl sub_080B299C
|
||||
ldr r3, [fp, #0x1c]
|
||||
mov lr, pc
|
||||
bxne r3
|
||||
mov r5, #0
|
||||
strb r5, [fp, #0x12]
|
||||
ldrsb r2, [r4, #0x29]
|
||||
ands r2, r2, #8
|
||||
beq _080B1BB8
|
||||
ldrsh r3, [r4, #0x36]
|
||||
cmp r3, #0
|
||||
bmi _080B1BA4
|
||||
mov r1, #0
|
||||
mov r2, #0
|
||||
bl sub_080B1BCC
|
||||
ldrb r1, [r4, #0x18]
|
||||
and r1, r1, #0x30
|
||||
mov r1, r1
|
||||
cmp r0, #0x19
|
||||
beq _080B1B98
|
||||
cmp r0, #0x2f
|
||||
beq _080B1B64
|
||||
cmp r0, #0xf
|
||||
bne _080B1BA4
|
||||
mov r5, #2
|
||||
strb r5, [fp, #0x12]
|
||||
add r7, r7, r5
|
||||
ldrb r2, [fp, #1]
|
||||
and r2, r2, #0x18
|
||||
add r2, r2, #0x80
|
||||
lsr r2, r2, #2
|
||||
b _080B1B74
|
||||
_080B1B64:
|
||||
ldrb r2, [r4, #0x2e]
|
||||
ldrb r3, [r4, #0x32]
|
||||
eor r2, r2, r3
|
||||
and r2, r2, #6
|
||||
_080B1B74:
|
||||
ldr r3, _080B2A48 @ =gUnk_030068CC
|
||||
add r2, r1, r2, lsl #1
|
||||
ldr sl, [r3, r2]
|
||||
push {r4, r8, sb}
|
||||
mov r8, #0
|
||||
and sb, sb, #0xc00
|
||||
bl _080B2874
|
||||
pop {r4, r8, sb, lr}
|
||||
b _080B2718
|
||||
_080B1B98:
|
||||
mov r5, #2
|
||||
strb r5, [fp, #0x12]
|
||||
add r7, r7, r5
|
||||
_080B1BA4:
|
||||
stmdb sp!, {r4}
|
||||
mov r0, r4
|
||||
bl _080B2718
|
||||
pop {r4, lr}
|
||||
b _080B1BC0
|
||||
_080B1BB8:
|
||||
ldm sp!, {lr}
|
||||
b _080B2718
|
||||
_080B1BC0:
|
||||
ldrsh r1, [r4, #0x36]
|
||||
ldrb r0, [r4, #0x29]
|
||||
tst r0, #0x10
|
||||
beq _080B1BD8
|
||||
cmp r1, #0
|
||||
bxpl lr
|
||||
_080B1BD8:
|
||||
tst r0, #0x20
|
||||
beq _080B1BEC
|
||||
ldrb r0, [fp, #1]
|
||||
tst r0, #1
|
||||
bxne lr
|
||||
_080B1BEC:
|
||||
mov r2, r7
|
||||
cmp r1, #0
|
||||
submi r2, r2, r1
|
||||
ldr r3, _080B2A4C @ =gUnk_081326EC
|
||||
ldr r3, [r3, #0x10]
|
||||
ldrb r0, [r3]
|
||||
cmp r0, #0x40
|
||||
bxhs lr
|
||||
add r0, r0, #1
|
||||
strb r0, [r3]
|
||||
add r3, r3, r0, lsl #2
|
||||
lsr r0, sb, #0xa
|
||||
and r0, r0, #3
|
||||
orr r0, r0, r2, lsl #6
|
||||
strh r0, [r3, #2]
|
||||
ldrb r0, [r4, #0x18]
|
||||
and r0, r0, #0x30
|
||||
lsr r0, r0, #4
|
||||
orr r0, r0, r6, lsl #6
|
||||
strh r0, [r3]
|
||||
bx lr
|
||||
_080B1C40EU:
|
||||
ldr r4, _080B2A50 @ =gUnk_081326EC
|
||||
ldr r4, [r4, #0x10]
|
||||
ldrb r5, [r4]
|
||||
cmp r5, #0
|
||||
bxeq lr
|
||||
stmdb sp!, {lr}
|
||||
add r4, r4, #4
|
||||
_080B1C5C:
|
||||
ldrsh r0, [r4]
|
||||
asr r6, r0, #6
|
||||
and r1, r0, #7
|
||||
ldr sl, _080B2A54 @ =gUnk_0300694C
|
||||
ldr sl, [sl, r1, lsl #2]
|
||||
ldrsh r0, [r4, #2]
|
||||
asr r7, r0, #6
|
||||
and r1, r0, #3
|
||||
lsl sb, r1, #0xa
|
||||
mov r8, #0
|
||||
push {r4, r5}
|
||||
bl _080B2874
|
||||
pop {r4, r5}
|
||||
add r4, r4, #4
|
||||
subs r5, r5, #1
|
||||
bgt _080B1C5C
|
||||
ldm sp!, {lr}
|
||||
bx lr
|
||||
|
||||
.else
|
||||
stmdb sp!, {lr}
|
||||
mov r4, r0
|
||||
bl sub_080B299C
|
||||
@@ -1048,6 +1226,10 @@ _080B26D0:
|
||||
bgt _080B26D0
|
||||
ldm sp!, {lr}
|
||||
bx lr
|
||||
|
||||
.endif
|
||||
|
||||
|
||||
_080B2718:
|
||||
ldrsb r0, [r4, #0x28]
|
||||
cmp r0, #0
|
||||
@@ -1271,7 +1453,127 @@ _080B2A0C:
|
||||
orr r8, r8, r5, lsl #22
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
.ifdef EU
|
||||
_080B1FBC:
|
||||
mov sl, lr
|
||||
ldrsh r0, [fp, #0x1c]
|
||||
ldrsh r1, [fp, #0x1e]
|
||||
ldrsh r2, [fp, #4]
|
||||
sub r0, r0, r2
|
||||
ldrsh r3, [fp, #6]
|
||||
sub r1, r1, r3
|
||||
mov r2, #0
|
||||
mov r3, #0
|
||||
bl sub_080B20ECEU
|
||||
mov r5, #0
|
||||
ldr r4, _080B2194 @ =0x03003DF8
|
||||
_080B1FECEU:
|
||||
ldr r0, [r4, #8]
|
||||
cmp r0, #0
|
||||
beq _080B2074EU
|
||||
ldrsh r6, [r0, #0x2e]
|
||||
ldrsh r7, [r0, #0x32]
|
||||
ldr r3, [r4, #4]
|
||||
cmp r3, #0
|
||||
beq _080B2024
|
||||
ldrsb r0, [r3]
|
||||
add r6, r6, r0
|
||||
ldrsb r0, [r3, #1]
|
||||
add r7, r7, r0
|
||||
add r3, r3, #2
|
||||
b _080B202C
|
||||
_080B2024:
|
||||
ldr r3, [r0, #0x48]
|
||||
add r3, r3, #6
|
||||
_080B202C:
|
||||
ldrsh r0, [fp, #4]
|
||||
sub r6, r6, r0
|
||||
ldrsh r0, [fp, #6]
|
||||
sub r7, r7, r0
|
||||
ldrb r0, [r3]
|
||||
ldrb r1, [r3, #1]
|
||||
ldr r2, [fp, #1]
|
||||
and r2, r2, #3
|
||||
lsl r3, r2, #0x1c
|
||||
lsrs r2, r2, #1
|
||||
rsblo r0, r0, #0
|
||||
subhs r0, r0, #8
|
||||
rsbeq r1, r1, #0
|
||||
subne r1, r1, #8
|
||||
add r0, r0, r6
|
||||
add r1, r1, r7
|
||||
mov r2, #0
|
||||
bl sub_080B20ECEU
|
||||
_080B2074EU:
|
||||
add r4, r4, #0xc
|
||||
add r5, r5, #1
|
||||
cmp r5, #0x1f
|
||||
bls _080B1FECEU
|
||||
bx sl
|
||||
arm_func_start sub_080B2088
|
||||
sub_080B2088: @ 0x080B2088
|
||||
ldr r5, [r4, #0x48]
|
||||
cmp r5, #0
|
||||
bxeq lr
|
||||
ldrb r0, [r5, #6]
|
||||
ldrb r1, [r5, #7]
|
||||
ldr r2, [fp, #1]
|
||||
and r2, r2, #3
|
||||
lsl r3, r2, #0x1c
|
||||
lsrs r2, r2, #1
|
||||
rsblo r0, r0, #0
|
||||
subhs r0, r0, #8
|
||||
rsbeq r1, r1, #0
|
||||
subne r1, r1, #8
|
||||
ldrsb r2, [r5]
|
||||
add r0, r6, r0
|
||||
add r0, r0, r2
|
||||
ldrsb r2, [r5, #1]
|
||||
add r1, r7, r1
|
||||
add r1, r1, r2
|
||||
mov r2, sb
|
||||
b sub_080B20ECEU
|
||||
_080B20DC:
|
||||
mov r0, r6
|
||||
mov r1, r7
|
||||
mov r2, r9
|
||||
mov r3, #0x0
|
||||
|
||||
arm_func_start sub_080B20ECEU
|
||||
sub_080B20ECEU: @ 0x080B20EC
|
||||
add ip, r1, #7
|
||||
cmp ip, #0xa8
|
||||
bxhs lr
|
||||
add ip, r0, #7
|
||||
cmp ip, #0xf8
|
||||
bxhs lr
|
||||
and r1, r1, #0xff
|
||||
lsl r0, r0, #0x17
|
||||
orr r0, r1, r0, lsr #7
|
||||
eor r0, r0, r3
|
||||
and r1, r2, #0xc00
|
||||
add r1, r1, #0xff
|
||||
ldrb r3, [fp, #3]
|
||||
add ip, fp, #0x20
|
||||
add ip, ip, r3, lsl #3
|
||||
str r0, [ip]
|
||||
strh r1, [ip, #4]
|
||||
add r3, r3, #1
|
||||
cmp r3, #0x80
|
||||
bhs _080B298C
|
||||
strb r3, [fp, #3]
|
||||
bx lr
|
||||
_080B2144:
|
||||
.4byte gUnk_03006954
|
||||
.4byte gUnk_030068F0
|
||||
.4byte gUnk_0300689C
|
||||
.endif
|
||||
|
||||
_080B2A30: .4byte gUnk_03000000
|
||||
.ifdef EU
|
||||
_080B2154: .4byte 0x03006958 @TODO make pointer?
|
||||
.endif
|
||||
_080B2A34: .4byte gUnk_081326EC
|
||||
_080B2A38: .4byte gUnk_081326EC
|
||||
_080B2A3C: .4byte gUnk_081326EC
|
||||
@@ -1287,3 +1589,6 @@ _080B2A60: .4byte gUnk_082F3D74
|
||||
_080B2A64: .4byte gUnk_03000000
|
||||
_080B2A68: .4byte gUnk_0300695C
|
||||
_080B2A6C: .4byte 0x3E003F00
|
||||
.ifdef EU
|
||||
_080B2194: .4byte 0x03003DF8 @TODO pointer?
|
||||
.endif
|
||||
|
||||
@@ -118,6 +118,64 @@ _08075AD8: .4byte gUnk_08126EEC
|
||||
|
||||
thumb_func_start sub_08075ADC
|
||||
sub_08075ADC: @ 0x08075ADC
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
ldrb r1, [r4, #0xe]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08075532
|
||||
ldr r0, _08075570 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x88
|
||||
lsls r1, r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08075532
|
||||
bl sub_08079D48
|
||||
cmp r0, #0
|
||||
bne _08075578
|
||||
_08075532:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r4, #4]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #4]
|
||||
ldr r3, _08075570 @ =gPlayerState
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x10
|
||||
orrs r0, r1
|
||||
str r0, [r3, #0x30]
|
||||
movs r2, #8
|
||||
asrs r2, r5
|
||||
lsls r1, r2, #4
|
||||
orrs r1, r2
|
||||
ldrb r0, [r3, #4]
|
||||
bics r0, r1
|
||||
strb r0, [r3, #4]
|
||||
mvns r2, r2
|
||||
ldrb r1, [r3, #0xa]
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
strb r0, [r3, #0xa]
|
||||
ldrb r0, [r3, #0xb]
|
||||
ands r2, r0
|
||||
strb r2, [r3, #0xb]
|
||||
ldr r0, _08075574 @ =0x0000013D
|
||||
bl SoundReq
|
||||
b _0807557E
|
||||
.align 2, 0
|
||||
_08075570: .4byte gPlayerState
|
||||
_08075574: .4byte 0x0000013D
|
||||
_08075578:
|
||||
adds r0, r4, #0
|
||||
bl UpdateItemAnim
|
||||
_0807557E:
|
||||
pop {r4, r5, pc}
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
@@ -177,6 +235,7 @@ _08075B4C:
|
||||
bl UpdateItemAnim
|
||||
_08075B52:
|
||||
pop {r4, r5, pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08075B54
|
||||
sub_08075B54: @ 0x08075B54
|
||||
|
||||
@@ -26,6 +26,187 @@ _08075334: .4byte gUnk_0811BD44
|
||||
|
||||
thumb_func_start sub_08075338
|
||||
sub_08075338: @ 0x08075338
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
ldr r4, _08074DA8 @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
movs r3, #0x80
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08074DAC
|
||||
ldrb r0, [r5, #9]
|
||||
movs r1, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #9]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x75
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074DA8: .4byte gPlayerState
|
||||
_08074DAC:
|
||||
ldrb r2, [r4, #2]
|
||||
cmp r2, #0
|
||||
beq _08074E22
|
||||
movs r6, #7
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
beq _08074E18
|
||||
movs r0, #0x78
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _08074E18
|
||||
ldr r3, _08074E10 @ =gPlayerEntity
|
||||
ldr r1, [r3, #0x20]
|
||||
ldr r0, _08074E14 @ =0x00017FFF
|
||||
cmp r1, r0
|
||||
bhi _08074E18
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
movs r0, #0x20
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xab
|
||||
strb r6, [r0]
|
||||
movs r0, #8
|
||||
asrs r0, r7
|
||||
lsls r1, r0, #4
|
||||
orrs r0, r1
|
||||
ldrb r1, [r4, #4]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #4]
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r0, #6
|
||||
strb r0, [r5, #4]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08075898
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074E10: .4byte gPlayerEntity
|
||||
_08074E14: .4byte 0x00017FFF
|
||||
_08074E18:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080759B8
|
||||
b _08074EE2
|
||||
_08074E22:
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #0xb
|
||||
ands r6, r1
|
||||
cmp r6, #0
|
||||
beq _08074EAE
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
cmp r6, #0
|
||||
bne _08074E4C
|
||||
ldr r0, [r4, #0x2c]
|
||||
cmp r0, #0
|
||||
beq _08074EE2
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
b _08074EE2
|
||||
_08074E4C:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r3, #8
|
||||
adds r1, r3, #0
|
||||
asrs r1, r7
|
||||
lsls r0, r1, #4
|
||||
orrs r0, r1
|
||||
ldrb r2, [r4, #4]
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #4]
|
||||
ldrb r2, [r4, #0xa]
|
||||
adds r0, r1, #0
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0xa]
|
||||
ldrb r0, [r4, #0xb]
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0xb]
|
||||
strb r3, [r5, #4]
|
||||
movs r0, #0x14
|
||||
strb r0, [r5, #7]
|
||||
movs r0, #6
|
||||
strb r0, [r5, #0xf]
|
||||
ldrb r1, [r5, #9]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #9]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xab
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x14
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x98
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl sub_08077DF4
|
||||
movs r0, #0x77
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
_08074EAE:
|
||||
ldrb r1, [r4, #0x1b]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08074EC0
|
||||
strb r6, [r4, #0x1b]
|
||||
ldr r0, _08074EE4 @ =gPlayerEntity
|
||||
bl sub_0806F948
|
||||
_08074EC0:
|
||||
ldr r1, [r4, #0x2c]
|
||||
cmp r1, #0
|
||||
beq _08074ED4
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #1
|
||||
beq _08074ED4
|
||||
adds r0, r1, #0
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
_08074ED4:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
_08074EE2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08074EE4: .4byte gPlayerEntity
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
@@ -210,6 +391,7 @@ _080754A6:
|
||||
_080754B4:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080754B8
|
||||
sub_080754B8: @ 0x080754B8
|
||||
|
||||
@@ -61,6 +61,11 @@ sub_08081854: @ 0x08081854
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
strb r3, [r4, #0x16]
|
||||
.ifdef EU
|
||||
adds r0, r4, #0x0
|
||||
movs r1, #0x6
|
||||
bl sub_0805E3A0
|
||||
.endif
|
||||
str r4, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
bl sub_08081A5C
|
||||
|
||||
+253
@@ -9,6 +9,258 @@
|
||||
|
||||
thumb_func_start LadderUp
|
||||
LadderUp: @ 0x0808DB54
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r7, r0, #0
|
||||
ldrb r0, [r7, #0xc]
|
||||
cmp r0, #1
|
||||
beq _0808D4D8
|
||||
cmp r0, #1
|
||||
bgt _0808D518
|
||||
cmp r0, #0
|
||||
bne _0808D518
|
||||
ldrb r0, [r7, #0xe]
|
||||
movs r1, #2
|
||||
cmp r0, #0
|
||||
beq _0808D46C
|
||||
movs r1, #1
|
||||
_0808D46C:
|
||||
strb r1, [r7, #0xc]
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x63
|
||||
ldrb r0, [r1]
|
||||
adds r0, #8
|
||||
strb r0, [r1]
|
||||
adds r0, r7, #0
|
||||
movs r1, #0xa
|
||||
bl InitializeAnimation
|
||||
ldrb r0, [r7, #0xc]
|
||||
cmp r0, #1
|
||||
bne _0808D48A
|
||||
ldr r0, _0808D4CC @ =0x0000FF80
|
||||
strh r0, [r7, #0x36]
|
||||
_0808D48A:
|
||||
ldrb r0, [r7, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0808D492
|
||||
b _0808D642
|
||||
_0808D492:
|
||||
ldrh r1, [r7, #0x32]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
adds r0, #0xc
|
||||
strh r0, [r7, #0x32]
|
||||
ldr r0, _0808D4D0 @ =0x00004023
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
ldr r3, _0808D4D4 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r5, #0x32
|
||||
ldrsh r2, [r7, r5]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r7, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl SetTile
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D4CC: .4byte 0x0000FF80
|
||||
_0808D4D0: .4byte 0x00004023
|
||||
_0808D4D4: .4byte gRoomControls
|
||||
_0808D4D8:
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
adds r0, r7, #0
|
||||
bl sub_08003FC4
|
||||
cmp r0, #0
|
||||
beq _0808D4E8
|
||||
b _0808D642
|
||||
_0808D4E8:
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x46
|
||||
movs r2, #0x40
|
||||
bl CreateFx
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0808D4FE
|
||||
ldrh r0, [r1, #0x32]
|
||||
adds r0, #8
|
||||
strh r0, [r1, #0x32]
|
||||
_0808D4FE:
|
||||
movs r0, #0x1e
|
||||
movs r1, #0
|
||||
bl sub_08080964
|
||||
ldr r0, _0808D514 @ =0x0000010B
|
||||
bl SoundReq
|
||||
movs r0, #2
|
||||
strb r0, [r7, #0xc]
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D514: .4byte 0x0000010B
|
||||
_0808D518:
|
||||
ldrb r0, [r7, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0808D520
|
||||
b _0808D642
|
||||
_0808D520:
|
||||
ldr r0, _0808D598 @ =gPlayerEntity
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r3, #0x32
|
||||
ldrsh r0, [r7, r3]
|
||||
cmp r1, r0
|
||||
bge _0808D5AC
|
||||
ldr r0, _0808D59C @ =gPlayerState
|
||||
ldrb r0, [r0, #0x12]
|
||||
cmp r0, #0x1e
|
||||
bne _0808D538
|
||||
b _0808D642
|
||||
_0808D538:
|
||||
adds r0, r7, #0
|
||||
bl GetTileTypeByEntity
|
||||
ldr r1, _0808D5A0 @ =0x00004017
|
||||
cmp r0, r1
|
||||
beq _0808D546
|
||||
b _0808D642
|
||||
_0808D546:
|
||||
ldr r0, _0808D5A4 @ =0x00004023
|
||||
movs r5, #0x2e
|
||||
ldrsh r1, [r7, r5]
|
||||
ldr r4, _0808D5A8 @ =gRoomControls
|
||||
ldrh r2, [r4, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r5, #0x3f
|
||||
ands r1, r5
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
ldrh r3, [r4, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r5
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r6, r7, #0
|
||||
adds r6, #0x38
|
||||
ldrb r2, [r6]
|
||||
bl SetTile
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r5
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r7, r2]
|
||||
ldrh r2, [r4, #8]
|
||||
adds r2, #0x10
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r5
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldrb r1, [r6]
|
||||
bl sub_0807BA8C
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D598: .4byte gPlayerEntity
|
||||
_0808D59C: .4byte gPlayerState
|
||||
_0808D5A0: .4byte 0x00004017
|
||||
_0808D5A4: .4byte 0x00004023
|
||||
_0808D5A8: .4byte gRoomControls
|
||||
_0808D5AC:
|
||||
adds r0, r7, #0
|
||||
bl GetTileTypeByEntity
|
||||
ldr r3, _0808D614 @ =0x00004017
|
||||
mov r8, r3
|
||||
cmp r0, r8
|
||||
beq _0808D642
|
||||
movs r5, #0x2e
|
||||
ldrsh r1, [r7, r5]
|
||||
ldr r5, _0808D618 @ =gRoomControls
|
||||
ldrh r0, [r5, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r6, #0x3f
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r7, r2]
|
||||
ldrh r2, [r5, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r4, r7, #0
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
mov r0, r8
|
||||
bl SetTile
|
||||
ldrb r0, [r7, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0808D61C
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldrh r0, [r5, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r7, r2]
|
||||
ldrh r2, [r5, #8]
|
||||
adds r2, #0x10
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
ldrb r2, [r4]
|
||||
mov r0, r8
|
||||
bl SetTile
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D614: .4byte 0x00004017
|
||||
_0808D618: .4byte gRoomControls
|
||||
_0808D61C:
|
||||
ldr r0, _0808D648 @ =0x00004014
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
ldrh r3, [r5, #8]
|
||||
adds r3, #0x10
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r6
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
_0808D642:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0808D648: .4byte 0x00004014
|
||||
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
@@ -279,3 +531,4 @@ _0808DD72:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0808DD78: .4byte 0x00004014
|
||||
.endif
|
||||
|
||||
@@ -34,6 +34,67 @@ _0805DE64: .4byte gUnk_08108DC4
|
||||
|
||||
thumb_func_start sub_0805DE68
|
||||
sub_0805DE68: @ 0x0805DE68
|
||||
.ifdef JP
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x7b
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0805DCCE
|
||||
bl DeleteThisEntity
|
||||
_0805DCCE:
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r2, _0805DCF4 @ =0x030010A0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0xf
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3a
|
||||
movs r1, #0x20
|
||||
strb r1, [r0]
|
||||
adds r0, #1
|
||||
strb r1, [r0]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805DCF4: .4byte gScreenTransition
|
||||
.else
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x7b
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0805D916
|
||||
bl DeleteThisEntity
|
||||
_0805D916:
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r2, _0805D93C @ =gScreenTransition
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0xf
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3a
|
||||
movs r1, #0x20
|
||||
strb r1, [r0]
|
||||
adds r0, #1
|
||||
strb r1, [r0]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805D93C: .4byte gScreenTransition
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x7b
|
||||
@@ -70,6 +131,8 @@ _0805DE7A:
|
||||
_0805DEAC: .4byte gScreenTransition
|
||||
_0805DEB0: .4byte gSave
|
||||
_0805DEB4: .4byte 0x00001194
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0805DEB8
|
||||
sub_0805DEB8: @ 0x0805DEB8
|
||||
|
||||
@@ -538,9 +538,11 @@ _080592C8:
|
||||
bl sub_080592EC
|
||||
adds r0, r4, #0
|
||||
bl sub_0805930C
|
||||
.ifndef EU
|
||||
movs r0, #0xb7
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
.endif
|
||||
bl DeleteThisEntity
|
||||
_080592EA:
|
||||
pop {r4, pc}
|
||||
@@ -569,7 +571,11 @@ sub_0805930C: @ 0x0805930C
|
||||
adds r4, r0, #0
|
||||
movs r0, #0xf
|
||||
movs r1, #0x43
|
||||
.ifdef EU
|
||||
movs r2, #0x0
|
||||
.else
|
||||
movs r2, #0x40
|
||||
.endif
|
||||
bl CreateObject
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
@@ -799,6 +805,7 @@ _080594D2:
|
||||
_080594D4: .4byte gUnk_08108380
|
||||
_080594D8: .4byte gPlayerEntity
|
||||
|
||||
.ifndef EU
|
||||
thumb_func_start sub_080594DC
|
||||
sub_080594DC: @ 0x080594DC
|
||||
push {r4, lr}
|
||||
@@ -850,9 +857,12 @@ _08059540:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08059544: .4byte gArea
|
||||
.endif
|
||||
|
||||
|
||||
thumb_func_start sub_08059548
|
||||
sub_08059548: @ 0x08059548
|
||||
.ifdef USA
|
||||
push {lr}
|
||||
movs r1, #6
|
||||
bl sub_0805E3A0
|
||||
@@ -871,3 +881,25 @@ _0805955C:
|
||||
.align 2, 0
|
||||
_08059568: .4byte gPlayerEntity
|
||||
_0805956C: .4byte gInput
|
||||
.else
|
||||
.ifdef DEMO @ TODO deduplicate
|
||||
push {lr}
|
||||
movs r1, #6
|
||||
bl sub_0805E3A0
|
||||
ldr r0, _08059568 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #0x16
|
||||
bne _0805955C
|
||||
bl DeleteThisEntity
|
||||
_0805955C:
|
||||
ldr r2, _0805956C @ =gInput
|
||||
ldrh r1, [r2]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08059568: .4byte gPlayerEntity
|
||||
_0805956C: .4byte gInput
|
||||
.endif
|
||||
.endif
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080A2FF4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A30A8
|
||||
movs r5, #0
|
||||
ldr r0, _080A2FF8 @ =gInput
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0x10
|
||||
beq _080A3020
|
||||
cmp r0, #0x10
|
||||
bgt _080A2FFC
|
||||
cmp r0, #1
|
||||
beq _080A303C
|
||||
cmp r0, #8
|
||||
beq _080A303C
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A2FF4: .4byte gFadeControl
|
||||
_080A2FF8: .4byte gInput
|
||||
_080A2FFC:
|
||||
cmp r0, #0x40
|
||||
beq _080A3052
|
||||
cmp r0, #0x40
|
||||
bgt _080A3052
|
||||
cmp r0, #0x20
|
||||
bne _080A3052
|
||||
ldr r1, _080A301C @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
rsbs r5, r5, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xfc
|
||||
b _080A302E
|
||||
.align 2, 0
|
||||
_080A301C: .4byte gChooseFileState
|
||||
_080A3020:
|
||||
ldr r1, _080A3038 @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
adds r1, #0x20
|
||||
movs r0, #4
|
||||
_080A302E:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A3038: .4byte gChooseFileState
|
||||
_080A303C:
|
||||
ldr r0, _080A3090 @ =gChooseFileState
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
bne _080A3052
|
||||
ldr r1, _080A3094 @ =gMain
|
||||
movs r0, #2
|
||||
strb r0, [r1, #3]
|
||||
strb r2, [r1, #4]
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
_080A3052:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #0x12
|
||||
ldrb r0, [r4, #4]
|
||||
adds r1, r5, #3
|
||||
adds r0, r0, r1
|
||||
movs r1, #3
|
||||
bl __modsi3
|
||||
strb r0, [r4, #4]
|
||||
ldr r5, _080A3090 @ =gChooseFileState
|
||||
movs r0, #0x10
|
||||
ldrsh r2, [r5, r0]
|
||||
ldrb r1, [r4, #4]
|
||||
movs r0, #0x68
|
||||
muls r0, r1, r0
|
||||
cmp r0, r2
|
||||
beq _080A3098
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x20
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r0, r2, r0
|
||||
movs r1, #0x9c
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
bl __modsi3
|
||||
strh r0, [r5, #0x10]
|
||||
movs r0, #1
|
||||
b _080A309A
|
||||
.align 2, 0
|
||||
_080A3090: .4byte gChooseFileState
|
||||
_080A3094: .4byte gMain
|
||||
_080A3098:
|
||||
movs r0, #0
|
||||
_080A309A:
|
||||
strb r0, [r5]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #4]
|
||||
movs r1, #0
|
||||
bl sub_080A3198
|
||||
_080A30A8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,107 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
ldr r4, _080A3188 @ =gOamCmd
|
||||
movs r1, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
strh r0, [r4, #4]
|
||||
strh r1, [r4, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A318C @ =gChooseFileState
|
||||
movs r1, #0x10
|
||||
ldrsh r6, [r0, r1]
|
||||
ldr r1, _080A3190 @ =0xFFFFFED8
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r0, _080A3194 @ =0x08A068BF
|
||||
mov r8, r0
|
||||
ldr r1, [r0]
|
||||
mov r5, r8
|
||||
subs r5, #0xc
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xc0
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x58
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x78
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0xe0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xa4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xd8
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x86
|
||||
lsls r1, r1, #2
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A3188: .4byte gOamCmd
|
||||
_080A318C: .4byte gChooseFileState
|
||||
_080A3190: .4byte 0xFFFFFED8
|
||||
_080A3194: .4byte gUnk_08A068BF
|
||||
.syntax divided
|
||||
@@ -0,0 +1,34 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r1, _080A31D0 @ =0x08127CC8
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r4, [r0]
|
||||
ldr r1, _080A31D4 @ =gChooseFileState
|
||||
ldrh r0, [r1, #0x12]
|
||||
cmp r0, r4
|
||||
beq _080A31CC
|
||||
strh r4, [r1, #0x12]
|
||||
ldr r5, _080A31D8 @ =something2
|
||||
ldr r0, [r5]
|
||||
subs r0, #0x1e
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #1
|
||||
bl MemClear
|
||||
cmp r4, #0
|
||||
beq _080A31C6DEMO
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0805F46C
|
||||
_080A31C6DEMO:
|
||||
ldr r1, _080A31DC @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
_080A31CC:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A31D0: .4byte gUnk_08127CC8
|
||||
_080A31D4: .4byte gChooseFileState
|
||||
_080A31D8: .4byte gUnk_08127C98
|
||||
_080A31DC: .4byte gScreen
|
||||
.syntax divided
|
||||
@@ -0,0 +1,251 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _080170E4 @ =gUnk_0200AF00
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x2f
|
||||
movs r1, #0
|
||||
strb r1, [r2]
|
||||
subs r2, #2
|
||||
strb r1, [r2]
|
||||
adds r0, #0x2e
|
||||
strb r1, [r0]
|
||||
ldr r2, _080170E8 @ =gPlayerEntity
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017072
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _08017072
|
||||
movs r0, #0x86
|
||||
bl SoundReq
|
||||
_08017072:
|
||||
ldr r4, _080170EC @ =gPlayerState
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r1, _080170F0 @ =0xFDFFFDFF
|
||||
ands r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801708A
|
||||
bl ResetPlayer
|
||||
_0801708A:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080170A4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xa0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080170A4
|
||||
bl sub_0807A108
|
||||
_080170A4:
|
||||
bl sub_08079B24
|
||||
cmp r0, #0
|
||||
bne _080170B2
|
||||
adds r0, r5, #0
|
||||
bl sub_08079708
|
||||
_080170B2:
|
||||
ldr r0, _080170F4 @ =gUnk_03003DF0
|
||||
movs r4, #0
|
||||
strb r4, [r0]
|
||||
ldr r2, _080170EC @ =gPlayerState
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x27
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170C8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
_080170C8:
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
adds r3, r2, #0
|
||||
adds r3, #0xa9
|
||||
strb r0, [r3]
|
||||
strb r4, [r1]
|
||||
subs r1, #0x1e
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170F8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080170E4: .4byte gUnk_0200AF00
|
||||
_080170E8: .4byte gPlayerEntity
|
||||
_080170EC: .4byte gPlayerState
|
||||
_080170F0: .4byte 0xFDFFFDFF
|
||||
_080170F4: .4byte gUnk_03003DF0
|
||||
_080170F8:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x8b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08017104
|
||||
b _08017222
|
||||
_08017104:
|
||||
ldr r0, _08017160 @ =gTextBox
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017112
|
||||
b _08017222
|
||||
_08017112:
|
||||
ldr r0, _08017164 @ =gUnk_0200AF00
|
||||
ldrb r0, [r0, #1]
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r0, _08017168 @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0x5a
|
||||
bl __modsi3
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r2, _0801716C @ =gSave
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xab
|
||||
ldrb r0, [r0]
|
||||
lsrs r1, r0, #2
|
||||
cmp r1, #0x18
|
||||
bls _08017138
|
||||
movs r1, #0x18
|
||||
_08017138:
|
||||
cmp r1, #7
|
||||
bhi _0801713E
|
||||
movs r1, #8
|
||||
_0801713E:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r1
|
||||
bhi _0801714E
|
||||
ldr r0, _08017170 @ =0x0000011F
|
||||
bl EnqueueSFX
|
||||
_0801714E:
|
||||
ldr r0, _0801716C @ =gSave
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xb2
|
||||
ldrb r1, [r2]
|
||||
cmp r1, #0
|
||||
bne _08017174
|
||||
adds r0, #0xc4
|
||||
strh r1, [r0]
|
||||
b _08017192
|
||||
.align 2, 0
|
||||
_08017160: .4byte gTextBox
|
||||
_08017164: .4byte gUnk_0200AF00
|
||||
_08017168: .4byte gScreenTransition
|
||||
_0801716C: .4byte gSave
|
||||
_08017170: .4byte 0x0000011F
|
||||
_08017174:
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xc4
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _08017188
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08017192
|
||||
_08017188:
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
ldr r0, _080171A4 @ =0x000001B3
|
||||
bl SoundReq
|
||||
_08017192:
|
||||
ldr r0, _080171A8 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xb3
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171AC
|
||||
adds r0, #0xc6
|
||||
strh r1, [r0]
|
||||
b _080171DC
|
||||
.align 2, 0
|
||||
_080171A4: .4byte 0x000001B3
|
||||
_080171A8: .4byte gSave
|
||||
_080171AC:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc6
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080171C0
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _080171CE
|
||||
_080171C0:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _080171DC
|
||||
_080171CE:
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _080171DC
|
||||
adds r0, r5, #0
|
||||
bl CreateSparkle
|
||||
_080171DC:
|
||||
ldr r0, _080171F0 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xba
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171F4
|
||||
adds r0, #0xc8
|
||||
strh r1, [r0]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080171F0: .4byte gSave
|
||||
_080171F4:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc8
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _08017208
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _0801720E
|
||||
_08017208:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
b _08017222
|
||||
_0801720E:
|
||||
movs r0, #0x3f
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08017222
|
||||
ldrb r1, [r3]
|
||||
adds r1, #0x55
|
||||
adds r0, r5, #0
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
_08017222:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,95 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080578C4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
ldr r1, _0805791C @ =sub_080582F8
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl sub_08052D74
|
||||
_080578C4:
|
||||
ldr r0, _08057920 @ =gRoomControls
|
||||
ldrh r5, [r0]
|
||||
cmp r5, #0
|
||||
bne _08057960
|
||||
adds r0, r4, #0
|
||||
bl sub_08057E40
|
||||
cmp r0, #0
|
||||
beq _080578E8
|
||||
ldr r0, _08057924 @ =gRoomVars
|
||||
ldrb r6, [r0, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
ldrb r0, [r1]
|
||||
cmp r0, r6
|
||||
beq _080578E8
|
||||
strb r6, [r1]
|
||||
strb r5, [r4, #0xe]
|
||||
_080578E8:
|
||||
lsls r1, r6, #6
|
||||
ldr r0, _08057928 @ =gUnk_081080A4
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #0
|
||||
bne _08057938
|
||||
ldr r1, _0805792C @ =gUnk_02034490
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08057930 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r2, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldr r0, _08057934 @ =gUnk_081081E4
|
||||
adds r0, r6, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _08057960
|
||||
.align 2, 0
|
||||
_0805791C: .4byte sub_08057E30
|
||||
_08057920: .4byte gRoomControls
|
||||
_08057924: .4byte gRoomVars
|
||||
_08057928: .4byte gUnk_081080A4
|
||||
_0805792C: .4byte gUnk_02034490
|
||||
_08057930: .4byte gGlobalGfxAndPalettes
|
||||
_08057934: .4byte gUnk_081081E4
|
||||
_08057938:
|
||||
cmp r1, #0
|
||||
blt _08057960
|
||||
cmp r1, #7
|
||||
bgt _08057960
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08057964 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r1, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
movs r1, #0
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r0, _08057968 @ =gUnk_02034490
|
||||
strb r1, [r0]
|
||||
_08057960:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08057964: .4byte gGlobalGfxAndPalettes
|
||||
_08057968: .4byte gUnk_02034490
|
||||
.syntax divided
|
||||
@@ -0,0 +1,153 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r6, r0, #0
|
||||
ldr r0, _08056570 @ =gUnk_02024030
|
||||
movs r7, #3
|
||||
ldrsb r7, [r0, r7]
|
||||
ldr r0, _08056574 @ =gInput
|
||||
ldrh r0, [r0, #2]
|
||||
cmp r0, #8
|
||||
beq _08056582
|
||||
cmp r0, #8
|
||||
bgt _08056578
|
||||
cmp r0, #1
|
||||
beq _08056582
|
||||
b _080565EA
|
||||
.align 2, 0
|
||||
_08056570: .4byte gUnk_02024030
|
||||
_08056574: .4byte gInput
|
||||
_08056578:
|
||||
cmp r0, #0x10
|
||||
beq _080565E8
|
||||
cmp r0, #0x20
|
||||
beq _080565E4
|
||||
b _080565EA
|
||||
_08056582:
|
||||
ldr r0, _08056598EU @ =gUnk_02024030
|
||||
lsls r1, r7, #1
|
||||
adds r0, #0x10
|
||||
adds r1, r1, r0
|
||||
ldrh r1, [r1]
|
||||
cmp r1, #0
|
||||
bne _080565A0EU
|
||||
ldr r1, _0805659CEU @ =gUnk_08107C14
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x20
|
||||
b _080565B0EU
|
||||
.align 2, 0
|
||||
_08056598EU: .4byte gUnk_02024030
|
||||
_0805659CEU: .4byte gUnk_08107C14
|
||||
_080565A0EU:
|
||||
strh r1, [r6, #8]
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x20
|
||||
adds r0, r4, #0
|
||||
bl sub_0805EEB4
|
||||
ldr r1, _080565D8 @ =gUnk_08107C0F
|
||||
adds r0, r4, #0
|
||||
_080565B0EU:
|
||||
bl sub_0805EF40
|
||||
ldr r2, _080565DC @ =gUnk_02000040
|
||||
ldr r0, _080565E0 @ =gUnk_02024030
|
||||
ldrb r1, [r0, #3]
|
||||
strb r1, [r2, #1]
|
||||
movs r1, #3
|
||||
strb r1, [r2]
|
||||
movs r1, #0x18
|
||||
bl MemClear
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x89
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
b _080565EA
|
||||
.align 2, 0
|
||||
_080565D8: .4byte gUnk_08107C0F
|
||||
_080565DC: .4byte gUnk_02000040
|
||||
_080565E0: .4byte gUnk_02024030
|
||||
_080565E4:
|
||||
subs r7, #1
|
||||
b _080565EA
|
||||
_080565E8:
|
||||
adds r7, #1
|
||||
_080565EA:
|
||||
ldr r4, _0805660C @ =gUnk_02024030
|
||||
movs r1, #2
|
||||
ldrsb r1, [r4, r1]
|
||||
adds r0, r7, r1
|
||||
bl __modsi3
|
||||
adds r7, r0, #0
|
||||
movs r5, #3
|
||||
ldrsb r5, [r4, r5]
|
||||
cmp r7, r5
|
||||
beq _08056610
|
||||
strb r7, [r4, #3]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
movs r1, #1
|
||||
b _08056612
|
||||
.align 2, 0
|
||||
_0805660C: .4byte gUnk_02024030
|
||||
_08056610:
|
||||
movs r1, #0
|
||||
_08056612:
|
||||
ldr r2, _08056674 @ =gUnk_02000040
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #1
|
||||
bne _08056624
|
||||
ldr r1, _08056678 @ =gUnk_02024030
|
||||
movs r0, #2
|
||||
strb r0, [r2]
|
||||
strb r0, [r1]
|
||||
movs r1, #1
|
||||
_08056624:
|
||||
cmp r1, #0
|
||||
beq _0805666A
|
||||
ldr r0, _0805667C @ =gCurrentTextBox
|
||||
mov sl, r0
|
||||
movs r1, #0x56
|
||||
add r1, sl
|
||||
mov sb, r1
|
||||
ldrh r0, [r1]
|
||||
mov r8, r0
|
||||
ldr r4, _08056678 @ =gUnk_02024030
|
||||
lsls r0, r5, #1
|
||||
adds r4, #8
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
adds r6, #0x50
|
||||
movs r0, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_0805F8E4
|
||||
lsls r0, r7, #1
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
mov r1, sb
|
||||
strh r0, [r1]
|
||||
movs r0, #1
|
||||
adds r1, r6, #0
|
||||
bl sub_0805F8E4
|
||||
mov r1, r8
|
||||
mov r0, sb
|
||||
strh r1, [r0]
|
||||
movs r0, #1
|
||||
ldr r1, _08056680 @ =0x0202281D
|
||||
strb r0, [r1]
|
||||
_0805666A:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08056674: .4byte gUnk_02000040
|
||||
_08056678: .4byte gUnk_02024030
|
||||
_0805667C: .4byte gCurrentTextBox
|
||||
_08056680: .4byte 0x0202281D
|
||||
.syntax divided
|
||||
@@ -0,0 +1,47 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_0804A720
|
||||
movs r4, #0
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
bl Random
|
||||
strb r0, [r5, #0xe]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x45
|
||||
ldrb r1, [r0]
|
||||
adds r0, #0x3b
|
||||
strb r1, [r0]
|
||||
adds r0, #2
|
||||
strb r4, [r0]
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0801F484
|
||||
movs r0, #3
|
||||
strb r0, [r5, #0xc]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r5, #0xf]
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
strb r0, [r5, #0x15]
|
||||
ldrb r0, [r5, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r5, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
_0801F484:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,101 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0802AAB4
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802AD1C
|
||||
_0802AAB4:
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x81
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _0802AB38
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _0802AAC8
|
||||
strb r5, [r6]
|
||||
b _0802AB56
|
||||
_0802AAC8:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _0802AAD4
|
||||
strb r0, [r6]
|
||||
str r0, [r4, #0x54]
|
||||
b _0802AB56
|
||||
_0802AAD4:
|
||||
ldrb r0, [r5, #0xe]
|
||||
mov r8, r0
|
||||
cmp r0, #0
|
||||
bne _0802AB56
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _0802AB24 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r7, #0x32
|
||||
ldrsh r1, [r4, r7]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
movs r1, #1
|
||||
bl sub_080002E0
|
||||
cmp r0, #0
|
||||
bne _0802AB2C
|
||||
ldr r1, _0802AB28 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x10
|
||||
movs r3, #0x10
|
||||
bl sub_080041A0
|
||||
cmp r0, #0
|
||||
beq _0802AB56
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x50
|
||||
bhi _0802AB56
|
||||
mov r0, r8
|
||||
strb r0, [r6]
|
||||
b _0802AB56
|
||||
.align 2, 0
|
||||
_0802AB24: .4byte gRoomControls
|
||||
_0802AB28: .4byte gPlayerEntity
|
||||
_0802AB2C:
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x13
|
||||
bhi _0802AB56
|
||||
mov r1, r8
|
||||
strb r1, [r6]
|
||||
b _0802AB56
|
||||
_0802AB38:
|
||||
movs r1, #4
|
||||
strb r1, [r4, #0xc]
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_0802AB56:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,50 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r2, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _0802ABA6
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bhi _0802AB90
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
strh r1, [r4, #0x24]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r1, #1
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
b _0802ABBA
|
||||
_0802AB90:
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
b _0802ABBA
|
||||
_0802ABA6:
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _0802ABBA
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802ACDC
|
||||
_0802ABBA:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,43 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F69C
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x7a
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0802AC26
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
bne _0802AC44
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
b _0802AC42
|
||||
_0802AC26:
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AC44
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #0x3a
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
_0802AC42:
|
||||
strb r0, [r2]
|
||||
_0802AC44:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,38 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0xa]
|
||||
adds r1, #2
|
||||
movs r0, #0x1b
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0802AD92
|
||||
adds r0, r5, #0
|
||||
bl sub_0802B234
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x1f
|
||||
strb r1, [r4, #0xb]
|
||||
str r5, [r4, #0x50]
|
||||
str r4, [r5, #0x54]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0802AD92
|
||||
subs r1, #7
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
_0802AD92:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,78 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802ADFA
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0802ADFA:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802AE1E
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _0802AE68
|
||||
_0802AE1E:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AE54
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #0x18
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _0802AE62
|
||||
_0802AE54:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802AE62:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802AE68:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,71 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0802B17A
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
_0802B17A:
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802B190
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0802B190:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802B1AA
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
b _0802B1EC
|
||||
_0802B1AA:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802B1D8
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #0x18
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _0802B1E6
|
||||
_0802B1D8:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802B1E6:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802B1EC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,207 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x20
|
||||
adds r6, r0, #0
|
||||
adds r3, r1, #0
|
||||
ldr r0, _08054138 @ =gRoomVars
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r0, #1
|
||||
bne _08054126
|
||||
b _080542CC
|
||||
_08054126:
|
||||
ldr r2, _0805413C @ =gUnk_08001A1C
|
||||
movs r4, #0
|
||||
cmp r3, #0x18
|
||||
bhi _080541BC
|
||||
lsls r0, r3, #2
|
||||
ldr r1, _08054140 @ =_08054144
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08054138: .4byte gRoomVars
|
||||
_0805413C: .4byte gUnk_08001A1C
|
||||
_08054140: .4byte _08054144
|
||||
_08054144: @ jump table
|
||||
.4byte _080541BC @ case 0
|
||||
.4byte _080541A8 @ case 1
|
||||
.4byte _080541A8 @ case 2
|
||||
.4byte _080541A8 @ case 3
|
||||
.4byte _080541A8 @ case 4
|
||||
.4byte _080541A8 @ case 5
|
||||
.4byte _080541A8 @ case 6
|
||||
.4byte _080541A8 @ case 7
|
||||
.4byte _080541A8 @ case 8
|
||||
.4byte _080541A8 @ case 9
|
||||
.4byte _080541A8 @ case 10
|
||||
.4byte _080541A8 @ case 11
|
||||
.4byte _080541A8 @ case 12
|
||||
.4byte _080541BC @ case 13
|
||||
.4byte _080541BC @ case 14
|
||||
.4byte _080541BA @ case 15
|
||||
.4byte _080541B4 @ case 16
|
||||
.4byte _080541B4 @ case 17
|
||||
.4byte _080541B4 @ case 18
|
||||
.4byte _080541B4 @ case 19
|
||||
.4byte _080541B4 @ case 20
|
||||
.4byte _080541B4 @ case 21
|
||||
.4byte _080541B4 @ case 22
|
||||
.4byte _080541B4 @ case 23
|
||||
.4byte _080541B4 @ case 24
|
||||
_080541A8:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541B0 @ =gUnk_0800137C
|
||||
adds r4, r1, r0
|
||||
b _080541BC
|
||||
.align 2, 0
|
||||
_080541B0: .4byte gUnk_0800137C
|
||||
_080541B4:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541D0 @ =gUnk_0800161C
|
||||
adds r2, r1, r0
|
||||
_080541BA:
|
||||
ldr r4, _080541D4 @ =gUnk_02034398
|
||||
_080541BC:
|
||||
cmp r4, #0
|
||||
bne _080541C2
|
||||
b _080542CC
|
||||
_080541C2:
|
||||
ldr r0, _080541D8 @ =gSave
|
||||
adds r0, #0xb3
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _080541E0
|
||||
ldr r3, _080541DC @ =gUnk_08001A1C
|
||||
b _080541E6
|
||||
.align 2, 0
|
||||
_080541D0: .4byte gUnk_0800161C
|
||||
_080541D4: .4byte gUnk_02034398
|
||||
_080541D8: .4byte gSave
|
||||
_080541DC: .4byte gUnk_08001A1C
|
||||
_080541E0:
|
||||
lsls r1, r1, #5
|
||||
ldr r0, _080542BC @ =0x080014E4
|
||||
adds r3, r1, r0
|
||||
_080541E6:
|
||||
mov r0, sp
|
||||
adds r1, r4, #0
|
||||
bl sub_08000F14
|
||||
ldr r4, _080542C0 @ =gSave
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #8
|
||||
bhi _08054204
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #8]
|
||||
adds r0, #5
|
||||
strh r0, [r1, #8]
|
||||
_08054204:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08054218
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xc]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xc]
|
||||
_08054218:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xad
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0805422C
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xe]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xe]
|
||||
_0805422C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0xa
|
||||
bhi _08054240
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #4]
|
||||
_08054240:
|
||||
ldr r2, _080542C4 @ =gUnk_08001A1C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xbb
|
||||
ldrb r0, [r0]
|
||||
adds r3, r2, #0
|
||||
cmp r0, #0
|
||||
beq _08054250
|
||||
adds r2, #0x20
|
||||
_08054250:
|
||||
movs r1, #0x8b
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0805425E
|
||||
adds r3, #0x40
|
||||
_0805425E:
|
||||
mov r0, sp
|
||||
mov r1, sp
|
||||
bl sub_08000F2C
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
adds r2, r0, #0
|
||||
asrs r5, r2, #0x18
|
||||
movs r0, #0xf
|
||||
ands r5, r0
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl __modsi3
|
||||
adds r2, r0, #0
|
||||
movs r3, #0
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r4, #0
|
||||
ldrsh r1, [r0, r4]
|
||||
cmp r1, r2
|
||||
bgt _080542A6
|
||||
movs r4, #0xf
|
||||
_0805428E:
|
||||
adds r3, #1
|
||||
adds r5, #1
|
||||
ands r5, r4
|
||||
cmp r3, #0xf
|
||||
bhi _080542A6
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r7, #0
|
||||
ldrsh r0, [r0, r7]
|
||||
adds r1, r1, r0
|
||||
cmp r1, r2
|
||||
ble _0805428E
|
||||
_080542A6:
|
||||
ldr r0, _080542C8 @ =gUnk_080FE1B4
|
||||
adds r0, r5, r0
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _080542CC
|
||||
adds r0, r6, #0
|
||||
movs r2, #0
|
||||
bl CreateItemDrop
|
||||
b _080542CE
|
||||
.align 2, 0
|
||||
_080542BC: .4byte 0x080014E4
|
||||
_080542C0: .4byte gSave
|
||||
_080542C4: .4byte gUnk_08001A1C
|
||||
_080542C8: .4byte gUnk_080FE1B4
|
||||
_080542CC:
|
||||
movs r0, #0
|
||||
_080542CE:
|
||||
add sp, #0x20
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
@@ -0,0 +1,56 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
mov r8, r0
|
||||
adds r4, r1, #0
|
||||
bl sub_0805E5A8
|
||||
ldr r5, _080575E8 @ =gUnk_03004030
|
||||
ldrb r0, [r5, #9]
|
||||
strb r0, [r5, #0xa]
|
||||
ldr r3, _080575EC @ =gRoomControls
|
||||
ldrb r0, [r3, #4]
|
||||
strb r0, [r5, #9]
|
||||
ldr r1, _080575F0 @ =gScreenTransition
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r1, #0xc]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r1, #0xd]
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r3, #4]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r3, #5]
|
||||
str r4, [r5]
|
||||
ldr r6, _080575F4 @ =gPlayerEntity
|
||||
ldrh r1, [r6, #0x2e]
|
||||
ldrh r0, [r3, #6]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
lsls r0, r0, #4
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #4]
|
||||
ldrh r1, [r6, #0x32]
|
||||
ldrh r0, [r3, #8]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r2
|
||||
lsrs r0, r0, #2
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #6]
|
||||
ldrb r0, [r4, #3]
|
||||
bl sub_08080930
|
||||
mov r0, r8
|
||||
bl DeleteManager
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080575E8: .4byte gUnk_03004030
|
||||
_080575EC: .4byte gRoomControls
|
||||
_080575F0: .4byte gScreenTransition
|
||||
_080575F4: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -0,0 +1,37 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080579F0 @ =gUnk_081081E4
|
||||
adds r0, r4, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
lsls r1, r4, #6
|
||||
ldr r0, _080579F4 @ =gUnk_081080A4
|
||||
adds r1, r1, r0
|
||||
movs r3, #0
|
||||
ldr r2, _080579F8 @ =0x040000D4
|
||||
ldr r6, _080579FC @ =gGlobalGfxAndPalettes
|
||||
ldr r5, _08057A00 @ =0x84000400
|
||||
_080579D4:
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r6
|
||||
str r0, [r2]
|
||||
ldr r0, [r1, #4]
|
||||
str r0, [r2, #4]
|
||||
str r5, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r3, #1
|
||||
adds r1, #8
|
||||
cmp r3, #7
|
||||
bls _080579D4
|
||||
ldr r0, _08057A04 @ =gRoomVars
|
||||
strb r4, [r0, #0x10]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080579F0: .4byte gUnk_081081E4
|
||||
_080579F4: .4byte gUnk_081080A4
|
||||
_080579F8: .4byte 0x040000D4
|
||||
_080579FC: .4byte gGlobalGfxAndPalettes
|
||||
_08057A00: .4byte 0x84000400
|
||||
_08057A04: .4byte gRoomVars
|
||||
.syntax divided
|
||||
@@ -0,0 +1,24 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08050384
|
||||
adds r4, #0x68
|
||||
movs r1, #0
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, _0806E520 @ =gUnk_020227E8
|
||||
ldr r2, _0806E524 @ =0x00202020
|
||||
bl sub_08057044
|
||||
ldr r0, _0806E528 @ =0x00003302
|
||||
ldr r1, _0806E52C @ =gUnk_081146B8
|
||||
bl sub_0805F46C
|
||||
ldr r1, _0806E530 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0806E520: .4byte gUnk_020227E8
|
||||
_0806E524: .4byte 0x00202020
|
||||
_0806E528: .4byte 0x00003302
|
||||
_0806E52C: .4byte gUnk_081146B8
|
||||
_0806E530: .4byte gScreen
|
||||
.syntax divided
|
||||
@@ -0,0 +1,98 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _080A984A
|
||||
bl DeleteThisEntity
|
||||
_080A984A:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _080A9856
|
||||
bl DeleteThisEntity
|
||||
b _080A989A
|
||||
_080A9856:
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r5, #0x14]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A9884
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
rsbs r2, r2, #0
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
b _080A989A
|
||||
_080A9884:
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
_080A989A:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A98F8
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _080A98B0
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
b _080A98F8
|
||||
_080A98B0:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A98F8
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
movs r2, #0x40
|
||||
movs r0, #0x40
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsls r1, r0, #2
|
||||
strb r1, [r4, #0x15]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1a
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x1b]
|
||||
ldr r0, _080A98FC @ =gUnk_080FD150
|
||||
str r0, [r4, #0x48]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_080AA3E0
|
||||
_080A98F8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A98FC: .4byte gUnk_080FD150
|
||||
.syntax divided
|
||||
@@ -1,4 +1,155 @@
|
||||
.syntax unified
|
||||
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r2, r1, #0
|
||||
ldr r4, _0806E3F8 @ =gInput
|
||||
ldrh r1, [r4, #2]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E3FC
|
||||
bl sub_08050384
|
||||
b _0806E4EA
|
||||
.align 2, 0
|
||||
_0806E3F8: .4byte gInput
|
||||
_0806E3FC:
|
||||
ldrb r0, [r2, #0x18]
|
||||
adds r1, r0, #0
|
||||
mov r6, r8
|
||||
adds r6, #0x6c
|
||||
cmp r1, #0
|
||||
bne _0806E414
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0x18]
|
||||
strh r1, [r6]
|
||||
mov r0, r8
|
||||
bl sub_0806EABC
|
||||
_0806E414:
|
||||
ldrh r2, [r4, #4]
|
||||
movs r0, #0xc0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0806E466
|
||||
mov r1, r8
|
||||
adds r1, #0x68
|
||||
movs r0, #0
|
||||
ldrsh r4, [r1, r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r2
|
||||
adds r7, r1, #0
|
||||
cmp r0, #0
|
||||
beq _0806E434
|
||||
adds r4, #1
|
||||
b _0806E436
|
||||
_0806E434:
|
||||
subs r4, #1
|
||||
_0806E436:
|
||||
cmp r4, #0
|
||||
bgt _0806E43C
|
||||
movs r4, #1
|
||||
_0806E43C:
|
||||
movs r5, #0x1c
|
||||
movs r0, #0x55
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0806E44A
|
||||
movs r5, #0x34
|
||||
_0806E44A:
|
||||
cmp r4, r5
|
||||
ble _0806E450
|
||||
adds r4, r5, #0
|
||||
_0806E450:
|
||||
strh r4, [r7]
|
||||
mov r0, r8
|
||||
bl sub_0806EABC
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806E466
|
||||
subs r0, r1, #1
|
||||
strh r0, [r6]
|
||||
_0806E466:
|
||||
ldr r0, _0806E4B4 @ =gInput
|
||||
ldrh r1, [r0, #2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E4C6
|
||||
mov r5, r8
|
||||
adds r5, #0x68
|
||||
mov r7, r8
|
||||
adds r7, #0x6a
|
||||
movs r0, #0
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r7, r2]
|
||||
cmp r1, r0
|
||||
bne _0806E48E
|
||||
movs r1, #0
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, #0
|
||||
bne _0806E4BC
|
||||
_0806E48E:
|
||||
ldr r4, _0806E4B8 @ =gUnk_081145E4
|
||||
movs r2, #0
|
||||
ldrsh r0, [r5, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
bl SoundReq
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r7]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r5, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r4, #2
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r6]
|
||||
b _0806E4C6
|
||||
.align 2, 0
|
||||
_0806E4B4: .4byte gInput
|
||||
_0806E4B8: .4byte gUnk_081145E4
|
||||
_0806E4BC:
|
||||
ldr r0, _0806E4F0 @ =0x80010000
|
||||
bl SoundReq
|
||||
movs r0, #0
|
||||
strh r0, [r7]
|
||||
_0806E4C6:
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806E4E4
|
||||
subs r0, r1, #1
|
||||
movs r1, #0
|
||||
strh r0, [r6]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bgt _0806E4E4
|
||||
mov r0, r8
|
||||
adds r0, #0x6a
|
||||
strh r1, [r0]
|
||||
strh r1, [r6]
|
||||
_0806E4E4:
|
||||
ldr r1, _0806E4F4 @ =gActiveScriptInfo
|
||||
movs r0, #0
|
||||
strb r0, [r1, #6]
|
||||
_0806E4EA:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806E4F0: .4byte 0x80010000
|
||||
_0806E4F4: .4byte gActiveScriptInfo
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
@@ -179,4 +330,5 @@ _0806EAAA:
|
||||
.align 2, 0
|
||||
_0806EAB4: .4byte 0x80010000
|
||||
_0806EAB8: .4byte gActiveScriptInfo
|
||||
.endif
|
||||
.syntax divided
|
||||
|
||||
@@ -18,7 +18,11 @@
|
||||
ldrb r1, [r4, #0x15]
|
||||
cmp r0, r1
|
||||
bne _08038330
|
||||
.ifdef EU
|
||||
movs r0, #0x1e
|
||||
.else
|
||||
movs r0, #0x5a
|
||||
.endif
|
||||
strb r0, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
bl sub_080383AC
|
||||
|
||||
@@ -2,16 +2,40 @@
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
movs r4, #3
|
||||
.ifdef JP
|
||||
movs r0, #0xd7
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xd7
|
||||
.else
|
||||
movs r0, #0xda
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _08063896
|
||||
movs r4, #0
|
||||
.ifdef JP
|
||||
movs r0, #0xd7
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xd7
|
||||
.else
|
||||
movs r0, #0xda
|
||||
.endif
|
||||
.endif
|
||||
bl SetLocalFlag
|
||||
b _080638D6
|
||||
_08063896:
|
||||
.ifdef JP
|
||||
movs r0, #0xce
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xce
|
||||
.else
|
||||
movs r0, #0xd1
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _080638D6
|
||||
@@ -32,7 +56,15 @@ _080638B2:
|
||||
cmp r5, #0x81
|
||||
ble _080638D6
|
||||
movs r4, #2
|
||||
.ifdef JP
|
||||
movs r0, #0xce
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xce
|
||||
.else
|
||||
movs r0, #0xd1
|
||||
.endif
|
||||
.endif
|
||||
bl SetLocalFlag
|
||||
ldr r0, _080638FC @ =0x00000A17
|
||||
movs r1, #1
|
||||
|
||||
@@ -2,12 +2,28 @@
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r5, #1
|
||||
.ifdef JP
|
||||
movs r0, #0xd6
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xd6
|
||||
.else
|
||||
movs r0, #0xd9
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0806392E
|
||||
movs r5, #0
|
||||
.ifdef JP
|
||||
movs r0, #0xd6
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xd6
|
||||
.else
|
||||
movs r0, #0xd9
|
||||
.endif
|
||||
.endif
|
||||
bl SetLocalFlag
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
|
||||
@@ -1,4 +1,185 @@
|
||||
.syntax unified
|
||||
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r4, r0, #0
|
||||
mov r8, r1
|
||||
movs r6, #1
|
||||
ldr r0, _08064E14 @ =gRoomVars
|
||||
ldrb r5, [r0, #6]
|
||||
movs r0, #0
|
||||
mov sb, r0
|
||||
cmp r5, #0x66
|
||||
beq _08064E8E
|
||||
cmp r5, #0x66
|
||||
bhi _08064E1E
|
||||
cmp r5, #0x61
|
||||
beq _08064E94
|
||||
cmp r5, #0x61
|
||||
bhi _08064E18
|
||||
cmp r5, #0xd
|
||||
beq _08064E44
|
||||
b _08064EAA
|
||||
.align 2, 0
|
||||
_08064E14: .4byte gRoomVars
|
||||
_08064E18:
|
||||
cmp r5, #0x64
|
||||
beq _08064E88
|
||||
b _08064EAA
|
||||
_08064E1E:
|
||||
cmp r5, #0x6c
|
||||
blo _08064EAA
|
||||
cmp r5, #0x6d
|
||||
bls _08064E60
|
||||
cmp r5, #0x6f
|
||||
bhi _08064EAA
|
||||
ldr r2, _08064E3C @ =gQuiverSizes
|
||||
ldr r1, _08064E40 @ =gSave
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xaf
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r2
|
||||
adds r1, #0xad
|
||||
b _08064E6E
|
||||
.align 2, 0
|
||||
_08064E3C: .4byte gQuiverSizes
|
||||
_08064E40: .4byte gSave
|
||||
_08064E44:
|
||||
movs r0, #0xd
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
bne _08064E58
|
||||
movs r0, #0xe
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08064EAA
|
||||
_08064E58:
|
||||
ldr r0, _08064E5C @ =0x00002C0B
|
||||
b _08064F32
|
||||
.align 2, 0
|
||||
_08064E5C: .4byte 0x00002C0B
|
||||
_08064E60:
|
||||
ldr r2, _08064E7C @ =gBombBagSizes
|
||||
ldr r1, _08064E80 @ =gSave
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xae
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r2
|
||||
adds r1, #0xac
|
||||
_08064E6E:
|
||||
ldrb r0, [r0]
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bhi _08064EAA
|
||||
ldr r0, _08064E84 @ =0x00002C0E
|
||||
b _08064F32
|
||||
.align 2, 0
|
||||
_08064E7C: .4byte gBombBagSizes
|
||||
_08064E80: .4byte gSave
|
||||
_08064E84: .4byte 0x00002C0E
|
||||
_08064E88:
|
||||
movs r1, #0x55
|
||||
mov sb, r1
|
||||
b _08064EAA
|
||||
_08064E8E:
|
||||
movs r0, #0x56
|
||||
mov sb, r0
|
||||
b _08064EAA
|
||||
_08064E94:
|
||||
ldr r0, _08064F04 @ =gSave
|
||||
adds r0, #0xc2
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _08064F08 @ =0x000003E6
|
||||
cmp r1, r0
|
||||
bls _08064EAA
|
||||
ldr r0, _08064F0C @ =0x00002C0E
|
||||
adds r1, r4, #0
|
||||
bl TextboxNoOverlap
|
||||
movs r6, #0
|
||||
_08064EAA:
|
||||
cmp r6, #0
|
||||
beq _08064F38
|
||||
adds r0, r5, #0
|
||||
bl GetItemPrice
|
||||
adds r6, r0, #0
|
||||
ldr r7, _08064F04 @ =gSave
|
||||
adds r0, r7, #0
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r6, r0
|
||||
bhi _08064F30
|
||||
rsbs r0, r6, #0
|
||||
bl ModRupees
|
||||
ldr r4, _08064F10 @ =gRoomVars
|
||||
ldrb r1, [r4, #7]
|
||||
adds r0, r5, #0
|
||||
movs r2, #2
|
||||
bl sub_080A7C18
|
||||
movs r0, #0
|
||||
strb r0, [r4, #6]
|
||||
strb r0, [r4, #7]
|
||||
movs r0, #1
|
||||
mov r1, r8
|
||||
str r0, [r1, #0x14]
|
||||
mov r0, sb
|
||||
cmp r0, #0
|
||||
beq _08064EEA
|
||||
bl SetLocalFlag
|
||||
_08064EEA:
|
||||
ldr r1, [r7, #0x5c]
|
||||
movs r0, #2
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bhi _08064EF8
|
||||
adds r0, r1, #1
|
||||
str r0, [r7, #0x5c]
|
||||
_08064EF8:
|
||||
ldr r0, [r7, #0x5c]
|
||||
cmp r0, #9
|
||||
bls _08064F18
|
||||
ldr r0, _08064F14 @ =0x00002C11
|
||||
b _08064F26
|
||||
.align 2, 0
|
||||
_08064F04: .4byte gSave
|
||||
_08064F08: .4byte 0x000003E6
|
||||
_08064F0C: .4byte 0x00002C0E
|
||||
_08064F10: .4byte gRoomVars
|
||||
_08064F14: .4byte 0x00002C11
|
||||
_08064F18:
|
||||
cmp r6, #0x63
|
||||
bls _08064F24
|
||||
ldr r0, _08064F20 @ =0x00002C10
|
||||
b _08064F26
|
||||
.align 2, 0
|
||||
_08064F20: .4byte 0x00002C10
|
||||
_08064F24:
|
||||
ldr r0, _08064F2C @ =0x00002C0F
|
||||
_08064F26:
|
||||
mov r1, r8
|
||||
str r0, [r1, #4]
|
||||
b _08064F3E
|
||||
.align 2, 0
|
||||
_08064F2C: .4byte 0x00002C0F
|
||||
_08064F30:
|
||||
ldr r0, _08064F48 @ =0x00002C0D
|
||||
_08064F32:
|
||||
adds r1, r4, #0
|
||||
bl TextboxNoOverlap
|
||||
_08064F38:
|
||||
movs r0, #0
|
||||
mov r1, r8
|
||||
str r0, [r1, #0x14]
|
||||
_08064F3E:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08064F48: .4byte 0x00002C0D
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
@@ -183,4 +364,5 @@ _080654CE:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080654D8: .4byte 0x00002C0D
|
||||
.endif
|
||||
.syntax divided
|
||||
|
||||
@@ -116,7 +116,15 @@ _0804C206:
|
||||
bne _0804C250
|
||||
movs r0, #1
|
||||
bl sub_080AF250
|
||||
.ifdef JP
|
||||
movs r0, #0x5a
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0x5a
|
||||
.else
|
||||
movs r0, #0x5c
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0804C228
|
||||
|
||||
@@ -67,7 +67,15 @@ _0804DE5C:
|
||||
strh r0, [r1, #0x10]
|
||||
bl sub_08052EA0
|
||||
bl sub_0804AF90
|
||||
.ifdef JP
|
||||
movs r0, #0xca
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xca
|
||||
.else
|
||||
movs r0, #0xcd
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0804DEC4
|
||||
|
||||
@@ -24,7 +24,15 @@ _0804E17C:
|
||||
ldrh r0, [r4, #2]
|
||||
cmp r0, #0
|
||||
bne _0804E168
|
||||
.ifdef JP
|
||||
movs r0, #0xce
|
||||
.else
|
||||
.ifdef EU
|
||||
movs r0, #0xce
|
||||
.else
|
||||
movs r0, #0xd1
|
||||
.endif
|
||||
.endif
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0804E1BA
|
||||
|
||||
@@ -51,9 +51,11 @@ _080567B8:
|
||||
adds r1, #0x89
|
||||
movs r0, #5
|
||||
strb r0, [r1]
|
||||
.ifndef EU
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
bl sub_08056ABC
|
||||
.endif
|
||||
b _08056942
|
||||
.align 2, 0
|
||||
_080567D4: .4byte gUnk_02000040
|
||||
|
||||
@@ -199,10 +199,18 @@ sub_08087640: @ 0x08087640
|
||||
ldr r0, _08087688 @ =gRoomControls
|
||||
ldrh r1, [r0, #4]
|
||||
ldr r0, _0808768C @ =0x00000403
|
||||
.ifdef EU
|
||||
movs r2, #0x17
|
||||
.else
|
||||
movs r2, #0x16
|
||||
.endif
|
||||
cmp r1, r0
|
||||
bne _08087676
|
||||
.ifdef EU
|
||||
movs r2, #0x18
|
||||
.else
|
||||
movs r2, #0x17
|
||||
.endif
|
||||
_08087676:
|
||||
adds r0, r4, #0
|
||||
adds r1, r2, #0
|
||||
|
||||
+103
@@ -30,6 +30,108 @@ _08089870: .4byte gUnk_08120D90
|
||||
|
||||
thumb_func_start sub_08089874
|
||||
sub_08089874: @ 0x08089874
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x38
|
||||
movs r2, #3
|
||||
strb r2, [r0]
|
||||
ldrb r1, [r4, #0xb]
|
||||
cmp r1, #0
|
||||
bne _08089200
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x80
|
||||
bne _080891B4
|
||||
strb r2, [r4, #0xc]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08089AE0
|
||||
b _08089246
|
||||
_080891B4:
|
||||
str r1, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x29
|
||||
movs r2, #0
|
||||
movs r3, #0xff
|
||||
bl CreateObjectWithParent
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _080891FA
|
||||
_080891C8:
|
||||
ldrb r3, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x29
|
||||
movs r2, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r1, r0, #0
|
||||
str r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080891EE
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
ldr r1, [r4, #0x50]
|
||||
cmp r1, #0
|
||||
beq _080891EA
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r1, #0x54]
|
||||
_080891EA:
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r4, #0x50]
|
||||
_080891EE:
|
||||
ldrb r0, [r4, #0xa]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xa]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080891C8
|
||||
_080891FA:
|
||||
bl DeleteThisEntity
|
||||
b _08089246
|
||||
_08089200:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, [r4, #0x50]
|
||||
cmp r0, #0
|
||||
bne _08089214
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
b _0808921C
|
||||
_08089214:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
_0808921C:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0xff
|
||||
bne _0808923A
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08016A30
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x15
|
||||
bl sub_0801D2B4
|
||||
b _08089246
|
||||
_0808923A:
|
||||
ldrb r1, [r4, #0xb]
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r4, #0x36]
|
||||
_08089246:
|
||||
pop {r4, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0x10]
|
||||
@@ -135,6 +237,7 @@ _08089934:
|
||||
_08089940:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08089944
|
||||
sub_08089944: @ 0x08089944
|
||||
|
||||
@@ -728,6 +728,89 @@ sub_08094F98: @ 0x08094F98
|
||||
|
||||
thumb_func_start sub_08094FA8
|
||||
sub_08094FA8: @ 0x08094FA8
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xc]
|
||||
cmp r1, #1
|
||||
beq _080948B4
|
||||
cmp r1, #1
|
||||
bgt _08094890
|
||||
cmp r1, #0
|
||||
beq _0809489A
|
||||
b _08094912
|
||||
_08094890:
|
||||
cmp r1, #2
|
||||
beq _080948E0
|
||||
cmp r1, #3
|
||||
beq _080948FC
|
||||
b _08094912
|
||||
_0809489A:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0x1e]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_080787B4
|
||||
b _08094912
|
||||
_080948B4:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
beq _08094912
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
bl sub_080788E0
|
||||
ldr r0, _080948DC @ =gPlayerState
|
||||
movs r1, #0xc
|
||||
strb r1, [r0, #0xc]
|
||||
adds r0, #0x38
|
||||
movs r1, #0x36
|
||||
strb r1, [r0]
|
||||
b _08094912
|
||||
.align 2, 0
|
||||
_080948DC: .4byte gPlayerState
|
||||
_080948E0:
|
||||
movs r0, #0x36
|
||||
bl GetInventoryValue
|
||||
cmp r0, #2
|
||||
bne _08094912
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _08094912
|
||||
_080948FC:
|
||||
ldr r0, _08094914 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #0xc
|
||||
beq _08094912
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x1c
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl CreateItemEntity
|
||||
_08094912:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08094914: .4byte gPlayerEntity
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
@@ -833,6 +916,7 @@ _08095070:
|
||||
bl sub_08078A90
|
||||
_08095086:
|
||||
pop {r4, pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08095088
|
||||
sub_08095088: @ 0x08095088
|
||||
|
||||
@@ -128,7 +128,11 @@ _08083942:
|
||||
bl sub_0805E3A0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.ifdef EU
|
||||
_08083958: .4byte 0x010277E0
|
||||
.else
|
||||
_08083958: .4byte 0x01027820
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0808395C
|
||||
sub_0808395C: @ 0x0808395C
|
||||
|
||||
@@ -16,14 +16,18 @@ ObjectB5: @ 0x080A0E28
|
||||
movs r0, #1
|
||||
strb r0, [r1, #0xc]
|
||||
_080A0E36:
|
||||
.ifndef EU
|
||||
ldr r0, _080A0E48 @ =gRoomControls
|
||||
str r1, [r0, #0x30]
|
||||
.endif
|
||||
ldr r0, _080A0E4C @ =gPlayerEntity
|
||||
ldr r3, _080A0E50 @ =0xFFD80000
|
||||
movs r2, #0
|
||||
bl PositionRelative
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.ifndef EU
|
||||
_080A0E48: .4byte gRoomControls
|
||||
.endif
|
||||
_080A0E4C: .4byte gPlayerEntity
|
||||
_080A0E50: .4byte 0xFFD80000
|
||||
|
||||
+142
@@ -28,6 +28,147 @@ _080A1700: .4byte gUnk_08124ED0
|
||||
|
||||
thumb_func_start sub_080A1704
|
||||
sub_080A1704: @ 0x080A1704
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov sl, r0
|
||||
movs r0, #0x7b
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _080A0F5A
|
||||
bl DeleteThisEntity
|
||||
_080A0F5A:
|
||||
ldr r0, _080A1050 @ =gEntCount
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x45
|
||||
bhi _080A1044
|
||||
movs r0, #0x40
|
||||
bl zMalloc
|
||||
adds r7, r0, #0
|
||||
cmp r7, #0
|
||||
beq _080A1044
|
||||
movs r6, #0
|
||||
movs r0, #1
|
||||
mov sb, r0
|
||||
mov r2, sb
|
||||
mov r1, sl
|
||||
strb r2, [r1, #0xc]
|
||||
str r7, [r1, #0x64]
|
||||
adds r1, #0x6e
|
||||
movs r3, #0
|
||||
mov r8, r3
|
||||
movs r0, #0x96
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r1]
|
||||
mov r0, sl
|
||||
adds r0, #0x6c
|
||||
strh r6, [r0]
|
||||
mov r0, sl
|
||||
str r0, [r7]
|
||||
movs r0, #0x5c
|
||||
movs r1, #0
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
str r7, [r1, #0x64]
|
||||
str r1, [r7, #4]
|
||||
movs r0, #0x5d
|
||||
movs r1, #0
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
ldr r4, _080A1054 @ =gRoomControls
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #2
|
||||
adds r5, r2, #0
|
||||
ldrh r3, [r4, #6]
|
||||
adds r0, r5, r3
|
||||
strh r0, [r1, #0x2e]
|
||||
movs r2, #0xe0
|
||||
lsls r2, r2, #2
|
||||
adds r0, r2, #0
|
||||
ldrh r3, [r4, #8]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r1, #0x32]
|
||||
str r7, [r1, #0x64]
|
||||
str r1, [r7, #8]
|
||||
movs r0, #0x5d
|
||||
movs r1, #1
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
movs r2, #0x98
|
||||
lsls r2, r2, #2
|
||||
adds r0, r2, #0
|
||||
ldrh r3, [r4, #6]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r1, #0x2e]
|
||||
movs r2, #0xd8
|
||||
lsls r2, r2, #2
|
||||
adds r0, r2, #0
|
||||
ldrh r3, [r4, #8]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r1, #0x32]
|
||||
str r7, [r1, #0x64]
|
||||
str r1, [r7, #0xc]
|
||||
ldr r2, _080A1058 @ =gScreen
|
||||
ldr r0, _080A105C @ =0x00001E07
|
||||
strh r0, [r2, #0x2c]
|
||||
ldrh r0, [r2]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #4
|
||||
adds r1, r3, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
mov r0, sl
|
||||
adds r0, #0x70
|
||||
strh r6, [r0]
|
||||
adds r0, #2
|
||||
strh r6, [r0]
|
||||
adds r0, #2
|
||||
mov r1, r8
|
||||
strb r1, [r0]
|
||||
adds r0, #6
|
||||
strb r1, [r0]
|
||||
subs r0, #4
|
||||
movs r1, #0xc0
|
||||
strh r1, [r0]
|
||||
adds r0, #2
|
||||
strh r1, [r0]
|
||||
ldr r0, _080A1060 @ =gScreenTransition
|
||||
adds r0, #0x39
|
||||
mov r2, sb
|
||||
strb r2, [r0]
|
||||
ldr r2, _080A1064 @ =gPlayerState
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xa
|
||||
orrs r0, r1
|
||||
str r0, [r2, #0x30]
|
||||
ldrh r3, [r4, #6]
|
||||
adds r5, r5, r3
|
||||
strh r5, [r2, #0x16]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #2
|
||||
adds r0, r1, #0
|
||||
ldrh r4, [r4, #8]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r2, #0x18]
|
||||
_080A1044:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A1050: .4byte gEntCount
|
||||
_080A1054: .4byte gRoomControls
|
||||
_080A1058: .4byte gScreen
|
||||
_080A105C: .4byte 0x00001E07
|
||||
_080A1060: .4byte gScreenTransition
|
||||
_080A1064: .4byte gPlayerState
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
@@ -178,6 +319,7 @@ _080A183C: .4byte gPlayerState
|
||||
_080A1840: .4byte 0x80100000
|
||||
_080A1844: .4byte gArea
|
||||
_080A1848: .4byte 0x00000864
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A184C
|
||||
sub_080A184C: @ 0x080A184C
|
||||
|
||||
@@ -176,6 +176,502 @@ _080352FA:
|
||||
|
||||
thumb_func_start sub_080352FC
|
||||
sub_080352FC: @ 0x080352FC
|
||||
.ifdef JP
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
movs r6, #1
|
||||
adds r4, r6, #0
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
bne _08035390
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldr r1, [r1, #0xc]
|
||||
adds r1, #0x7d
|
||||
ldrb r2, [r1]
|
||||
mov sb, r0
|
||||
cmp r2, #0
|
||||
beq _080352D0
|
||||
subs r0, r2, #1
|
||||
strb r0, [r1]
|
||||
_080352D0:
|
||||
ldr r3, _08035334 @ =gRoomControls
|
||||
movs r0, #0x84
|
||||
lsls r0, r0, #1
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r3, #6]
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r5, #0x2e]
|
||||
subs r1, r1, r0
|
||||
adds r1, #4
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
ldrh r0, [r3, #8]
|
||||
ldrh r2, [r5, #0x32]
|
||||
subs r0, r0, r2
|
||||
adds r0, #0x8c
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r1, #8
|
||||
bhi _080352FAJP
|
||||
cmp r0, #8
|
||||
bls _08035338
|
||||
_080352FAJP:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r6, [r0, #2]
|
||||
ldrh r0, [r3, #6]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, [r5, #0x2c]
|
||||
subs r0, r0, r1
|
||||
ldrh r1, [r3, #8]
|
||||
adds r1, #0x88
|
||||
lsls r1, r1, #0x10
|
||||
ldr r2, [r5, #0x30]
|
||||
subs r1, r1, r2
|
||||
bl sub_080045DA
|
||||
asrs r0, r0, #3
|
||||
strb r0, [r5, #0x15]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r5, #0x24]
|
||||
adds r0, r5, #0
|
||||
bl ProcessMovement
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
b _080353FA
|
||||
.align 2, 0
|
||||
_08035334: .4byte gRoomControls
|
||||
_08035338:
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0803537C
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #1
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #2
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #3
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #4
|
||||
bl CreateObjectWithParent
|
||||
strb r6, [r5, #0xb]
|
||||
_0803537C:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r4, [r0, #2]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x79
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r7, r1, #0
|
||||
b _080353FA
|
||||
_08035390:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldrb r1, [r1, #1]
|
||||
subs r4, r1, #1
|
||||
mov sb, r0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
cmp r4, #0
|
||||
beq _080353DC
|
||||
mov ip, sb
|
||||
movs r0, #1
|
||||
mov sl, r0
|
||||
lsls r0, r4, #2
|
||||
subs r6, r0, #4
|
||||
movs r1, #3
|
||||
mov r8, r1
|
||||
_080353B2:
|
||||
mov r1, ip
|
||||
ldr r0, [r1]
|
||||
adds r0, #0xc
|
||||
adds r0, r0, r6
|
||||
ldr r3, [r0]
|
||||
ldrb r2, [r3, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
mov r0, sl
|
||||
orrs r1, r0
|
||||
mov r0, r8
|
||||
ands r1, r0
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x18]
|
||||
subs r6, #4
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
bne _080353B2
|
||||
_080353DC:
|
||||
ldr r1, _08035450 @ =gScreenTransition
|
||||
ldr r0, [r1]
|
||||
movs r1, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080353F4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #6
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_080353F4:
|
||||
ldrb r0, [r7]
|
||||
subs r0, #1
|
||||
strb r0, [r7]
|
||||
_080353FA:
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _0803548C
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xd]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x7c
|
||||
ldrb r0, [r4]
|
||||
adds r0, #1
|
||||
strb r0, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_080AE068
|
||||
ldrb r1, [r4]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08035454
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x5f
|
||||
strb r0, [r1]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #1
|
||||
bl InitAnimationForceUpdate
|
||||
b _08035480
|
||||
.align 2, 0
|
||||
_08035450: .4byte gScreenTransition
|
||||
_08035454:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x61
|
||||
strb r0, [r1]
|
||||
ldr r1, _08035498 @ =0x00000109
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf0
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf3
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #2
|
||||
bl InitAnimationForceUpdate
|
||||
_08035480:
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #8
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_0803548C:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08035498: .4byte 0x00000109
|
||||
|
||||
.else
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
movs r6, #1
|
||||
adds r4, r6, #0
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
bne _0803536C
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldr r1, [r1, #0xc]
|
||||
adds r1, #0x7d
|
||||
ldrb r2, [r1]
|
||||
mov sb, r0
|
||||
cmp r2, #0
|
||||
beq _080352AC
|
||||
subs r0, r2, #1
|
||||
strb r0, [r1]
|
||||
_080352AC:
|
||||
ldr r3, _08035310 @ =gRoomControls
|
||||
movs r0, #0x84
|
||||
lsls r0, r0, #1
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r3, #6]
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r5, #0x2e]
|
||||
subs r1, r1, r0
|
||||
adds r1, #4
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
ldrh r0, [r3, #8]
|
||||
ldrh r2, [r5, #0x32]
|
||||
subs r0, r0, r2
|
||||
adds r0, #0x8c
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r1, #8
|
||||
bhi _080352D6
|
||||
cmp r0, #8
|
||||
bls _08035314
|
||||
_080352D6:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r6, [r0, #2]
|
||||
ldrh r0, [r3, #6]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, [r5, #0x2c]
|
||||
subs r0, r0, r1
|
||||
ldrh r1, [r3, #8]
|
||||
adds r1, #0x88
|
||||
lsls r1, r1, #0x10
|
||||
ldr r2, [r5, #0x30]
|
||||
subs r1, r1, r2
|
||||
bl sub_080045DA
|
||||
asrs r0, r0, #3
|
||||
strb r0, [r5, #0x15]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r5, #0x24]
|
||||
adds r0, r5, #0
|
||||
bl ProcessMovement
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
b _080353D6
|
||||
.align 2, 0
|
||||
_08035310: .4byte gRoomControls
|
||||
_08035314:
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08035358
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #1
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #2
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #3
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #4
|
||||
bl CreateObjectWithParent
|
||||
strb r6, [r5, #0xb]
|
||||
_08035358:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r4, [r0, #2]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x79
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r7, r1, #0
|
||||
b _080353D6
|
||||
_0803536C:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldrb r1, [r1, #1]
|
||||
subs r4, r1, #1
|
||||
mov sb, r0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
cmp r4, #0
|
||||
beq _080353B8
|
||||
mov ip, sb
|
||||
movs r0, #1
|
||||
mov sl, r0
|
||||
lsls r0, r4, #2
|
||||
subs r6, r0, #4
|
||||
movs r1, #3
|
||||
mov r8, r1
|
||||
_0803538E:
|
||||
mov r1, ip
|
||||
ldr r0, [r1]
|
||||
adds r0, #0xc
|
||||
adds r0, r0, r6
|
||||
ldr r3, [r0]
|
||||
ldrb r2, [r3, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
mov r0, sl
|
||||
orrs r1, r0
|
||||
mov r0, r8
|
||||
ands r1, r0
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x18]
|
||||
subs r6, #4
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
bne _0803538E
|
||||
_080353B8:
|
||||
ldr r1, _0803542C @ =gScreenTransition
|
||||
ldr r0, [r1]
|
||||
movs r1, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080353D0
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #6
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_080353D0:
|
||||
ldrb r0, [r7]
|
||||
subs r0, #1
|
||||
strb r0, [r7]
|
||||
_080353D6:
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _08035468
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xd]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x7c
|
||||
ldrb r0, [r4]
|
||||
adds r0, #1
|
||||
strb r0, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_080AE068
|
||||
ldrb r1, [r4]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08035430
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x5f
|
||||
strb r0, [r1]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #1
|
||||
bl InitAnimationForceUpdate
|
||||
b _0803545C
|
||||
.align 2, 0
|
||||
_0803542C: .4byte gScreenTransition
|
||||
_08035430:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x61
|
||||
strb r0, [r1]
|
||||
ldr r1, _08035474 @ =0x00000109
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf0
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf3
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #2
|
||||
bl InitAnimationForceUpdate
|
||||
_0803545C:
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #8
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_08035468:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08035474: .4byte 0x00000109
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
@@ -421,6 +917,8 @@ _080354E8:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080354F4: .4byte 0x00000109
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080354F8
|
||||
sub_080354F8: @ 0x080354F8
|
||||
|
||||
@@ -199,3 +199,7 @@ _080A31FC:
|
||||
_080A3200:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -66,6 +66,109 @@ _0801B4C4: .4byte 0xFFFFE000
|
||||
|
||||
thumb_func_start sub_0801B4C8
|
||||
sub_0801B4C8: @ 0x0801B4C8
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r3, _0801B564 @ =gPlayerState
|
||||
str r4, [r3, #0x2c]
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, _0801B568 @ =gUnk_081271CC
|
||||
str r0, [r4, #0x48]
|
||||
movs r0, #0xff
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strb r2, [r0]
|
||||
ldr r5, _0801B56C @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
movs r0, #0xb
|
||||
strb r0, [r1]
|
||||
str r5, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
strh r2, [r0]
|
||||
ldrb r1, [r4, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801B550
|
||||
ldrb r0, [r5, #0x18]
|
||||
lsls r0, r0, #0x19
|
||||
lsrs r0, r0, #0x1f
|
||||
movs r1, #1
|
||||
bics r1, r0
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0801B550:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xc
|
||||
bne _0801B570
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x3c
|
||||
b _0801B578
|
||||
.align 2, 0
|
||||
_0801B564: .4byte gPlayerState
|
||||
_0801B568: .4byte gUnk_081271CC
|
||||
_0801B56C: .4byte gPlayerEntity
|
||||
_0801B570:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x1e
|
||||
_0801B578:
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r3, #0xd]
|
||||
movs r0, #0xd
|
||||
ldrsb r0, [r3, r0]
|
||||
cmp r0, #0
|
||||
blt _0801B588
|
||||
strb r1, [r4, #0x15]
|
||||
b _0801B58E
|
||||
_0801B588:
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r4, #0x15]
|
||||
_0801B58E:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _0801B5A4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xb]
|
||||
_0801B5A4:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #3
|
||||
bl sub_080AE008
|
||||
adds r0, r4, #0
|
||||
bl sub_0801766C
|
||||
adds r0, r4, #0
|
||||
bl sub_0801B584
|
||||
pop {r4, r5, pc}
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r3, _0801B52C @ =gPlayerState
|
||||
@@ -161,6 +264,7 @@ _0801B56C:
|
||||
adds r0, r4, #0
|
||||
bl sub_0801B584
|
||||
pop {r4, r5, pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0801B584
|
||||
sub_0801B584: @ 0x0801B584
|
||||
|
||||
@@ -166,7 +166,15 @@ sub_0801BB2C: @ 0x0801BB2C
|
||||
ldrb r0, [r5, #0xb]
|
||||
adds r1, r4, #0
|
||||
movs r2, #5
|
||||
.ifdef JP
|
||||
bl CreateItemEntity
|
||||
.else
|
||||
.ifdef EU
|
||||
bl CreateItemEntity
|
||||
.else
|
||||
bl sub_080A7C18
|
||||
.endif
|
||||
.endif
|
||||
ldr r0, _0801BB8C @ =0x00000109
|
||||
bl SoundReq
|
||||
_0801BB64:
|
||||
|
||||
+112
-1
@@ -4,7 +4,117 @@
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
.ifdef DEMO
|
||||
thumb_func_start sub_0807CA18
|
||||
sub_0807CA18:
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r4, _0807CA38 @ =0x02002A40
|
||||
ldrh r1, [r4, #0x00]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x01
|
||||
cmp r1, r0
|
||||
beq _0807C9BA
|
||||
movs r2, #0x00
|
||||
strb r2, [r4, #0x00]
|
||||
movs r3, #0x01
|
||||
strb r3, [r4, #0x01]
|
||||
strb r3, [r4, #0x08]
|
||||
adds r1, r4, #0x0
|
||||
adds r1, #0xAA
|
||||
movs r0, #0x18
|
||||
strb r0, [r1, #0x00]
|
||||
adds r1, #0x01
|
||||
strb r0, [r1, #0x00]
|
||||
subs r1, #0x23
|
||||
movs r0, #0x22
|
||||
strb r0, [r1, #0x00]
|
||||
adds r1, #0x01
|
||||
movs r0, #0x15
|
||||
strb r0, [r1, #0x00]
|
||||
adds r0, r4, #0x0
|
||||
adds r0, #0x8A
|
||||
strb r2, [r0, #0x00]
|
||||
adds r0, #0x01
|
||||
strb r2, [r0, #0x00]
|
||||
adds r0, #0x05
|
||||
strb r3, [r0, #0x00]
|
||||
adds r1, #0x03
|
||||
movs r0, #0x90
|
||||
strh r0, [r1, #0x00]
|
||||
adds r1, #0x02
|
||||
movs r0, #0x38
|
||||
strh r0, [r1, #0x00]
|
||||
_0807C9BA:
|
||||
adds r5, r4, #0x0
|
||||
adds r5, #0x80
|
||||
ldrb r0, [r5, #0x00]
|
||||
cmp r0, #0x00
|
||||
bne _0807C9CE
|
||||
ldr r0, _0807CA3C @ =0x0811DFF4
|
||||
adds r1, r5, #0x0
|
||||
movs r2, #0x05
|
||||
bl MemCopy
|
||||
_0807C9CE:
|
||||
ldr r1, _0807CA40 @ =0x0811EF10
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #0x12
|
||||
ldrb r0, [r6, #0x04]
|
||||
lsls r0, r0, #0x02
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0, #0x00]
|
||||
ldr r2, _0807CA44 @ =0x000004B4
|
||||
adds r1, r4, #0x0
|
||||
bl MemCopy
|
||||
ldrb r0, [r6, #0x07]
|
||||
adds r2, r0, #0x0
|
||||
cmp r2, #0x00
|
||||
bne _0807CA04
|
||||
movs r0, #0x97
|
||||
strb r0, [r5, #0x00]
|
||||
adds r1, r4, #0x0
|
||||
adds r1, #0x81
|
||||
movs r0, #0x7F
|
||||
strb r0, [r1, #0x00]
|
||||
adds r1, #0x01
|
||||
movs r0, #0xDD
|
||||
strb r0, [r1, #0x00]
|
||||
adds r0, r4, #0x0
|
||||
adds r0, #0x83
|
||||
strb r2, [r0, #0x00]
|
||||
_0807CA04:
|
||||
movs r0, #0xA0
|
||||
bl ModHealth
|
||||
ldr r0, _0807CA48 @ =0xFFFFD8F1
|
||||
bl ModRupees
|
||||
ldr r0, _0807CA4C @ =0x02000010
|
||||
ldrb r1, [r0, #0x07]
|
||||
lsls r0, r1, #0x01
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0807CA50 @ =0x0811DFF9
|
||||
adds r0, r0, r1
|
||||
movs r1, #0x95
|
||||
lsls r1, r1, #0x03
|
||||
adds r2, r4, r1
|
||||
ldrb r1, [r6, #0x04]
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0, #0x00]
|
||||
lsls r0, r1, #0x03
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #0x05
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #0x04
|
||||
str r0, [r2, #0x00]
|
||||
movs r0, #0x01
|
||||
pop {r4, r5, r6, pc}
|
||||
_0807CA38: .4byte gSave
|
||||
_0807CA3C: .4byte gUnk_0811E470
|
||||
_0807CA40: .4byte demoPointers
|
||||
_0807CA44: .4byte 0x000004B4
|
||||
_0807CA48: .4byte 0xFFFFD8F1
|
||||
_0807CA4C: .4byte gUnk_02000010
|
||||
_0807CA50: .4byte demoUnknown1
|
||||
.else
|
||||
thumb_func_start sub_0807CA18
|
||||
sub_0807CA18: @ 0x0807CA18
|
||||
push {lr}
|
||||
@@ -61,3 +171,4 @@ _0807CA78:
|
||||
.align 2, 0
|
||||
_0807CA7C: .4byte gSave
|
||||
_0807CA80: .4byte gUnk_0811E470
|
||||
.endif
|
||||
|
||||
@@ -1004,7 +1004,15 @@ _08042C92:
|
||||
_08042C9E:
|
||||
ldrh r0, [r3, #0x20]
|
||||
adds r0, r1, r0
|
||||
.ifdef JP
|
||||
subs r0, #0x20
|
||||
.else
|
||||
.ifdef EU
|
||||
subs r0, #0x20
|
||||
.else
|
||||
subs r0, #0x40
|
||||
.endif
|
||||
.endif
|
||||
cmp r0, r5
|
||||
bge _08042CAA
|
||||
adds r5, r0, #0
|
||||
@@ -3156,6 +3164,44 @@ _08043C8C:
|
||||
|
||||
thumb_func_start sub_08043C98
|
||||
sub_08043C98: @ 0x08043C98
|
||||
.ifdef JP
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #0x64]
|
||||
ldr r0, [r0, #0xc]
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x9d
|
||||
beq _08043BC4JP
|
||||
movs r0, #0
|
||||
b _08043BCC
|
||||
_08043BC4JP:
|
||||
adds r0, r1, #0
|
||||
bl sub_08043D08
|
||||
movs r0, #1
|
||||
_08043BCC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
.ifdef EU
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #0x64]
|
||||
ldr r0, [r0, #0xc]
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x9d
|
||||
beq _08043AD8
|
||||
movs r0, #0
|
||||
b _08043AE0
|
||||
_08043AD8:
|
||||
adds r0, r1, #0
|
||||
bl sub_08043D08
|
||||
movs r0, #1
|
||||
_08043AE0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r0, [r3, #0x64]
|
||||
@@ -3187,6 +3233,8 @@ _08043CD0:
|
||||
movs r0, #0
|
||||
_08043CD2:
|
||||
pop {pc}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08043CD4
|
||||
sub_08043CD4: @ 0x08043CD4
|
||||
|
||||
@@ -51,6 +51,59 @@ _0803E0D8: .4byte gUnk_080D0660
|
||||
|
||||
thumb_func_start sub_0803E0DC
|
||||
sub_0803E0DC: @ 0x0803E0DC
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x80
|
||||
bne _0803E08E
|
||||
movs r0, #5
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r2, [r5, #0x10]
|
||||
movs r1, #0x7f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
strb r0, [r5, #0x10]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x29
|
||||
ldrb r2, [r3]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
strb r0, [r3]
|
||||
ldr r3, _0803E098 @ =gPlayerEntity
|
||||
ldrb r0, [r3, #0x10]
|
||||
ands r1, r0
|
||||
strb r1, [r3, #0x10]
|
||||
ldrb r2, [r5, #0x1b]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r4, [r3, #0x1b]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r4
|
||||
orrs r0, r2
|
||||
strb r0, [r3, #0x1b]
|
||||
ldrb r0, [r5, #0x19]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r3, #0x19]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r3, #0x19]
|
||||
adds r0, r5, #0
|
||||
bl sub_0803E444
|
||||
_0803E08E:
|
||||
ldr r1, _0803E09C @ =gUnk_080D0648
|
||||
adds r0, r5, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0803E098: .4byte gPlayerEntity
|
||||
_0803E09C: .4byte gUnk_080D0648
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x41
|
||||
@@ -132,6 +185,7 @@ _0803E178: .4byte gPlayerState
|
||||
_0803E17C: .4byte 0xFFFFFEFF
|
||||
_0803E180: .4byte gPlayerEntity
|
||||
_0803E184: .4byte gUnk_080D0648
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0803E188
|
||||
sub_0803E188: @ 0x0803E188
|
||||
@@ -555,6 +609,35 @@ _0803E49E:
|
||||
|
||||
thumb_func_start sub_0803E4A0
|
||||
sub_0803E4A0: @ 0x0803E4A0
|
||||
.ifdef EU
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0803E3CCEU @ =gScreenTransition
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0803E3D0EU
|
||||
movs r0, #1
|
||||
b _0803E3E6
|
||||
.align 2, 0
|
||||
_0803E3CCEU: .4byte gScreenTransition
|
||||
_0803E3D0EU:
|
||||
ldr r0, [r1, #0x50]
|
||||
cmp r0, #0
|
||||
bne _0803E3DA
|
||||
movs r0, #0
|
||||
b _0803E3E6
|
||||
_0803E3DA:
|
||||
movs r1, #0
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
bne _0803E3E4EU
|
||||
movs r1, #1
|
||||
_0803E3E4EU:
|
||||
adds r0, r1, #0
|
||||
_0803E3E6:
|
||||
pop {pc}
|
||||
.else
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0803E4B8 @ =gScreenTransition
|
||||
@@ -588,6 +671,7 @@ _0803E4D4:
|
||||
adds r0, r2, #0
|
||||
_0803E4D6:
|
||||
pop {pc}
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_0803E4D8
|
||||
sub_0803E4D8: @ 0x0803E4D8
|
||||
|
||||
@@ -1141,6 +1141,7 @@ _0803D918:
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r2, r2, r0
|
||||
strh r2, [r4, #0x32]
|
||||
.ifndef EU
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
@@ -1150,6 +1151,7 @@ _0803D918:
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
.endif
|
||||
_0803D968:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
@@ -1273,6 +1273,7 @@ _080400C2:
|
||||
ldrh r0, [r5, #0x32]
|
||||
adds r2, r2, r0
|
||||
strh r2, [r5, #0x32]
|
||||
.ifndef EU
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
@@ -1282,6 +1283,7 @@ _080400C2:
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
.endif
|
||||
movs r0, #0xb7
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
|
||||
@@ -64,6 +64,30 @@ _0804139C: .4byte gUnk_080D0E1C
|
||||
|
||||
thumb_func_start sub_080413A0
|
||||
sub_080413A0: @ 0x080413A0
|
||||
.ifdef JP
|
||||
push {lr}
|
||||
ldr r2, _08041358 @ =gUnk_080D0E2C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08041358: .4byte gUnk_080D0E2C
|
||||
.else
|
||||
.ifdef EU
|
||||
push {lr}
|
||||
ldr r2, _08041288 @ =gUnk_080D0E2C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08041288: .4byte gUnk_080D0E2C
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080423A4
|
||||
@@ -77,6 +101,8 @@ sub_080413A0: @ 0x080413A0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080413BC: .4byte gUnk_080D0E2C
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080413C0
|
||||
sub_080413C0: @ 0x080413C0
|
||||
@@ -1117,6 +1143,98 @@ _08041BE4: .4byte gUnk_080D0E68
|
||||
|
||||
thumb_func_start sub_08041BE8
|
||||
sub_08041BE8: @ 0x08041BE8
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
bl sub_08079F8C
|
||||
cmp r0, #0
|
||||
beq _08041B72
|
||||
movs r5, #0
|
||||
movs r0, #1
|
||||
strb r0, [r6, #0xd]
|
||||
movs r0, #0x78
|
||||
strb r0, [r6, #0xe]
|
||||
ldrb r1, [r6, #0x11]
|
||||
movs r4, #0x10
|
||||
rsbs r4, r4, #0
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
mov r8, r1
|
||||
mov r1, r8
|
||||
orrs r0, r1
|
||||
strb r0, [r6, #0x11]
|
||||
adds r0, r6, #0
|
||||
movs r1, #0xa
|
||||
bl InitAnimationForceUpdate
|
||||
ldr r0, [r6, #0x64]
|
||||
ldr r7, [r0, #4]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #4]
|
||||
ldr r7, [r0, #8]
|
||||
ldrb r0, [r7, #0x11]
|
||||
ands r4, r0
|
||||
mov r0, r8
|
||||
orrs r4, r0
|
||||
strb r4, [r7, #0x11]
|
||||
adds r0, r7, #0
|
||||
bl sub_080AE068
|
||||
ldr r1, _08041B78 @ =0x000001F5
|
||||
adds r0, r7, #0
|
||||
bl LoadFixedGFX
|
||||
ldr r1, _08041B7C @ =0x0000016B
|
||||
adds r0, r7, #0
|
||||
bl sub_0801D2B4
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x1a
|
||||
bl InitializeAnimation
|
||||
ldr r0, [r6, #0x64]
|
||||
ldr r7, [r0, #0xc]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0xc]
|
||||
ldr r7, [r0, #0x1c]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x1c]
|
||||
ldr r7, [r0, #0x20]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x20]
|
||||
ldr r7, [r0, #0x24]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x24]
|
||||
ldr r7, [r0, #0x28]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x28]
|
||||
movs r0, #2
|
||||
bl sub_08078A90
|
||||
_08041B72:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08041B78: .4byte 0x000001F5
|
||||
_08041B7C: .4byte 0x0000016B
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
@@ -1217,6 +1335,7 @@ _08041CC0: .4byte 0x000001F5
|
||||
_08041CC4: .4byte 0x0000016B
|
||||
_08041CC8: .4byte gRoomControls
|
||||
_08041CCC: .4byte gPlayerEntity
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08041CD0
|
||||
sub_08041CD0: @ 0x08041CD0
|
||||
@@ -2130,6 +2249,7 @@ sub_0804235C: @ 0x0804235C
|
||||
bl InitializeAnimation
|
||||
pop {r4, r5, pc}
|
||||
|
||||
.ifdef USA
|
||||
thumb_func_start sub_080423A4
|
||||
sub_080423A4: @ 0x080423A4
|
||||
push {r4, lr}
|
||||
@@ -2196,6 +2316,77 @@ _0804241C:
|
||||
.align 2, 0
|
||||
_08042420: .4byte gPlayerState
|
||||
_08042424: .4byte gPlayerEntity
|
||||
.else
|
||||
.ifdef DEMO
|
||||
@ TODO is there a way to not duplicate this?
|
||||
thumb_func_start sub_080423A4
|
||||
sub_080423A4: @ 0x080423A4
|
||||
push {r4, lr}
|
||||
ldr r0, _080423CC @ =gScreenTransition
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x38
|
||||
ldrb r1, [r4]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0804241C
|
||||
ldr r0, _080423D0 @ =gSave
|
||||
movs r2, #0x93
|
||||
lsls r2, r2, #3
|
||||
adds r1, r0, r2
|
||||
ldr r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080423D4
|
||||
subs r0, #1
|
||||
str r0, [r1]
|
||||
b _0804241C
|
||||
.align 2, 0
|
||||
_080423CC: .4byte gScreenTransition
|
||||
_080423D0: .4byte gSave
|
||||
_080423D4:
|
||||
ldr r2, _08042420 @ =gPlayerState
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xa9
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bgt _0804241C
|
||||
cmp r0, #0
|
||||
blt _0804241C
|
||||
ldr r0, [r2, #0x2c]
|
||||
cmp r0, #0
|
||||
bne _0804241C
|
||||
ldr r1, _08042424 @ =gPlayerEntity
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x7a
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0804241C
|
||||
movs r3, #0x36
|
||||
ldrsh r0, [r1, r3]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0804240A
|
||||
ldrb r0, [r2, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0804241C
|
||||
_0804240A:
|
||||
movs r0, #0xb7
|
||||
lsls r0, r0, #4
|
||||
movs r1, #0
|
||||
bl sub_08078AA8
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
_0804241C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08042420: .4byte gPlayerState
|
||||
_08042424: .4byte gPlayerEntity
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08042428
|
||||
sub_08042428: @ 0x08042428
|
||||
|
||||
@@ -9,6 +9,166 @@
|
||||
|
||||
thumb_func_start WaterfallOpening
|
||||
WaterfallOpening: @ 0x0809FF68
|
||||
.ifdef EU
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xc]
|
||||
cmp r1, #0
|
||||
bne _0809F802
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, _0809F824 @ =gUnk_08124868
|
||||
ldrb r0, [r4, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
movs r0, #0x78
|
||||
strh r0, [r1]
|
||||
_0809F802:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0809F8BC
|
||||
movs r0, #0xff
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _0809F8FE
|
||||
ldrb r2, [r4, #0xd]
|
||||
cmp r2, #1
|
||||
beq _0809F85A
|
||||
cmp r2, #1
|
||||
bgt _0809F828
|
||||
cmp r2, #0
|
||||
beq _0809F82E
|
||||
b _0809F8AE
|
||||
.align 2, 0
|
||||
_0809F824: .4byte gUnk_08124868
|
||||
_0809F828:
|
||||
cmp r2, #2
|
||||
beq _0809F88C
|
||||
b _0809F8AE
|
||||
_0809F82E:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #0x20
|
||||
strh r0, [r1]
|
||||
movs r1, #1
|
||||
strb r1, [r4, #0xe]
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
strb r1, [r4, #0xd]
|
||||
strb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
movs r1, #0xc6
|
||||
lsls r1, r1, #1
|
||||
b _0809F87E
|
||||
_0809F85A:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #0x2d
|
||||
strh r0, [r1]
|
||||
strb r2, [r4, #0xe]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xd]
|
||||
strb r0, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
ldr r1, _0809F888 @ =0x0000018D
|
||||
_0809F87E:
|
||||
adds r0, r4, #0
|
||||
bl LoadFixedGFX
|
||||
b _0809F8AE
|
||||
.align 2, 0
|
||||
_0809F888: .4byte 0x0000018D
|
||||
_0809F88C:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xd]
|
||||
ldr r1, _0809F8B8 @ =gChooseFileState
|
||||
ldrb r0, [r1, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #6]
|
||||
movs r0, #0x73
|
||||
bl SoundReq
|
||||
_0809F8AE:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
b _0809F8FE
|
||||
.align 2, 0
|
||||
_0809F8B8: .4byte gChooseFileState
|
||||
_0809F8BC:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0809F8F8
|
||||
cmp r0, #2
|
||||
bne _0809F8F8
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
bne _0809F8F8
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _0809F900 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r0, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
movs r0, #0x39
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
_0809F8F8:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
_0809F8FE:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0809F900: .4byte gRoomControls
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xc]
|
||||
@@ -169,6 +329,7 @@ _080A00AA:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A00AC: .4byte gRoomControls
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A00B0
|
||||
sub_080A00B0: @ 0x080A00B0
|
||||
|
||||
@@ -115,6 +115,233 @@ _080A0FFE:
|
||||
|
||||
thumb_func_start sub_080A1000
|
||||
sub_080A1000: @ 0x080A1000
|
||||
.ifdef JP
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r2, [r1, #0xd]
|
||||
cmp r2, #1
|
||||
beq _080A0DF2
|
||||
cmp r2, #1
|
||||
bgt _080A0DDC
|
||||
cmp r2, #0
|
||||
beq _080A0DE6
|
||||
b _080A0E50
|
||||
_080A0DDC:
|
||||
cmp r2, #2
|
||||
beq _080A0E00
|
||||
cmp r2, #3
|
||||
beq _080A0E2C
|
||||
b _080A0E50
|
||||
_080A0DE6:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080A0E8C
|
||||
_080A0DF2:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E8C
|
||||
b _080A0E38
|
||||
_080A0E00:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E1E
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A0E8C
|
||||
_080A0E1E:
|
||||
ldr r0, _080A0E28 @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A0E7A
|
||||
.align 2, 0
|
||||
_080A0E28: .4byte 0x030010A0
|
||||
_080A0E2C:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E44
|
||||
_080A0E38:
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
b _080A0E8C
|
||||
_080A0E44:
|
||||
ldr r0, _080A0E4C @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
ands r0, r2
|
||||
b _080A0E7C
|
||||
.align 2, 0
|
||||
_080A0E4C: .4byte 0x030010A0
|
||||
_080A0E50:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E74
|
||||
ldrb r1, [r1, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A0E70 @ =0x0813AA18
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A0E8C
|
||||
.align 2, 0
|
||||
_080A0E70: .4byte 0x0813AA18
|
||||
_080A0E74:
|
||||
ldr r0, _080A0E90 @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A0E7A:
|
||||
ands r0, r1
|
||||
_080A0E7C:
|
||||
cmp r0, #0
|
||||
bne _080A0E8C
|
||||
ldr r0, _080A0E94 @ =0x03001160
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A0E8C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A0E90: .4byte 0x030010A0
|
||||
_080A0E94: .4byte 0x03001160
|
||||
.else
|
||||
.ifdef EU
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r2, [r1, #0xd]
|
||||
cmp r2, #1
|
||||
beq _080A0876
|
||||
cmp r2, #1
|
||||
bgt _080A0860
|
||||
cmp r2, #0
|
||||
beq _080A086A
|
||||
b _080A08D4
|
||||
_080A0860:
|
||||
cmp r2, #2
|
||||
beq _080A0884
|
||||
cmp r2, #3
|
||||
beq _080A08B0
|
||||
b _080A08D4
|
||||
_080A086A:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080A0910
|
||||
_080A0876:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0910
|
||||
b _080A08BC
|
||||
_080A0884:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08A2
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A0910
|
||||
_080A08A2:
|
||||
ldr r0, _080A08AC @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A08FE
|
||||
.align 2, 0
|
||||
_080A08AC: .4byte gScreenTransition
|
||||
_080A08B0:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08C8
|
||||
_080A08BC:
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
b _080A0910
|
||||
_080A08C8:
|
||||
ldr r0, _080A08D0 @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
ands r0, r2
|
||||
b _080A0900
|
||||
.align 2, 0
|
||||
_080A08D0: .4byte gScreenTransition
|
||||
_080A08D4:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08F8
|
||||
ldrb r1, [r1, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A08F4 @ =gUnk_0813ADEC
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A0910
|
||||
.align 2, 0
|
||||
_080A08F4: .4byte gUnk_0813ADEC
|
||||
_080A08F8:
|
||||
ldr r0, _080A0914 @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A08FE:
|
||||
ands r0, r1
|
||||
_080A0900:
|
||||
cmp r0, #0
|
||||
bne _080A0910
|
||||
ldr r0, _080A0918 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A0910:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A0914: .4byte gScreenTransition
|
||||
_080A0918: .4byte gPlayerEntity
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xd]
|
||||
@@ -232,6 +459,8 @@ _080A10D4:
|
||||
.align 2, 0
|
||||
_080A10D8: .4byte gScreenTransition
|
||||
_080A10DC: .4byte gPlayerEntity
|
||||
.endif
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_080A10E0
|
||||
sub_080A10E0: @ 0x080A10E0
|
||||
|
||||
@@ -4,7 +4,12 @@
|
||||
.section .rodata
|
||||
|
||||
gUnk_080CD044:: @ 080CD044
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0CC76C, 0x0000025
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0CD044, 0x0000025
|
||||
.endif
|
||||
|
||||
gUnk_080CD069:: @ 080CD069
|
||||
.incbin "baserom.gba", 0x0CD069, 0x0000007
|
||||
|
||||
@@ -23,10 +23,28 @@ gUnk_0810F60E:: @ 0810F60E
|
||||
.incbin "baserom.gba", 0x10F60E, 0x0000005
|
||||
|
||||
gUnk_0810F613:: @ 0810F613
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x10F2D7, 0x0000007
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x10F2D7, 0x0000007
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10F613, 0x0000007
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810F61A:: @ 0810F61A
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x10F2DE, 0x000002E
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x10F2DE, 0x000002E
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10F61A, 0x000002E
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810F648:: @ 0810F648
|
||||
.incbin "baserom.gba", 0x10F648, 0x000003A
|
||||
|
||||
@@ -8,7 +8,12 @@ gUnk_08124B38:: @ 08124B38
|
||||
.incbin "baserom.gba", 0x124B38, 0x0000071
|
||||
|
||||
gUnk_08124BA9:: @ 08124BA9
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x1242F1, 0x0000053
|
||||
.else
|
||||
.incbin "baserom.gba", 0x124BA9, 0x0000053
|
||||
.endif
|
||||
|
||||
gUnk_08124BFC:: @ 08124BFC
|
||||
.4byte gUnk_08124B38
|
||||
|
||||
@@ -19,7 +19,12 @@ gUnk_080D2C58:: @ 080D2C58
|
||||
.4byte gUnk_080D3B48
|
||||
.incbin "baserom.gba", 0x0D2CB0, 0x000000C
|
||||
.4byte gUnk_080FD150
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D23EC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D2CC0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080D3AC8
|
||||
.incbin "baserom.gba", 0x0D2CD0, 0x000000C
|
||||
.4byte gUnk_080FD1CC
|
||||
@@ -31,7 +36,12 @@ gUnk_080D2C58:: @ 080D2C58
|
||||
.4byte gUnk_080FD468
|
||||
.incbin "baserom.gba", 0x0D2D10, 0x000000C
|
||||
.4byte gUnk_080FD528
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D244C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D2D20, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080D3388
|
||||
.incbin "baserom.gba", 0x0D2D30, 0x000000C
|
||||
.4byte gUnk_080FD150
|
||||
@@ -53,7 +63,12 @@ gUnk_080D2C58:: @ 080D2C58
|
||||
.4byte gUnk_080FD150
|
||||
.incbin "baserom.gba", 0x0D2DC0, 0x000000C
|
||||
.4byte gUnk_080FD268
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D24FC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D2DD0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080D35D8
|
||||
.incbin "baserom.gba", 0x0D2DE0, 0x000000C
|
||||
.4byte gUnk_080FD150
|
||||
@@ -72,7 +87,12 @@ gUnk_080D2E26:: @ 080D2E26
|
||||
.4byte gUnk_080FD150
|
||||
.incbin "baserom.gba", 0x0D2E40, 0x000000C
|
||||
.4byte gUnk_080FD2C0
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D257C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D2E50, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD2C8
|
||||
.incbin "baserom.gba", 0x0D2E60, 0x000000C
|
||||
.4byte gUnk_080FD150
|
||||
@@ -104,7 +124,12 @@ gUnk_080D2E26:: @ 080D2E26
|
||||
.4byte gUnk_080FD150
|
||||
.incbin "baserom.gba", 0x0D2F40, 0x000000C
|
||||
.4byte gUnk_080FD2C0
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D267C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D2F50, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080D3B88
|
||||
.incbin "baserom.gba", 0x0D2F60, 0x000000C
|
||||
.4byte gUnk_080FD410
|
||||
@@ -176,7 +201,12 @@ gUnk_080D2E26:: @ 080D2E26
|
||||
.4byte gUnk_080D3A18
|
||||
.incbin "baserom.gba", 0x0D3180, 0x000000C
|
||||
.4byte gUnk_080FD188
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D28BC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3190, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD1A0
|
||||
.incbin "baserom.gba", 0x0D31A0, 0x000000C
|
||||
.4byte gUnk_080D34D8
|
||||
@@ -186,9 +216,19 @@ gUnk_080D2E26:: @ 080D2E26
|
||||
.4byte gUnk_080D3A98
|
||||
.incbin "baserom.gba", 0x0D31D0, 0x000000C
|
||||
.4byte gUnk_080FD498
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D290C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D31E0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD4A4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D291C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D31F0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080D3B28
|
||||
.incbin "baserom.gba", 0x0D3200, 0x000000C
|
||||
.4byte gUnk_080FD150
|
||||
@@ -198,17 +238,39 @@ gUnk_080D2E26:: @ 080D2E26
|
||||
.4byte gUnk_080FD54C
|
||||
.incbin "baserom.gba", 0x0D3230, 0x000000C
|
||||
.4byte gUnk_080FD150
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D296C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3240, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD448
|
||||
.incbin "baserom.gba", 0x0D3250, 0x000000C
|
||||
.4byte gUnk_080FD448
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D298C, 0x000000C
|
||||
.4byte gUnk_080FD460
|
||||
.incbin "baserom_eu.gba", 0x0D299C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3260, 0x000000C
|
||||
.4byte gUnk_080FD458
|
||||
.incbin "baserom.gba", 0x0D3270, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD150
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D29AC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3280, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD150
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D29BC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3290, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD54C
|
||||
.incbin "baserom.gba", 0x0D32A0, 0x000000C
|
||||
.4byte gUnk_080FD150
|
||||
@@ -252,13 +314,33 @@ gUnk_080D3308:: @ 080D3308
|
||||
gUnk_080D3388:: @ 080D3388
|
||||
.incbin "baserom.gba", 0x0D3388, 0x0000004
|
||||
.4byte gUnk_080FD1DC
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D2ABC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3390, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD1E4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D2ACC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D33A0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD1E4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D2ADC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D33B0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD1EC
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D2AEC, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D33C0, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_080D33C8:: @ 080D33C8
|
||||
.incbin "baserom.gba", 0x0D33C8, 0x0000004
|
||||
@@ -339,9 +421,19 @@ gUnk_080D3508:: @ 080D3508
|
||||
gUnk_080D3598:: @ 080D3598
|
||||
.incbin "baserom.gba", 0x0D3598, 0x0000004
|
||||
.4byte gUnk_080FD150
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D2CCC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D35A0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD150
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D2CDC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D35B0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD150
|
||||
.incbin "baserom.gba", 0x0D35C0, 0x000000C
|
||||
.4byte gUnk_080FD21C
|
||||
@@ -519,9 +611,19 @@ gUnk_080D3978:: @ 080D3978
|
||||
.4byte gUnk_080FD1C4
|
||||
.incbin "baserom.gba", 0x0D39B0, 0x000000C
|
||||
.4byte gUnk_080FD1C4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D30EC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D39C0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD1C4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D30FC, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D39D0, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_080D39D8:: @ 080D39D8
|
||||
.incbin "baserom.gba", 0x0D39D8, 0x0000004
|
||||
@@ -550,20 +652,50 @@ gUnk_080D3A18:: @ 080D3A18
|
||||
gUnk_080D3A68:: @ 080D3A68
|
||||
.incbin "baserom.gba", 0x0D3A68, 0x0000004
|
||||
.4byte gUnk_080FD488
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D319C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3A70, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD488
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D31AC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3A80, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD488
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D31BC, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3A90, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_080D3A98:: @ 080D3A98
|
||||
.incbin "baserom.gba", 0x0D3A98, 0x0000004
|
||||
.4byte gUnk_080FD490
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D31CC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3AA0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD490
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D31DC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3AB0, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD490
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D31EC, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3AC0, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_080D3AC8:: @ 080D3AC8
|
||||
.incbin "baserom.gba", 0x0D3AC8, 0x0000004
|
||||
@@ -586,9 +718,19 @@ gUnk_080D3AE8:: @ 080D3AE8
|
||||
gUnk_080D3B28:: @ 080D3B28
|
||||
.incbin "baserom.gba", 0x0D3B28, 0x0000004
|
||||
.4byte gUnk_080FD168
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D325C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3B30, 0x000000C
|
||||
.endif
|
||||
.4byte gUnk_080FD168
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D326C, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3B40, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_080D3B48:: @ 080D3B48
|
||||
.incbin "baserom.gba", 0x0D3B48, 0x0000004
|
||||
@@ -613,14 +755,24 @@ gUnk_080D3BA8:: @ 080D3BA8
|
||||
.4byte gUnk_080FD258
|
||||
.incbin "baserom.gba", 0x0D3BB0, 0x000000C
|
||||
.4byte gUnk_080FD258
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D32EC, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3BC0, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_080D3BC8:: @ 080D3BC8
|
||||
.incbin "baserom.gba", 0x0D3BC8, 0x0000004
|
||||
.4byte gUnk_080FD258
|
||||
.incbin "baserom.gba", 0x0D3BD0, 0x000000C
|
||||
.4byte gUnk_080FD258
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x0D330C, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D3BE0, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_080D3BE8:: @ 080D3BE8
|
||||
.4byte sub_08049E18
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
.ifdef DEMO
|
||||
@ TODO choose demo screen
|
||||
demoFunctions::
|
||||
.4byte sub_080A2E40
|
||||
.4byte sub_080A2FD0
|
||||
.4byte sub_080A2F8C
|
||||
|
||||
gUnk_08127C98::
|
||||
.incbin "baserom_demo.gba", 0x127c98, 0x30
|
||||
gUnk_08127CC8::
|
||||
.incbin "baserom_demo.gba", 0x127CC8, 0x8
|
||||
.endif
|
||||
@@ -20,16 +20,53 @@ gUnk_080D1A84:: @ 080D1A84
|
||||
.incbin "baserom.gba", 0x0D1A84, 0x0000010
|
||||
|
||||
gUnk_080D1A94:: @ 080D1A94
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x0D1834, 0x0000018
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0D11C0, 0x0000018
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D1A94, 0x0000018
|
||||
.endif
|
||||
.endif
|
||||
|
||||
|
||||
gUnk_080D1AAC:: @ 080D1AAC
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x0D184C, 0x0000018
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0D11D8, 0x0000018
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D1AAC, 0x0000018
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_080D1AC4:: @ 080D1AC4
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x0D1864, 0x0000018
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0D11F0, 0x0000018
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D1AC4, 0x0000018
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_080D1ADC:: @ 080D1ADC
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x0D187C, 0x0000018
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0D1208, 0x0000018
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D1ADC, 0x0000018
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_080D1AF4:: @ 080D1AF4
|
||||
.incbin "baserom.gba", 0x0D1AF4, 0x0000004
|
||||
|
||||
@@ -39,7 +39,11 @@ gUnk_080D04C8:: @ 080D04C8
|
||||
.incbin "baserom.gba", 0x0D04C8, 0x0000008
|
||||
|
||||
gUnk_080D04D0:: @ 080D04D0
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0CFBFC, 0x0000003
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D04D0, 0x0000003
|
||||
.endif
|
||||
|
||||
gUnk_080D04D3:: @ 080D04D3
|
||||
.incbin "baserom.gba", 0x0D04D3, 0x0000004
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
.align 2
|
||||
|
||||
gUnk_080D0ABC:: @ 080D0ABC
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0D01E8, 0x0000003
|
||||
.else
|
||||
.incbin "baserom.gba", 0x0D0ABC, 0x0000003
|
||||
.endif
|
||||
|
||||
gUnk_080D0ABF:: @ 080D0ABF
|
||||
.incbin "baserom.gba", 0x0D0ABF, 0x0000009
|
||||
|
||||
@@ -20,16 +20,36 @@ gUnk_081083F2:: @ 081083F2
|
||||
.incbin "baserom.gba", 0x1083F2, 0x0000016
|
||||
|
||||
gUnk_08108408:: @ 08108408
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107B5C, 0x000003C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x108408, 0x000003C
|
||||
.endif
|
||||
|
||||
gUnk_08108444:: @ 08108444
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107B98, 0x0000024
|
||||
.else
|
||||
.incbin "baserom.gba", 0x108444, 0x0000024
|
||||
.endif
|
||||
|
||||
gUnk_08108468:: @ 08108468
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107BBC, 0x0000026
|
||||
.else
|
||||
.incbin "baserom.gba", 0x108468, 0x0000026
|
||||
.endif
|
||||
|
||||
gUnk_0810848E:: @ 0810848E
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107BE2, 0x0000035
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10848E, 0x0000035
|
||||
.endif
|
||||
|
||||
gUnk_081084C3:: @ 081084C3
|
||||
.incbin "baserom.gba", 0x1084C3, 0x0000005
|
||||
|
||||
@@ -9,37 +9,87 @@ gUnk_08108668:: @ 08108668
|
||||
.4byte sub_0805B168
|
||||
|
||||
gUnk_08108670:: @ 08108670
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107DC4, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x108670, 0x000000C
|
||||
.endif
|
||||
|
||||
gUnk_0810867C:: @ 0810867C
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107DD0, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10867C, 0x000000C
|
||||
.endif
|
||||
|
||||
gUnk_08108688:: @ 08108688
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107DDC, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x108688, 0x000000C
|
||||
.endif
|
||||
|
||||
gUnk_08108694:: @ 08108694
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107DE8, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x108694, 0x000000C
|
||||
.endif
|
||||
|
||||
gUnk_081086A0:: @ 081086A0
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107DF4, 0x0000009
|
||||
.else
|
||||
.incbin "baserom.gba", 0x1086A0, 0x0000009
|
||||
.endif
|
||||
|
||||
gUnk_081086A9:: @ 081086A9
|
||||
.incbin "baserom.gba", 0x1086A9, 0x0000003
|
||||
|
||||
gUnk_081086AC:: @ 081086AC
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107E00, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x1086AC, 0x000000C
|
||||
.endif
|
||||
|
||||
gUnk_081086B8:: @ 081086B8
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107E0C, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x1086B8, 0x000000C
|
||||
.endif
|
||||
|
||||
gUnk_081086C4:: @ 081086C4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107E18, 0x000000C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x1086C4, 0x000000C
|
||||
.endif
|
||||
|
||||
gUnk_081086D0:: @ 081086D0
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107E24, 0x0000001
|
||||
.else
|
||||
.incbin "baserom.gba", 0x1086D0, 0x0000001
|
||||
.endif
|
||||
|
||||
gUnk_081086D1:: @ 081086D1
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x107E25, 0x000000B
|
||||
.else
|
||||
.incbin "baserom.gba", 0x1086D1, 0x000000B
|
||||
.endif
|
||||
|
||||
gUnk_081086DC:: @ 081086DC
|
||||
.incbin "baserom.gba", 0x1086DC, 0x0000008
|
||||
|
||||
@@ -19,8 +19,12 @@ gUnk_08108314:: @ 08108314
|
||||
.4byte sub_0805938C
|
||||
.4byte sub_08059424
|
||||
.4byte sub_0805947C
|
||||
.ifndef EU
|
||||
.4byte sub_080594DC
|
||||
.ifndef JP
|
||||
.4byte sub_08059548
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_08108354:: @ 08108354
|
||||
.incbin "baserom.gba", 0x108354, 0x000002C
|
||||
|
||||
@@ -5,7 +5,12 @@
|
||||
.align 2
|
||||
|
||||
gUnk_08111D58:: @ 08111D58
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x1114A8, 0x0000030
|
||||
.else
|
||||
.incbin "baserom.gba", 0x111D58, 0x0000030
|
||||
.endif
|
||||
|
||||
gUnk_08111D88:: @ 08111D88
|
||||
.4byte sub_08069B44
|
||||
|
||||
@@ -66,10 +66,29 @@ gUnk_08109F67:: @ 08109F67
|
||||
.incbin "baserom.gba", 0x109F67, 0x0000005
|
||||
|
||||
gUnk_08109F6C:: @ 08109F6C
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x109C30, 0x000002B
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x109C30, 0x000002B
|
||||
.else
|
||||
.incbin "baserom.gba", 0x109F6C, 0x000002B
|
||||
.endif
|
||||
.endif
|
||||
|
||||
|
||||
gUnk_08109F97:: @ 08109F97
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x109C5B, 0x00000B1
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x109C5B, 0x00000B1
|
||||
.else
|
||||
.incbin "baserom.gba", 0x109F97, 0x00000B1
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810A048:: @ 0810A048
|
||||
.incbin "baserom.gba", 0x10A048, 0x0000024
|
||||
|
||||
@@ -51,7 +51,16 @@ gUnk_0810C007:: @ 0810C007
|
||||
.incbin "baserom.gba", 0x10C007, 0x0000008
|
||||
|
||||
gUnk_0810C00F:: @ 0810C00F
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x10BCD3, 0x0000091
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x10BCD3, 0x0000091
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10C00F, 0x0000091
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810C0A0:: @ 0810C0A0
|
||||
.incbin "baserom.gba", 0x10C0A0, 0x0000024
|
||||
|
||||
@@ -5,7 +5,12 @@
|
||||
.align 2
|
||||
|
||||
gUnk_0810C428:: @ 0810C428
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x10BB7C, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10C428, 0x0000008
|
||||
.endif
|
||||
|
||||
gUnk_0810C430:: @ 0810C430
|
||||
.incbin "baserom.gba", 0x10C430, 0x0000005
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
.ifndef EU
|
||||
gUnk_0810FDA0:: @ 0810FDA0
|
||||
.incbin "baserom.gba", 0x10FDA0, 0x0000004
|
||||
.endif
|
||||
|
||||
gUnk_0810FDA4:: @ 0810FDA4
|
||||
.4byte sub_08065080
|
||||
|
||||
@@ -83,16 +83,43 @@ gUnk_0810B8EB:: @ 0810B8EB
|
||||
.incbin "baserom.gba", 0x10B8EB, 0x0000037
|
||||
|
||||
gUnk_0810B922:: @ 0810B922
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x10B5E6, 0x0000049
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x10B5E6, 0x0000049
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10B922, 0x0000049
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810B96B:: @ 0810B96B
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x10B62F, 0x0000065
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x10B62F, 0x0000065
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10B96B, 0x0000065
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810B9D0:: @ 0810B9D0
|
||||
.incbin "baserom.gba", 0x10B9D0, 0x0000031
|
||||
|
||||
gUnk_0810BA01:: @ 0810BA01
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x10B6C5, 0x0000117
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x10B6C5, 0x0000117
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10BA01, 0x0000117
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810BB18:: @ 0810BB18
|
||||
.incbin "baserom.gba", 0x10BB18, 0x0000044
|
||||
@@ -103,7 +130,16 @@ gUnk_0810BB71:: @ 0810BB71
|
||||
.incbin "baserom.gba", 0x10BB71, 0x000005B
|
||||
|
||||
gUnk_0810BBCC:: @ 0810BBCC
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x10B890, 0x000009C
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x10B890, 0x000009C
|
||||
.else
|
||||
.incbin "baserom.gba", 0x10BBCC, 0x000009C
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_0810BC68:: @ 0810BC68
|
||||
.incbin "baserom.gba", 0x10BC68, 0x0000098
|
||||
|
||||
@@ -46,10 +46,28 @@ gUnk_08113B22:: @ 08113B22
|
||||
.incbin "baserom.gba", 0x113B22, 0x0000006
|
||||
|
||||
gUnk_08113B28:: @ 08113B28
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x1137EC, 0x0000008
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x1137EC, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x113B28, 0x0000008
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_08113B30:: @ 08113B30
|
||||
.ifdef JP
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_jp.gba", 0x1137F4, 0x0000008
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_jp.gba", 0x1137F4, 0x0000008
|
||||
.else
|
||||
.incbin "baserom.gba", 0x113B30, 0x0000008
|
||||
.endif
|
||||
.endif
|
||||
|
||||
gUnk_08113B38:: @ 08113B38
|
||||
.incbin "baserom.gba", 0x113B38, 0x0000007
|
||||
|
||||
@@ -18,10 +18,20 @@ gUnk_08120AAC:: @ 08120AAC
|
||||
.incbin "baserom.gba", 0x120AAC, 0x0000008
|
||||
|
||||
gUnk_08120AB4:: @ 08120AB4
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x1201FC, 0x0000018
|
||||
.else
|
||||
.incbin "baserom.gba", 0x120AB4, 0x0000018
|
||||
.endif
|
||||
|
||||
gUnk_08120ACC:: @ 08120ACC
|
||||
.ifdef EU
|
||||
@ TODO only small differences
|
||||
.incbin "baserom_eu.gba", 0x120214, 0x0000018
|
||||
.else
|
||||
.incbin "baserom.gba", 0x120ACC, 0x0000018
|
||||
.endif
|
||||
|
||||
gUnk_08120AE4:: @ 08120AE4
|
||||
.incbin "baserom.gba", 0x120AE4, 0x0000004
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user