Merge pull request #162 from octorock/variants

Add variants
This commit is contained in:
Ibot02
2021-06-23 23:34:02 +02:00
committed by GitHub
221 changed files with 42365 additions and 68 deletions
+1 -1
View File
@@ -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
View File
@@ -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)
+83 -8
View File
@@ -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
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
+8
View File
@@ -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
+38
View File
@@ -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}
+14
View File
@@ -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
+15
View File
@@ -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
+10
View File
@@ -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
+16
View File
@@ -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
+9
View File
@@ -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]
+143
View File
@@ -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
+58
View File
@@ -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
+10
View File
@@ -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
+10
View File
@@ -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
+22
View File
@@ -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
+559
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+160
View File
@@ -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
+8
View File
@@ -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
+7
View File
@@ -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
+46
View File
@@ -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
+771
View File
@@ -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
+154
View File
@@ -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
+95
View File
@@ -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
+222
View File
@@ -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}
+68
View File
@@ -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
View File
@@ -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
+59
View File
@@ -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
+182
View File
@@ -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
+5
View File
@@ -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
View File
@@ -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
+63
View File
@@ -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
+32
View File
@@ -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
+251
View File
@@ -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
+95
View File
@@ -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
+47
View File
@@ -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
+101
View File
@@ -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
+50
View File
@@ -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
+43
View File
@@ -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
+38
View File
@@ -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
+78
View File
@@ -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
+71
View File
@@ -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
+207
View File
@@ -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
+56
View File
@@ -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
+37
View File
@@ -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
+24
View File
@@ -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
+98
View File
@@ -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
+182
View File
@@ -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
+8
View File
@@ -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
+8
View File
@@ -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
+8
View File
@@ -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
+8
View File
@@ -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
View File
@@ -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
+84
View File
@@ -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
+4
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
+498
View File
@@ -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
+4
View File
@@ -199,3 +199,7 @@ _080A31FC:
_080A3200:
pop {r4, r5, pc}
.align 2, 0
+104
View File
@@ -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
+8
View File
@@ -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
View File
@@ -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
+48
View File
@@ -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
+84
View File
@@ -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
+2
View File
@@ -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
+2
View File
@@ -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
+191
View File
@@ -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
+161
View File
@@ -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
+229
View File
@@ -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
+5
View File
@@ -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
+18
View File
@@ -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
+5
View File
@@ -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
+152
View File
@@ -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
+18
View File
@@ -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
+37
View File
@@ -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
+4
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
+50
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
+19
View File
@@ -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
+9
View File
@@ -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
View File
@@ -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
+2
View File
@@ -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
+36
View File
@@ -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
+18
View File
@@ -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
+10
View File
@@ -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